CardForger is a tool for creating custom Magic: The Gathering cards and sets with authentic MTG styling. Design cards, collaborate with others, simulate booster packs, and playtest your creations.
To create and edit cards, you need to be logged in. Click Login in the navigation bar to authenticate via email/password or a social provider (Google, Discord, GitHub, Twitch).
Sets are the core organizational unit — like a real MTG expansion. Each set has its own cards, settings, icons, and booster configuration.
Open the set details panel from the set page to edit your set's properties. Available settings:
| Field | Description |
|---|---|
| Set Name | The display name of your set |
| Set Code | A unique 3-letter code (e.g., MTG, ABC) |
| Description | A text description shown on the set page and gallery |
| Set Icon | Custom icon displayed on cards and in the set header |
| Card Back | Custom card back image used in boosters and print exports |
| Pack Art | Cover image for booster pack animations |
| Published | Whether the set is visible in the public gallery |
Each set can have a custom icon that appears next to the set name and on each card's type bar. You can:
Design a custom card back for your set. Navigate to the card back editor from the set details panel to upload an image, position it, and adjust the crop. This card back is used in booster pack simulations and PDF exports.
Toggle the Published setting in set details to make your set visible in the public Gallery. Unpublished sets are only visible to the creator and editors.
Toggle the statistics dashboard on the set page to see breakdowns of your set including:
Cards are edited inline — click directly on any field on the card to edit it. Changes are saved automatically.
On a card page, toggle Edit Mode using the switch in the header. When edit mode is active, all editable fields become clickable and highlighted on hover.
| Field | Description |
|---|---|
| Card Name | The name displayed at the top of the card |
| Mana Cost | The casting cost shown in the top right corner |
| Card Type | Main types like Creature, Instant, Sorcery, etc. |
| Subtypes | Creature types, spell subtypes, etc. |
| Rules Text | The card's abilities and effects |
| Flavour Text | Italic flavour text below rules |
| Power/Toughness | For creature cards |
| Loyalty | Starting loyalty for planeswalker cards |
| Defense | Defense value for battle cards |
| Artist | Credit for the card artwork |
| Rarity | Common, uncommon, rare, or mythic rare |
| Legendary | Toggle the legendary supertype on or off |
| Frame Variant | Default, extended art, or borderless |
| Card Art | Upload and position card artwork |
| Card Colour | Override the auto-detected colour (normally derived from mana cost) |
Every change you make is tracked in an undo history. Use the undo/redo buttons in the card page header (visible in edit mode) or keyboard shortcuts:
History stores up to 20 changes per card and persists for the duration of your browser session. The undo/redo buttons show a label describing what action will be undone or redone.
Mana costs and symbols in rules text use a bracket syntax that renders as authentic MTG mana icons.
| Syntax | Description |
|---|---|
| {W} | White mana |
| {U} | Blue mana |
| {B} | Black mana |
| {R} | Red mana |
| {G} | Green mana |
| {C} | Colorless mana |
| {0} - {20} | Generic mana (any number) |
| {X} | Variable mana |
| {T} | Tap symbol |
| {Q} | Untap symbol |
| Syntax | Description |
|---|---|
| {W/U} | White or blue hybrid mana |
| {2/W} | Two generic or white mana |
| {W/P} | White Phyrexian mana (pay 2 life instead) |
| {S} | Snow mana |
| {E} | Energy counter |
When editing the mana cost or rules text, click the Symbols button in the toolbar to open a visual symbol picker. Click any symbol to insert it at your cursor position.
{2}{W}{W} — Two generic and two white mana {X}{R}{R} — X and two red mana {G/U}{G/U} — Two green/blue hybrid mana {W/P}{W/P} — Two white Phyrexian mana (pay life instead) Rules text supports rich formatting including bold, italic, bullet points, mana symbols, and special syntax for sagas and planeswalkers.
| Syntax | Result |
|---|---|
| **text** | Bold text |
| *text* | Italic text |
| * text | Bullet point |
| {T} | Tap symbol (and other mana symbols) |
When editing rules text, a toolbar appears with buttons for:
For Saga cards, use Roman numeral chapter markers to denote each chapter's effect. Use the + Chapter toolbar button to automatically insert the next chapter number.
I - Chapter one effect II - Chapter two effect III - Chapter three effect IV, V - Chapters four and five (shared effect) Planeswalker loyalty abilities are written with a loyalty cost prefix. The card renderer automatically displays these as the characteristic planeswalker ability layout with loyalty cost badges.
+1: Loyalty gain ability -2: Loyalty cost ability 0: Zero loyalty cost ability -7: Ultimate ability (high loyalty cost) Cards can have one or more types, each with its own frame layout. The card renderer automatically selects the correct frame based on the card's type.
Select a type below to see how its frame renders:
Creature cards are the most common type. They have power and toughness displayed in the bottom-right corner. Creatures can be any colour and support subtypes like 'Human Wizard' or 'Dragon'.
The Legendary supertype is a separate toggle in the type editor — it adds the legendary crown decoration and "Legendary" prefix to the type line. The Token toggle marks the card as a token with a simplified frame (no mana cost display).
Subtypes (like "Human Wizard" or "Equipment") are entered as plain text in the subtype field, separated by spaces. They appear after the em dash on the type line.
Each card can use a different frame variant to change its visual presentation:
| Variant | Description |
|---|---|
| Default | Standard card frame with art box and borders |
| Extended Art | Art extends to the left and right edges of the card |
| Borderless | Full art with no frame border — art fills the entire card |
Templates layer special structure on top of the standard card frame: a chapter-driven Saga, a creature with an embedded Adventure spell, or a creature that becomes a Prepared spell. Each is created from the card editor — no schema or frame switch required.
A Saga is an enchantment that resolves in numbered chapters. Sagas are driven by the card subtype: any card with Saga in its subtype line automatically switches to the Saga frame — the rules text region becomes a chapter column and a Saga reminder banner is added down the left edge.
Each chapter is a line that starts with a Roman numeral followed by an em-dash. Multiple numerals separated by commas share a single effect.
I — First chapter effect II — Second chapter effect III, IV — Shared effect for chapters three and four Chapter markers render as numbered tabs down the left edge. The Reminder toolbar dropdown lets you hide the “As this Saga enters …” banner when you want a cleaner art frame.
A Saga can also be a creature. Add Creature to the type line alongside Enchantment, then place a Creature — marker on its own line in the rules text. Everything after the marker becomes the bottom creature text box; everything above stays in the chapter column. Set the power/toughness as you would on any creature.
An Adventure is a creature card with an embedded Instant or Sorcery spell printed on the left page. You cast the spell first; the creature half stays in exile until you cast it later.
The Adventure block has its own name, mana cost, type line, and rules text. To remove the spell, open the rules editor and click Clear Adventure in the toolbar.
A Prepared card is a creature that comes with a one-shot spell sitting next to it on the battlefield. The spell is rendered alongside the creature, and the creature’s rules text typically explains how the spell is cast (“When this creature enters, it becomes prepared with the spell on the right”).
To remove the spell, open either region and click Clear Prepared in the toolbar. The creature reverts to a normal layout with whatever rules text was on the left.
Each card can have custom artwork. Upload an image and use the transform editor to position, scale, and crop it to fit your card.
After uploading art, click the art area again to open the transform editor. This gives you full control over how the art is positioned on the card:
The dimmed area around the card viewport shows context for positioning. Click outside the editor or press Esc to close and save.
For best results, use images that are at least 744 x 1039 pixels (standard MTG card ratio). Larger images give you more room to pan and zoom. The art is stored at full resolution and cropped on display.
Double-faced cards (DFCs) have two faces that can be edited independently, like transform or modal double-faced cards in real MTG.
Toggle the Double-Faced option in the card editor to enable the back face. Once enabled, a Transform button appears on the card page to flip between faces.
The back face has its own complete set of editable fields:
CardForger automatically detects MTG keywords in your rules text and can display reminder text. You can also define custom keywords for your set.
When you write rules text containing standard MTG keywords (like Flying, Deathtouch, Haste, Trample, etc.), the card renderer automatically recognises them. If reminder text is enabled, it will appear in italics after the keyword.
Define custom keywords in your set's details panel under the Keywords section. Each keyword needs:
| Field | Description |
|---|---|
| Name | The keyword name (e.g., "Stormbreak") |
| Reminder Text | Explanation shown in italics (supports {X} placeholders and mana symbols) |
| Category | Defaults to "custom" for set-defined keywords |
Reminder text supports placeholder syntax for keywords that take a value (like Equip {2} or Ward {1}):
| Syntax | Description |
|---|---|
| {X} | Replaced with the captured value from the card text |
| {X|1:one|2:two|*:many} | Conditional — picks the branch matching the value, * is the default |
Pay {X} life → replaces {X} with the captured value {X|1:a creature|*:{X} creatures} → "a creature" when value is 1, "{X} creatures" otherwise Search for cards across all sets using a Scryfall-like query syntax. Use the search bar in the navigation or visit the full search page.
Combine operators to build precise queries. All text searches are case-insensitive.
| Operator | Aliases | Description | Example |
|---|---|---|---|
| (none) | — | Card name (starts-with match) | dragon |
| o: | oracle: | Rules text contains | o:flying |
| t: | type: | Card type (falls back to subtype) | t:creature |
| s: | sub:, subtype: | Subtype | s:elf |
| c: | color:, colors: | Colours (w, u, b, r, g, c) | c:wu |
| r: | rarity: | Rarity (common, uncommon, rare, mythic) | r:mythic |
| pow: | power: | Power (supports >, <, >=, <=) | pow:>3 |
| tou: | toughness: | Toughness (supports >, <, >=, <=) | tou:>=4 |
| mv: | cmc:, manavalue: | Mana value (supports >, <, >=, <=) | mv:3 |
| artist: | a: | Artist name | artist:john |
| set: | e: | Set code or name | set:ABC |
The pow:, tou:, and mv: operators support comparison operators:
pow:3 or pow:=3 — exactly 3 power pow:>3 — greater than 3 tou:<=4 — 4 or less toughness mv:>=5 — mana value 5 or more o:"destroy target creature"t:creature c:w pow:>3 finds white creatures with power greater than 3 c:wu finds cards that are white OR blue dragon — cards with "dragon" in the name t:creature s:elf c:g — green elf creatures o:flying r:mythic — mythic rares with flying in the rules text mv:<=3 t:instant c:u — blue instants with mana value 3 or less The Gallery is a public showcase of published sets. Browse community creations, get inspired, and share your own work.
Visit the Gallery to browse all published sets. Each set shows its icon, name, card count, view count, description, and a preview of 3 sample cards.
To make your set appear in the gallery, open the set details panel on your set page and enable the Published toggle. Your set will immediately become visible to everyone in the gallery. You can unpublish at any time to make it private again.
Work with others on your custom sets. Add editors, leave comments on cards, and get notified when people interact with your creations.
There are three roles that determine what a user can do within a set:
| Role | Create Cards | Edit Own Cards | Edit Any Card | Delete Own Cards | Delete Any Card | Manage Editors |
|---|---|---|---|---|---|---|
| Set Creator | Yes | Yes | Yes | Yes | Yes | Yes |
| Set Editor | Yes | Yes | No | Yes | No | No |
| Viewer | No | No | No | No | No | No |
As a set creator, you can add editors from the set details panel:
Only the set creator can add or remove editors.
Each card page has a comments section where set creators and editors can leave feedback and discuss card design. Comments appear below the card preview with author name, avatar, and timestamp.
When someone comments on a card you created, you'll receive a notification. The bell icon in the navigation bar shows your unread notification count. Click it to see recent comments and navigate directly to the card.
Simulate opening booster packs from your custom set. Configure pack contents, open individual packs with animations, or run a full sealed event with deck building.
Enable booster packs in the set details panel under Draft Simulator. Configure how packs are assembled:
| Setting | Description |
|---|---|
| Enabled | Toggle booster packs on or off for this set |
| Pack Size | Total number of cards per booster (typically 15) |
| Slots | Define groups of cards with rarity distribution (e.g., 10 commons, 3 uncommons, 1 rare/mythic) |
| Holo Effect | Enable holographic/foil card effects in pack openings |
| Holo Chance | Percentage chance each card appears as holo (0-100%) |
| Pack Art | Cover image displayed on the booster pack wrapper |
Each booster pack is made up of slots. A slot defines how many cards of a certain rarity are included. For example, a typical 15-card booster might have:
Each slot has a rarity distribution — weighted probabilities that determine which rarity is picked for each card in that slot. For example, a rare slot might have 80% rare and 20% mythic.
Enable holographic effects in the booster configuration. Set a holo chance percentage — each card in a pack has that probability of appearing with a foil/holo effect during the pack opening animation.
From the set page, click Open a Booster to open a single pack. The experience includes:
From the set page, click Sealed Simulator to run a full sealed event:
You can skip the pack reveal animation to add cards directly to your pool, or start a new sealed pool at any time. Your pool and deck state are saved in your browser so you can return to it later.
Test your custom cards in a simulated game environment. Track life totals, manage card zones, and play through turns with proper MTG phase structure.
Enter playtest mode from the sealed simulator after building a deck. Click Playtest Deck to launch the game table with your sealed deck as your library.
Your life total is displayed prominently with + and - buttons. Starting life defaults to 20 (standard MTG), and you can pick a different total on the playtest setup screen — 30, 40 for Commander, or any custom value.
Track your current turn and phase. The game follows MTG's phase structure:
| Phase | Description |
|---|---|
| Untap | Untap all your permanents |
| Upkeep | Handle upkeep triggers |
| Draw | Draw a card from your library |
| Main 1 | Play lands and cast spells |
| Combat | Declare attackers and blockers, deal damage |
| Main 2 | Play lands and cast spells (post-combat) |
| End | End step and cleanup |
Click the phase buttons to advance through your turn, or jump directly to a specific phase.
Cards are organised into zones that mirror a real MTG game:
Generate preview images for your cards, export print-ready PDFs, and automatically create token cards from your set's rules text.
Generate rendered preview images for all cards in your set. These images are used for card thumbnails in the grid view, booster pack reveals, and PDF exports.
Export your set as a print-ready PDF with cards arranged in a 3×3 grid at standard MTG card dimensions (63.5 × 88.9mm).
| Page Size | Dimensions |
|---|---|
| A4 | 210 x 297mm |
| Letter | 216 x 279mm |
| Legal | 216 x 356mm |
| Tabloid | 279 x 432mm |
| A3 | 297 x 420mm |
Automatically detect and create token cards based on your set's rules text. The token generator scans all cards for patterns like "create a 1/1 white Human creature token" and offers to bulk-create the matching token cards.