Decks follow tournament rules — 40+ cards, max 3 copies, 1 copy of any PWR or Loot card, max 5 PWR, exactly 4 Loot.
A real game against a real opponent — he simply stops the arena whenever something matters.
About 14 stops across the first four turns. You can skip out at any point and keep playing the same game.
Everything here applies to the next game you start.
Prototype cards are new designs created for this build. They have no printed card and no art, and they have not been balance-tested. By default the app is printed-set-only — every selectable deck contains nothing but real cards. Switching the pool on adds the prototype cards to the deck builder and unlocks three extra decks on the Play tab: one built entirely from prototypes, and two that graft a prototype package onto a printed shell.
Thousands of games in a second, so you can see what a rules change does to length, draws and blowouts before a playtest.
CURVE-BASEDThis is a model of Essence, not Essence. It replaces the chain reaction with expected values so it can play thousands of games in the time one real game takes to shuffle. That trade is the whole point — and the whole caveat.
Every printed card is read out of the card set and its abilities are summed into an expected-value row:
cost, damage, progress, prevent, heal, progloss, draw. A card that reads
“deal 3 damage” contributes 3 damage. A card that reads “roll a die, gain that much Progress”
contributes 3.5 Progress — the mean of a d6, not a roll.
Conditional abilities are discounted by how often the condition is actually met in a typical four-to-six card chain:
| Requirement | Weight | Why |
|---|---|---|
| FIRST | 0.30 | one slot in a chain of ~4–6, and you do not always hold it |
| LAST | 0.30 | same, from the other end |
| EVEN / ODD | 0.50 | roughly half of all positions |
| THIRD | 0.22 | a single specific slot |
| CHAIN 4+ | 0.55 | chains reach four often, but not most turns |
| no requirement | 1.00 | always on |
These six weights are estimates, not measurements. They are the largest source of error in the model. If a deck's whole plan is conditional, treat its numbers as soft.
Each seat gets Starting Essence and gains Ramp / turn up to Cap. The seat then commits the best affordable set of EV rows it can pay for, so a cheap high-output card gets played more often than an expensive one — the same pressure real deckbuilding applies. Leftover Essence can be burned into damage at Burn: Essence per Life. Turn variance jitters each turn's output so identical seats do not draw identical hands forever, and Deck asymmetry gives each seat a fixed quality roll at the start of the game — that is what produces blowouts.
Damage reduces Life; at 0 the seat is out. Progress fills Loot Cards; fill them all and you win.
Progress threshold is how much a single Loot Card needs (Per-card override lets you make them uneven,
e.g. 6,8,10,12). Placement decides where Progress goes: Greedy top-off finishes the
closest card first, Spread pushes every card evenly. Bundling lets a single turn's Progress
overflow from a finished card onto the next. Ability-Progress share is the fraction of a card's damage that
also counts as Progress — the rule that makes aggro advance both clocks at once.
Negation and Prevent have no slot in an EV model, so they are folded into two knobs: Prevent frequency (how often an incoming hit is blunted) and Prevent magnitude (how much comes off). This is why a pure control deck reads badly here — the model gives it credit for surviving but nothing for winning. If a deck shows near-zero damage and near-zero Progress, the simulator flags it: it has no clock.
minutes = sec/turn × turns + sec/action × actions. Turn counts come out of the model;
the two seconds figures are your assumptions until you stopwatch a real game. Trust the turn distribution,
treat the minutes as calibrated guesses.
The simulator uses a seeded PRNG. Same Seed + same Games + same settings = byte-identical results, so when a number moves you know a setting moved it and not luck. Change the seed to check that a finding survives a different stream of randomness.
Pick decks from the Play tab, paste a decklist, or drop in raw expected-value rows. Preset decks and pasted decklists are converted automatically by reading each card's real abilities out of the card set.
Minutes = sec/turn × turns + sec/action × actions. Those two inputs are assumptions until you stopwatch a real playtest — trust the turn counts, treat the minutes as calibrated guesses.
Check the model against how the game actually plays before trusting the batch numbers.
Same seeds, same game count, same decks. Only the Life total, Loot count and threshold change.
300 games per cell at the current settings. The per-card override is ignored here.
Not run yet.
Every card in the set. Click any card to read it at full size.
—| P | Pass |
| B | Burn — spend 2◆ to make an opponent lose 1 Life (and gain 1 Progress) |
| D | Draw — spend 3◆ for a card |
| Enter | Done this turn (lock) |
| 1…9 | Send that card from your Field to the Chain · toggle a card while committing or mulliganing · choose a Loot Card / target / prevent amount |
| Space | Confirm · roll the dice · continue |
| R | Roll the dice |
| V | View your Past · Shift+V opponent's Past |
| L | Show / hide the log drawer |
| F | Fast-forward the current chain |
| Esc | Close overlay |
Hover any card for full details. On touch devices, press and hold.