Select the simulation settings here
Select the stats you want to see.
No simulation to time
Check a condition against the completed simulation's actual prize cards. Build conditions with nested AND / OR / XOR / NOT groups, and use "count of another card" as an amount to compare two cards against each other. You can run multiple checks without rerunning the simulation.
Exact odds (no simulation) that your starting hand + turn 1 draw (8 cards total) satisfies the condition you build below. Calculated directly from the loaded decklist (the "Deck string" box), so you don't need to run the simulation first. Build conditions with nested AND / OR / XOR / NOT groups, and use "count of another card" as an amount to compare two cards against each other (e.g. "at least [count of Card X] Card Y in hand"). Card names should match how they appear in the decklist (set code / number are ignored).
Exact odds that a selected Basic Pokémon is available as a possible starter, or is forced because no differently named Basic Pokémon appears in the final accepted 7-card hand. Mulligans are handled as an exact geometric series: every 0-Basic hand is shuffled back before another 7 cards are drawn. Card names should match how they appear in the decklist (set code / number are ignored).
Paste a decklist here, including PTCGL-style exports (Pokémon / Trainer / Energy sections, with the "Total Cards" line included). Then click LOAD FULL DECK to parse the deck and get it ready for the simulation!
Format: SET/NUM:TYPE, comma separated (P=Pokémon, T=Trainer, E=Energy, S=Special Energy; type defaults to P if omitted).
Cards you look up are cached automatically in this browser (see below), so this doesn't need attention day-to-day. If you want this tool to start pre-populated even on a fresh machine or browser profile, download your cache below and paste it into EMBEDDED_SAVED_CARDS near the top of the script - that works with zero network access, unlike everything else here.