Skip to content

Tutorial Sprite Variants

johnjohto edited this page Jul 26, 2026 · 1 revision

Tutorial: Sprite Variants (Shiny, Seasonal, and Alternate Art)

A variant is a named art-set record in data/variants/ -- sparse per-species overrides across four tracks, activated per-individual or by world state:

{
 "id": "variant:shiny",
 "individual": "shiny",
 "species": {
  "species:bulbasaur": {"palette": "pal_greenmon_shiny"}
 }
}
  • individual names a mon field -- when it's truthy on THAT mon, the set applies to it. "shiny" is the classic: every mon has carried authentic Gen-2 1/8192 shiny odds since 2.2, and this is how the lucky ones get their look.
  • when takes a condition instead (the one grammar) -- "time_season_winter" gives you seasonal art as pure data.
  • Neither field = always active -- a whole-game alternate art set.
  • Four tracks, declare only what differs: palette (a library name), front/back (asset paths -- swap the file itself), icon (a sheet index), and walker (the overworld sheet roaming spawns use).
  • Resolution: an individual's explicit ext override wins, then variants in sorted id order (first active set with the track), then the base species.

Vermilion's recipe generates shiny for all 151 at apply time -- palette variants derived from your own extraction's species colors plus the record above at full scale. Nothing derived ships in the repo; hand-polish the generated tints freely.

Clone this wiki locally