Use Photoshop scripting to easily create custom high-quality Magic proxies for casual play.
If you found this tool and/or my renders useful, you could shout me a cup of coffee if you felt like it <3
Example printed through http://makeplayingcards.com
What You'll Need
- A copy of Photoshop. I tested the system using CS5 and CC 2018, but other versions may work as well.
- The Photoshop templates (download the desired templates in the Automated folder - hopefully the filenames are self-explanatory)
- The following fonts:
- json2.js, included but you may need to download a more recent version.
As well as the Python packages (I tested the script using Python 3.6.3):
Install / Usage Guide
- Clone to a folder of your choice, referred to as the working directory.
- Install the included font and the other fonts specified above.
- Download the Photoshop templates, create a folder called
templatesin the working directory, and extract them into the folder.
- Create a folder called
artin the working directory, and another called
out. Create a folder called
- Move all of your card artwork to the
artfolder. File names should be structured as
<CARDNAME> (<ARTIST NAME>).jpg.
- Run the script
proxyAllto render each card in the
artfolder, and store the results in the
proxyTargetdoes the same but only for a specific art image.
- Run the script
borderifyAllto pad each card render with a black border, such that it's ready to order through sites like http://makeplayingcards.com, and store the results in the
borderfolder inside the
borderifyTargetdoes the same but only for a specific render.
- Toggle comments on the first couple of lines of
proxy.jsxto switch between the normal template and box topper template. Box topper renders don't need to be borderified.
- When I load the template, Photoshop tells me I'm missing a font called MTG2016. Try updating your templates - this should be fixed for everyone now. Feel free to raise an issue if it's not though!
- When I render a card, the artwork is twice as big as it should be. Open
excessFunctions.jsx, and at the top there should be the line
var artScaleFactor = 100;. Change this to equal 50 instead of 100, and that typically fixes it.
- My set symbols don't have the proper gradient to them. Clone the latest version of the repo, and download the most recent version of the templates - this should hopefully be fixed for everyone now. Feel free to raise an issue if it's not though!
- I want to change the set symbol to something else. Head over to https://andrewgioia.github.io/Keyrune/cheatsheet.html - you can use any of these symbols for the set symbol for your cards. Copy the text of the symbol you want on the cheatsheet, then hop into
proxy.jsxand look about 10 lines down. Replace the square character in quotations with the character you copied.
- The script doesn't seem to be saving
get_card_info.pyscript works properly from the command line. Seems like this issue arises from PS running the Python script in a different directory, and running into permissions issues. Clone the latest version of the repo if you haven't already, because I'm fairly certain I've fixed the root cause of this issue. Failing that, a couple of users have had success with modifying file permissions - try
chmod 777 card.json, or
sudo chmod a+rw .in the root work directory.
- I'm getting an error that looks like
"error 23: ) does not have a value. Line: 1"This is usually related to the above issue.
As of this release, the script can't handle:
- Automation of cards that aren't one of the following: cards with the normal frame, transform cards (fronts and backs, including Ixalan transform lands), meld cards, planeswalker cards, or basic lands. Included in the Templates drive, however, I have templates for the following which you can use manually: Sagas, level-up cards, adventure cards, full-art promos (e.g. Lightning Bolt, Path to Exile), and Kaladesh Invention masterpieces.
- Full automation of planeswalkers. The script does most of the heavy lifting, but requires the user to manually position the text as a final step. My typical workflow for planeswalkers is to run the script up until it errors, then position the inserted Scryfall scan to fill the canvas. From here, I resize the text layers until they line up with the real card, then reposition the art if necessary. Save As and saving as a PNG with the default settings is fine.
- Devoid-style frames, miracle-style frames, and draft-matters frames - these will be added eventually but they're not a high priority.
- Quoting something in a card's flavour text without italics. See: Yarok the Desecrated, Phyrexian Altar.