Courtcard — Every Card In Your Deck, Drawn By The Plugin, for RPG Maker MZ
A downloadable asset pack
Courtcard draws the face of every card in your game, from the data you already have. A card is a made object: a stock, a frame with worked corners and ornament bands, a central charge composed from what the card actually does, a suit and cost rail, a nameplate set with your own title text, and a foil, edge and wear pass on top.
There is no PNG in this package, no atlas and no icon sheet. Every mark is geometry drawn at run time, so a card is sharp at any size you ask for, and the whole product is nine JavaScript files.
Four axes, and every one of them is read from your database
The type decides the charge. Twelve builds, composed rather than picked from a sheet: a blade driving down with an impact scatter under its point · a tower shield with a boss and bracing · an open hand with a sigil breaking at the fingertips · a horned arch with something rising through it · a knot pulled tight around a shaft · a vessel tipped to pour into a shallow bowl · a sprung jaw with its line taut · a censer hanging on chains · a stepped plinth carrying a broken object · a print with claw and heel · a spurred boot with motion trailing behind it · a leaning column snapped through, its drums scattered at the foot.
The element cuts that charge, structurally. Flame tongues lick off the top edge. Facet chords cut across the inside. A forked crack splits it. Frost strata band it. A stream escapes to the right. A pierce runs through and rays escape the holes. It dissolves, flakes falling away. Drips gather and fall from the bottom. Every cut is clipped to the charge's own masses, so it belongs to the object rather than sitting on top of it.
The rarity decides how much work the object carries — frame construction, rail count, corner treatment, foil and pip rail all change together, so a player reads standing at a glance before reading a word.
The deck decides the stock, and the whole palette re-solves against it: paper, rail, ink, relief, foil direction and the engraved shading. There is no light version and dark version and no per-deck special case anywhere in the renderer.
The charges are engraved, not filled
Each mass is modelled the way a printed card actually is: hatching whose pitch and weight ramp toward the shadow, cross-hatching in the deepest quarter, a weighted contour on the shadow side, and the lit third of every form left as bare wash. One fixed light serves the entire deck — and it is counter-rotated out of each build's lean, so twelve differently-angled objects are still lit from the same direction. That is what makes a page of cards read as one deck rather than as twelve unrelated pictures.
How much is in it
- 12 device builds × 8 element cuts = 96 distinct charges
- 480 card faces before the deck palette is applied
- 6 stocks, 6 back designs, 8 pip glyphs, 5 rarities
What that resolves to on a real project, measured on the unmodified Blank Project: 235 stock skill rows produce 164 distinct faces and 76 distinct charges, covering 11 of 12 builds, 8 of 8 elements and all 5 rarities. Cards that do the same thing at the same magnitude land on the same face, which is the plugin being truthful rather than a defect.
It reads what is already there
Tag a skill or item explicitly if you want to:
<courtcard rarity:epic type:strike element:ember>
Anything you do not tag is classified from the row itself — its damage type and element, its scope, its cost, its icon, its parameters. That classifier is the point: a finished project has hundreds of rows and nobody wants to tag them all. On the stock database, 139 of 140 cards are built that way.
What you get
- Nine plugin files, raw and readable JavaScript. No minification, no obfuscation.
- A deck viewer scene, three plugin commands, and a save seam that round-trips your chosen deck.
cardWidth: 0solves the grid against your resolution instead of making you tune it.- A full Readme and a commercial licence: unlimited games, commercial or free, no royalties, and the card images it draws inside your game are yours.
⚠️ Compatibility — the question you actually have
Tested against RPG Maker MZ with the stock scripts unmodified, verified by running the plugin in the real engine rather than only in tests.
Plugin Manager order:
CourtcardCard.js— [Courtcard] The assembler - draws one complete card face or back into a rect.CourtcardCorpus.js— [Courtcard] The authored corpus - rarities, types, elements, decks and the sub-vocabularies every one of them is drawn from.CourtcardDevice.js— [Courtcard] The central charge - twelve BUILDS from the card's type, each cut by the card's element.CourtcardFoil.js— [Courtcard] The finishing passes - foil, edge and handling wear. What makes a rare card read as rare without changing a line of its drawing.CourtcardFrame.js— [Courtcard] The card itself - stock, rails, corner treatments, ornament bands, the nameplate cartouche and the back design.CourtcardInk.js— [Courtcard] The colour and scale LAWS. Every ink is solved against what it sits on; every repeated treatment declares a pitch.CourtcardPips.js— [Courtcard] The suit index and the cost rail - eight pip glyphs, and a tally that derives its count from the real run.CourtcardReading.js— [Courtcard] The classifier - turns a row of the buyer's OWN skill or item data into a card spec.CourtcardScene.js— [Courtcard] The deck viewer scene, the plugin commands and the save seam. The only file that touches the engine.
This order reads sensibly in the list and nothing depends on it. Every file resolves its siblings the first time it needs them rather than when it loads, so Courtcard works in whatever order the Plugin Manager gives you. That is tested rather than hoped for: the headless suite, the store-plate renderer, the capture pipeline and the in-engine verification all load the nine files alphabetically — the exact order you get by dragging them in, and the worst case for a plugin that captures its siblings at load, because it puts CourtcardCard.js first and the CourtcardScene.js that drives it last — and the in-engine run asserts all nine resolved anyway, with 9 plugins live in the scene. CourtcardScene.js is the only one that touches RPG Maker at all; the other eight are a corpus, a classifier, a colour model, a frame builder, a device corpus, a pip alphabet, a foil model and a card compositor, and none of them knows the engine exists. Switch CourtcardScene.js off and nothing is patched.
It patches no core RPG Maker method at all, so there is nothing of anyone else's for it to collide with.
More from CSAF
More RPG Maker MZ plugins from the same studio:
- Verdict Core - Investigation, Cross-Examination & Deduction for RPG Maker MZ
- Township - NPC Daily Routines & Living Towns, for RPG Maker MZ
- Cartouche — The Message Box Drawn As An Object, for RPG Maker MZ
- Creel — Every Fish Your Game Can Catch, Drawn at Runtime, for RPG Maker MZ
Everything else we make is at csaf.itch.io.
| Updated | 12 hours ago |
| Published | 5 days ago |
| Status | Released |
| Category | Assets |
| Author | CSAF — Core Systems Asset Factory |
| Made with | RPG Maker |
| Tags | 2D, cards, deckbuilding, Generator, javascript, plugin, Procedural Generation, RPG Maker, RPG Maker MZ, User Interface (UI) |
| Languages | English |
| AI Disclosure | AI Assisted, Code, Graphics |
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $14.99 USD. You will get access to the following files:






Leave a comment
Log in with itch.io to leave a comment.