species-forms

Registers alternate Pokémon forms as distinct species ids in the million-plus numbering band.

2|1|Updated Jun 28, 2026
One-click install
npx skills add https://github.com/lxsmnsyc/overwander --skill species-forms-lxsmnsyc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: species-forms
Source: https://github.com/lxsmnsyc/overwander/tree/main/.claude/skills/species-forms
Command: npx skills add https://github.com/lxsmnsyc/overwander --skill species-forms-lxsmnsyc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Alternate forms like Unown letters or Alolan variants need their own species identity for sprites, dex tracking, and battles, yet must still group under one printed dex row. This Skill defines the id numbering scheme and the exact steps to add a form without breaking stored player data. ## Core Features & Use Cases - Id numbering scheme: Forms live in the band past one million using the formula 1000000 + dexNumber * 100 + formIndex, keeping base forms equal to their dex number. - Dex behavior rules: The printed dex shows only base forms via getBaseForms, while pokedex_entries tracks each form individually and rolls counts up. - Dialog flow: SpeciesFormsDialog lists a species' forms by formLabel, handing off to DexEntryDialog for the chosen form. - Use Case: When adding Unown Q, assign id 1020116, set baseForm: false with the same dexNumber and family, update FORMS in scripts/import-sprites.ts, then run pnpm import-sprites and pnpm compact-sprites. ## Quick Start Ask the assistant to add a new alternate form for a species, and it will assign the banded id, register it with baseForm false, update the sprite import list, and run the sprite pipeline.

Frequently Asked Questions about species-forms

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add an alternate form for a Pokémon species?▼

Assign an id in the band using 1000000 + dexNumber * 100 + formIndex, register it with baseForm: false and the same dexNumber and family, add the species to FORMS in scripts/import-sprites.ts, then run pnpm import-sprites and pnpm compact-sprites.

How are alternate form species ids numbered?▼

Form ids use the formula 1000000 + dexNumber * 100 + formIndex, giving each species one hundred form slots. The default form keeps its dex number as its id, so Species equals dexNumber everywhere that relies on it.

Can form ids be renumbered after release?▼

No. Form ids are stored player data, so nothing in the band may be renumbered once it ships. The same immutability rule applies to family ids.

How does the printed dex handle species with multiple forms?▼

The printed dex lists only the default form via getBaseForms and dexOrder, so twenty-eight Unown letters appear as one row numbered 201. The row lights up when any form has been met, while pokedex_entries tracks each form separately.

What happens when pressing a dex row with several forms?▼

It opens SpeciesFormsDialog, a grid of forms labelled by formLabel rather than the shared dex number. Selecting one opens DexEntryDialog for that form alone, whose arrows walk the forms list rather than the dex.