Skip to content

Tutorial The Modern Ruleset

johnjohto edited this page Jul 25, 2026 · 1 revision

Tutorial: The Modern Ruleset

Two rulesets ship with the engine. gen1 is the faithful one. modern changes three things: per-move physical/special categories (instead of the type-based split), modern stat math (IVs/EVs/natures over the mon/2 state), and the gen-3-style catch formula.

Select it in your manifest ("ruleset": "modern") and ruleset file ("base": "modern"), with mon_wire: 2 + a natures table (see the Modern Individuals tutorial). Moves without a category keep the faithful type-based split -- a partially-modernized project degrades honestly.

The Showdown recipe

Vermilion's modern data isn't in the repo -- it converts from a Pokemon Showdown checkout on your machine at overlay-apply time. Clone it beside the repo, and a format-2 overlay runs the converter:

{"op": "generate", "tool": "import_showdown", "args": {"checkout": "pokemon-showdown"}}

The tool verifies the checkout's MIT license, then emits -- bounded to the species and moves your project already has -- the 18-type chart, all 25 natures, per-move categories, gender ratios, and ability rosters, each record stamped with its provenance. Only allowlisted tools can run (import_showdown is the whole list today), the conversion is deterministic (applying twice is byte-identical), and nothing third-party is ever bundled or distributed.

You can also run it directly: python tools/import_showdown.py --checkout pokemon-showdown --project <your project>.

Clone this wiki locally