Documentation
Reference notes for creating and injecting custom Pokemon cleanly.
How It Works
Create bundleThe web form validates your Pokemon, converts sprites, and generates a ZIP patch bundle.
Local installExtract the ZIP near your PokeRogue folder and run INSTALL.bat or node apply-patch.js.
Local filesThe online web app cannot read your local game files; local checks run inside the installer.
ID conflictIf the local installer finds the same custom ID, it asks whether to replace it, choose another ID, or cancel.
Game restartClear cache and restart PokeRogue after applying a patch. Test with a new save slot first.
Sprite Requirements
RequiredFront sprite PNG is required. JSON is optional.
Supported JSONTexturePacker, Aseprite, raw dict, and raw list atlas formats are supported.
PNG onlyWithout JSON, Auto can detect grid sheets, separated sprites, or one static frame.
OffsetsDefault PokeRogue atlas offsets are preserved to avoid jitter and cropped sprites.
FallbacksMissing back or shiny sprites fall back to the available regular sprite. Icon is auto-generated if omitted.
ID Rules and Safety
Allowed rangeDex ID must be 2000-99999. The 9000+ range is recommended for custom Pokemon.
Reserved IDsDefault PokeRogue IDs are blocked before the ZIP is generated.
BackupsThe local installer creates .bak files for the main JS bundles before patching.
Wild encountersChoose a specific biome if the Pokemon should appear in the wild. Empty biome does not currently randomize.
Known limitEgg moves are collected by the form but are not applied by the local installer yet.