Back to browse
Ironsmith – MTG card (de)compiler and multiplayer rules engine

Ironsmith – MTG card (de)compiler and multiplayer rules engine

by nicolas-siplis·Mar 18, 2026·1 point·0 comments

AI Analysis

●●●BangerWizardryBig BrainShip It

Parses Oracle text into live effects instead of hardcoding 20k+ cards like XMage does.

Strengths
  • 96% fidelity across 19,359 cards without individual card scripting
  • Event-driven rules engine handles triggers, replacements, combat, state-based actions
  • Browser-playable via WASM with multiplayer lobby support built in
Weaknesses
  • 4% parsing failures still need manual intervention or hardcoded exceptions
  • Network effects favor established platforms like Arena and Cockatrice
Category
Target Audience

MTG players, game engine developers, card game designers

Similar To

XMage · Magic Arena · Cockatrice

Post Description

Hey HN! Been working on this for the last couple months and I think it's at the point where it might be worth showing here.

The main idea behind the project is that card behavior should come from parsed Oracle text whenever possible, instead of hardcoding each card by hand. Ironsmith has a parser/compiler pipeline that turns card text into structured runtime effects, then executes them through an event-driven rules engine for triggers, replacement effects, combat, damage, and state-based actions.

It’s playable in the browser via WASM, and it also supports multiplayer lobbies. You can load decks, play games, inspect the board state, and use it as either a goldfishing tool for practicing solo, or to play with your friends!

I started working on this because I wanted to see how far I could push a rules engine built around “understanding the card text” instead of maintaining a giant pile of one-off card scripts. I've been using LLM's pretty extensively throughout development, but am trying to architecture the project in such a way that "slop" is either minimized or at the very least easy to refactor.

It’s still a work in progress, and coverage is definitely incomplete (~22k cards compile, ~14k do so at 100% similarity with their real counterparts), but it’s at the point where I find it useful and fun to play around with. I’d especially love feedback from people interested in compilers, game engines, multiplayer systems, rules engines, parser-heavy side projects, or those who've been LLM's heavily in sizable side projects.

If you wanna play around with the actual compiler, click the "Create Card" button and it should take you to a modal where you can modify a randomly loaded card with whatever effects you can think of.

Similar Projects