Skip to content

Tutorial Modern Individuals

johnjohto edited this page Jul 25, 2026 · 4 revisions

Tutorial: Modern Individuals (mon/2)

Give every monster a nature, ability, held item, IVs, EVs, gender, and a shiny flag -- as an opt-in wire upgrade that migrates existing saves deterministically.

1. Declare the wire in data/ruleset.json: {"mon_wire": 2}

2. Provide natures -- data/natures.json:

{
 "natures": ["nature:bold", "nature:brave", "nature:calm"],
 "effects": {"nature:brave": {"up": "atk", "down": "spd"}}
}

(mon_wire: 2 without this file refuses at boot -- the wire names natures, so it needs the vocabulary. The modern recipe imports all 25 for you.)

3. That's it. Every existing save backfills on load -- one loud line reports the count -- and every field derives deterministically from the monster's own DNA: IVs from its DVs, gender from the species ratio, shininess from the classic DV pattern, its nature from a stable hash. Two loads agree; two link partners agree. Trades refuse cleanly at hello if the other copy speaks a different wire or nature table, instead of desyncing mid-battle.

Species gain an optional gender_ratio byte (0 = all male ... 254 = all female, absent = genderless), moves an optional category (physical/special/status), and the ruleset config a shiny_odds knob. Nothing about battle math changes until a modern formulas provider engages -- declaring the wire alone is provably inert (that's a release gate).

Clone this wiki locally