MtGProxyTutor: a Magic the Gathering Proxy Maker

MtGProxyTutor: a Magic the Gathering Proxy Maker

I am an avid Commander player.

Like most MtG players, I am always looking forward to build new janky decks whenever a new Legendary creature is spoiled by Wizards. Problem is, most of the times, I don’t own the cards that I need or those cards are already sleeved and ready to be played in other decks. Sometimes I just want to try a commander deck, but I don’t want to invest hundreds in a reserved-list card that I would use only in a specific deck.

Fortunately, card are just cardboard, and paper can be printed on at home with a PC and a printer… hence why proxies in CCG’s are a thing (and a massive help to casual players nontheless!). Years ago, my go-to method to create proxies was to download the card image from somewhere on the internet, open MS Word, manually resize the card, rinse and repeat until all my proxies are ready. Today, with the advent of better internet services and public card databases, this tedious process can be automated and simplified with little coding.

This is what I’m trying to achieve

That said, finding program that can automate proxies creation should be an easy task, right? Wrong.
True, there are some programs on GitHub that promise to fetch card images and produce ready-to-print MtG cards, yet almost none of them work anymore. My solution is MtGProxyTutor: a simple, barebone, little program that does the dirty job, and nothing else. A limitation: this program only works with english card names!

This is how I achieve it 🙂

That is all you need if you are not a programmer, just download the program, paste your list and create the proxies (then just print them at 100% resolution). Otherwise, I encourage you to read on.

What I tried to do, that differs from most open source projects already on GitHub, is to provide a base program that can be easlity modified: instead of relying on a single source (in this case, scryfall), the whole idea behind MtGProxyTutor is to provide interfaces that can be implemented by the class that wraps the data source of your choice, and can be promptly interchanged through the dependency injection container. Therefore, if tomorrow scryfall is down or not available anymore, just write the wrapper to another MtG database and the program still works!

You can find all the code on the GitHub repository.
Needless to say, if you want to modify or add new features to the program, you are very welcome to do so.
Coding is a matter of never stop learning and sharing.

Happy commander games!

0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments