Registry reference
One section per registry: merge semantics, the Data table the merge
writes, and the value schema. Concepts and verbs:
Concepts: Registries.
ai_classes
- semantics:
record
- target:
Data.ai_classes
| field |
type |
required |
brain |
function |
no |
chance |
integer 0..256 |
no |
choose |
function |
no |
hpBelow |
integer >= 1 |
no |
item |
items id |
no |
kind |
one of "class" |
"layer" |
onStatus |
boolean |
no |
score |
function |
no |
switch |
boolean |
no |
switchBelow |
integer >= 1 |
no |
switchChance |
integer 0..256 |
no |
uses |
integer >= 0 |
no |
audio
- semantics:
record
- target:
Data.audio
- deprecated -- use sfx / cries / map_songs / music
- value: any value
balls
- semantics:
record
- target:
Data.balls
| field |
type |
required |
attempt |
function |
no |
autoCatch |
boolean |
no |
flicker |
boolean |
no |
hpFactor |
integer >= 1 |
no |
randMax |
integer 0..255 |
yes |
tossAnim |
string |
no |
wobbleFactor |
integer >= 1 |
no |
battle_anims
- semantics:
record
- target:
Data.battle_anims
- value: {seq, source?} | {blocks, type?} | {height, path, source?, tiles, width}
battle_sprite_scales
- semantics:
record
- target:
Data.battle_sprite_scales
| field |
type |
required |
path |
file path |
yes |
scale |
number 0.25..4 |
yes |
Scales one battle pic by its asset path, overriding the species-level
battleScaleFront/battleScaleBack (see pokemon) for that
image. The only way to scale a pic that is not species-keyed, like the
player's trainer back sprite. Resolution order at draw time:
image-level, then species-level, then the defaults (1x front, 2x back).
The pic stays grounded at any scale: player feet stay flush on the
text-box top, the enemy pic stays bottom-pinned in its slot, and the
scale composes with the send-out grow animation.
commands
- semantics:
record
- target:
Data.commands
- value: function | {blocking?, fn, foreground?}
constants
- semantics:
deep
- target:
Data.constants
Id = a top-level key of the target table. Keys not listed here are
accepted and merged as-is.
| key |
type |
badges |
list of {icon?, id, item?, name?} |
bagSize |
integer >= 1 |
boxCount |
integer >= 1 |
boxSize |
integer >= 1 |
coinCap |
integer >= 0 |
dexDigits |
integer >= 1 |
dexSize |
integer >= 1 |
encounterBuckets |
list of integer 1..256 |
hmMoves |
list of moves id |
levelCap |
integer >= 1 |
moneyCap |
integer >= 0 |
moveMax |
integer >= 1 |
partyMax |
integer >= 1 |
cries
- semantics:
record
- target:
Data.audio.cries
- value: {header, length, pitch} | {file} | {base, length?, pitch?} | {chip, length?, pitch?}
encounters
- semantics:
record
- target:
Data.encounters
| field |
type |
required |
grass |
{rate, slots} |
no |
id |
string |
no |
water |
{rate, slots} |
no |
evolution_methods
- semantics:
record
- target:
Data.evolution_methods
| field |
type |
required |
check |
function |
yes |
describe |
function |
no |
field
- semantics:
deep
- target:
Data.field
Id = a top-level key of the target table. Keys not listed here are
accepted and merged as-is.
| key |
type |
badgeGates |
map of string -> {badge?, coords?, failText?, guards?, passText?, passedFlag?, text?} |
boot |
{lastHeal?, namePresets?, playerName?, rivalName?, screens?, startFacing?, startMap?, startMoney?, startX?, startY?, starterScript?, title?} |
flyOrder |
list of string |
hiddenItems |
map of string -> list of {item, x, y} |
ledges |
list of {facing, input, ledgeTile, standingTile, tileset?} |
playerPics |
{back?, demoBack?, front?} |
townMap |
{background?, cursorOrder?, gridPixelSize?, locations?, nest?} |
font
- semantics:
record
- target:
Data.font
- value: {advance?, base, charmap?, glyphsPerRow?, image} | {code, seq}
growth_rates
- semantics:
record
- target:
Data.growth_rates
| field |
type |
required |
expForLevel |
function |
yes |
icons
- semantics:
record
- target:
Data.icons.bySpecies
- value: string | {frames?, image}
item_effects
- semantics:
record
- target:
Data.item_effects
| field |
type |
required |
battle |
boolean |
no |
field |
boolean |
no |
needsTarget |
boolean |
no |
use |
function |
yes |
items
- semantics:
record
- target:
Data.items
| field |
type |
required |
ball |
balls id |
no |
effect |
item_effects id |
no |
id |
string |
yes |
index |
integer 0..255 |
no |
machine |
{kind, move, number} |
no |
name |
string |
yes |
needsTarget |
boolean |
no |
price |
integer >= 0 |
yes |
tossable |
boolean |
no |
link_fields
- semantics:
record
- target:
Data.link_fields
| field |
type |
required |
pack |
function |
no |
rev |
integer >= 0 |
string |
unpack |
function |
no |
map_scripts
- semantics:
compose
- target:
Data.map_scripts
- value: {onBoulderMoved?, onEnter?, onInteract?, onStep?, onVictory?, priority?, scripts?, snorlaxWake?, talk?}
map_songs
- semantics:
record
- target:
Data.audio.mapSongs
- value: music id
maps
- semantics:
record
- target:
Data.maps
| field |
type |
required |
blocks |
list of integer 0..255 |
yes |
borderBlock |
integer 0..255 |
no |
connections |
map of one of "north" |
"south" |
height |
integer >= 1 |
yes |
id |
string |
yes |
index |
integer >= 0 |
no |
label |
string |
no |
objects |
list of any value |
no |
signs |
list of any value |
no |
tileset |
tilesets id |
yes |
warps |
list of {destMap, destWarp, x, y} |
no |
width |
integer >= 1 |
yes |
migrations
- semantics:
compose
- target: none
- value: {run, since}
move_effects
- semantics:
record
- target:
Data.move_effects
| field |
type |
required |
accuracyChecked |
boolean |
no |
kind |
one of "primary" |
"secondary" |
run |
function |
no |
moves
- semantics:
record
- target:
Data.moves
| field |
type |
required |
accuracy |
integer 0..100 |
yes |
anim |
any value |
no |
category |
one of "physical" |
"special" |
chargeText |
string |
no |
counterable |
boolean |
no |
effect |
move_effects id |
yes |
fixedDamage |
integer >= 1 |
function |
highCrit |
boolean |
no |
id |
string |
yes |
index |
integer 0..255 |
no |
multiHit |
integer >= 1 |
list of integer >= 1 |
name |
string |
yes |
power |
integer 0..255 |
yes |
pp |
integer 0..64 |
yes |
priority |
integer -7..7 |
no |
semiInvulnerable |
boolean |
no |
type |
type_chart id |
yes |
music
- semantics:
record
- target:
Data.audio.songs
- value: {address, bank, engine?} | {file, intro?, loopFile?, loopSeconds?, seconds?} | {channels, drums?, program, waves?} | {chip}
palettes
- semantics:
record
- target:
Data.palettes.palettes
- value: list of list of integer 0..255 | {colors}
pokemon
- semantics:
record
- target:
Data.pokemon
| field |
type |
required |
baseExp |
integer 0..255 |
yes |
baseStats |
{attack, defense, hp, special, speed} |
yes |
battleScaleBack |
number 0.25..4 |
no |
battleScaleFront |
number 0.25..4 |
no |
catchRate |
integer 0..255 |
yes |
cry |
cries id |
no |
dex |
integer >= 1 |
yes |
dexEntry |
{heightFt, heightIn, kind, text, weight} |
no |
evolutions |
list of {item?, level?, method, species} |
yes |
frontSize |
integer 1..7 |
yes |
growthRate |
growth_rates id |
yes |
icon |
string |
{frames?, image} |
id |
string |
yes |
index |
integer 0..255 |
no |
learnset |
list of {level, move} |
yes |
level1Moves |
list of moves id |
yes |
name |
string |
yes |
palette |
palettes id |
no |
spriteBack |
file path |
yes |
spriteFront |
file path |
yes |
tmhm |
list of moves id |
no |
trueColor |
boolean |
no |
types |
list of type_chart id |
yes |
render_pipelines
- semantics:
record
- target:
Data.render_pipelines
| field |
type |
required |
available |
function |
no |
drawWorld |
function |
no |
gate |
function |
no |
hotkey |
string |
no |
invalidate |
function |
no |
label |
string |
yes |
levels |
list of string |
no |
present |
function |
no |
priority |
number |
no |
update |
function |
no |
worldPresent |
function |
no |
rulesets
- semantics:
record
- target:
Data.rulesets
| field |
type |
required |
name |
string |
yes |
screens
- semantics:
record
- target:
Data.screens
- value: function | {new}
sfx
- semantics:
record
- target:
Data.audio.sfx
- value: string | {address, bank, engine?} | {file} | {chip}
sprites
- semantics:
record
- target:
Data.sprites
| field |
type |
required |
frames |
integer >= 1 |
yes |
id |
string |
no |
image |
file path |
yes |
trueColor |
boolean |
no |
walker |
boolean |
no |
statuses
- semantics:
record
- target:
Data.statuses
| field |
type |
required |
beforeMove |
function |
no |
beforeMovePriority |
integer >= 0 |
no |
canInflict |
function |
no |
catchBonus |
integer 0..255 |
no |
cureOnSwitch |
boolean |
no |
hudLabel |
string |
no |
id |
string |
no |
label |
string |
yes |
onInflict |
function |
no |
residual |
function |
no |
shakeBonus |
integer 0..255 |
no |
statPenalty |
{div, stat} |
no |
strings
- semantics:
record
- target:
Data.strings
- value: string
text
- semantics:
record
- target:
Data.text
- value: string
text_pointers
- semantics:
deep
- target:
Data.text_pointers
Id = a top-level key of the target table; every key carries the same
shape.
- value: map of string -> {asm?, cableClub?, label?, mart?, nurse?, pc?, text?}
tilesets
- semantics:
record
- target:
Data.tilesets
| field |
type |
required |
animation |
string |
no |
blocks |
list of any value |
yes |
counterTiles |
any value |
no |
doorTiles |
any value |
no |
id |
string |
no |
image |
file path |
yes |
imageHeight |
integer >= 1 |
no |
imageWidth |
integer >= 1 |
no |
tilesPerRow |
integer >= 1 |
no |
trueColor |
boolean |
no |
walkable |
any value |
no |
warpTiles |
any value |
no |
tokens
- semantics:
record
- target:
Data.tokens
- value: function
trainers
- semantics:
record
- target:
Data.trainers
| field |
type |
required |
aiClass |
ai_classes id |
no |
aiMods |
any value |
no |
baseMoney |
integer >= 0 |
no |
battleTheme |
music id |
no |
brain |
function |
no |
id |
string |
yes |
index |
integer 0..255 |
no |
name |
string |
yes |
parties |
list of list of {level, species} |
yes |
pic |
file path |
no |
transitions
- semantics:
record
- target:
Data.transitions
| field |
type |
required |
draw |
function |
no |
flash |
boolean |
no |
frames |
integer >= 1 |
yes |
sound |
string |
no |
type_chart
- semantics:
record
- target:
Data.type_chart
- value: {multiplier} | {category, index?, name?}
v1 aliases
| alias |
canonical |
scripts |
map_scripts |
ui |
screens |