Registry reference
One section per registry: merge semantics, the Data table the merge
writes, and the value schema. Where Gold differs -- a different table, a
different record, or no home at all -- the registry carries a Gen 2
subsection built from the same catalog entry. Concepts and verbs:
Concepts: Registries.
Reading this reference
Use the wiki's Choose-A-Registry guide when you know what you want
to make but not the registry name. This page is the precise schema
catalog once you have chosen one.
Type notation
string, number, boolean, and function name the Lua value to
supply. A function is code the engine calls later; see the linked
concept/reference page for its arguments and return value.
{ field, otherField? } is a record (a Lua table with named fields).
A ? means that field is optional. list of T is an ordered Lua
table of values shaped like T; map of K -> V maps each key to a
value shaped like V.
A | B means either shape is accepted. moves id, items id, and
similar phrases mean the internal id of a record in that registry,
not its displayed name.
Example status
Every example below is shape only. Put an adapted call in your mod
entry file. Replace ... and names such as fn with real values, and
supply every field marked required when registering a new record.
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" | "brain" |
no |
onStatus |
boolean |
no |
score |
function |
no |
switch |
boolean |
no |
switchBelow |
integer >= 1 |
no |
switchChance |
integer 0..256 |
no |
uses |
integer >= 0 |
no |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2AiClasses
apricorns
- semantics:
record
- target: none
Gen 2 only: Red, Blue and Yellow have no such system, so there is no
Gen 1 table to merge into and a write here on a Gen 1 boot is dropped
and reported. See the Gold subsection below for where it does land.
| field |
type |
required |
apricorn |
items id |
yes |
ball |
items id |
yes |
event |
integer >= 0 |
yes |
index |
integer >= 1 |
yes |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Apricorns
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 |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Balls
battle_anims
- semantics:
record
- target:
Data.battle_anims
- value: {seq, source?} | {blocks, type?} | {height, path, source?, tiles, width}
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2BattleAnims
The record differs; the registry name, the verbs and the id space
do not.
Id = a top-level key of the target table. Keys not listed here are
accepted and merged as-is.
| key |
type |
bank |
integer >= 0 |
framesets |
map of string -> list of list of any value |
generation |
integer >= 1 |
gfx |
map of string -> {image, tiles, wide} |
ids |
map of string -> string |
moves |
map of string -> string |
oamsets |
map of string -> {sprites, vtile} |
objects |
map of string -> {fixY?, flags?, frameset, func, gfx, palette} |
scriptOrder |
list of string |
scripts |
map of string -> list of list of any value |
source |
string |
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 |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Constants
The record differs; the registry name, the verbs and the id space
do not.
Id = a top-level key of the target table. Keys not listed here are
accepted and merged as-is.
| key |
type |
battleAnimBgPaletteOrder |
list of string |
battleAnimFramesetOrder |
list of string |
battleAnimFuncOrder |
list of string |
battleAnimGfxOrder |
list of string |
battleAnimOamsetOrder |
list of string |
battleAnimObPaletteOrder |
list of string |
battleAnimObjectOrder |
list of string |
battleBgEffectOrder |
list of string |
cmdQueueOrder |
list of string |
decoDescOrder |
list of string |
eggGroupOrder |
list of string |
environmentOrder |
list of string |
evolveMethodOrder |
list of string |
fishGroupOrder |
list of string |
floorOrder |
list of string |
generation |
integer >= 1 |
growthRateOrder |
list of string |
heldEffectOrder |
list of string |
iconOrder |
list of string |
itemMenuOrder |
list of string |
itemNameCount |
integer >= 0 |
itemOrder |
list of string |
landmarkOrder |
list of string |
mapCallbackOrder |
list of string |
mapGroups |
list of {group, height, map, name, width} |
mapOrder |
list of string |
moveEffectOrder |
list of string |
moveOrder |
list of string |
musicOrder |
list of string |
numOverworldSprites |
integer >= 0 |
paletteOrder |
list of string |
phoneContactOrder |
list of string |
pocketOrder |
list of string |
sfxOrder |
list of string |
source |
string |
spawnOrder |
list of string |
specialCallOrder |
list of string |
specialOrder |
list of string |
speciesOrder |
list of string |
spriteOrder |
list of string |
spritePokemon |
integer >= 0 |
stdScriptOrder |
list of string |
tilesetOrder |
list of string |
tradeDialogOrder |
list of string |
tradeGenderOrder |
list of string |
trainerClassMembers |
map of string -> list of string |
trainerClassOrder |
list of string |
trainerTypeOrder |
list of string |
treeMonSetOrder |
list of string |
types |
map of string -> integer >= 0 |
cries
- semantics:
record
- target:
Data.audio.cries
- value: {header, length, pitch} | {file} | {base, length?, pitch?} | {chip, length?, pitch?}
decorations
- semantics:
record
- target: none
Gen 2 only: Red, Blue and Yellow have no such system, so there is no
Gen 1 table to merge into and a write here on a Gen 1 boot is dropped
and reported. See the Gold subsection below for where it does land.
| field |
type |
required |
action |
string |
no |
flag |
integer >= 0 |
yes |
name |
string |
yes |
sprite |
integer 0..255 |
yes |
type |
integer 1..6 |
yes |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Decorations
encounters
- semantics:
record
- target:
Data.encounters
| field |
type |
required |
grass |
{rate, slots} |
no |
id |
string |
no |
water |
{rate, slots} |
no |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Encounters
The record differs; the registry name, the verbs and the id space
do not.
Id = a top-level key of the target table. Keys not listed here are
accepted and merged as-is.
| key |
type |
bugContest |
list of {chance, max, min, species} |
fishGroups |
map of string -> {chance, good, id?, index?, old, super} |
generation |
integer >= 1 |
grass |
map of string -> {map?, rates, slots} |
roamMaps |
list of {map, to} |
rocks |
map of string -> string |
source |
string |
swarmGrass |
map of string -> {map?, rates, slots} |
swarmWater |
map of string -> {map?, rate, slots} |
timeFishGroups |
map of string | integer 0..255 -> {day, nite} |
treeMonsAsleep |
{DAY, MORN, NITE} |
treeSets |
map of string -> {common, rare?} |
trees |
map of string -> string |
water |
map of string -> {map?, rate, slots} |
evolution_methods
- semantics:
record
- target:
Data.evolution_methods
| field |
type |
required |
check |
function |
yes |
describe |
function |
no |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2EvolutionMethods
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?, oakBack?} |
townMap |
{background?, cursorOrder?, gridPixelSize?, locations?, nest?, upArrow?} |
On Gold (Gen 2)
No Gen 2 home: Gold reimplements this system without reading the
registry, so a write here is dropped and reported on a Gold boot.
docs/mod-api-gen2-compat.md in the engine repo lists what is left
to do for each one.
font
- semantics:
record
- target:
Data.font
- value: {advance?, base, charmap?, glyphsPerRow?, image} | {code, seq} | {bold?, file?, size?, spacing?, tiles?, yOffset?}
growth_rates
- semantics:
record
- target:
Data.growth_rates
| field |
type |
required |
expForLevel |
function |
yes |
held_items
- semantics:
record
- target: none
Gen 2 only: Red, Blue and Yellow have no such system, so there is no
Gen 1 table to merge into and a write here on a Gen 1 boot is dropped
and reported. See the Gold subsection below for where it does land.
| field |
type |
required |
heldEffect |
string |
yes |
heldParameter |
integer 0..255 |
no |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2HeldItems
icons
- semantics:
record
- target:
Data.icons.bySpecies
- value: string | {frames?, image}
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Icons
The record differs; the registry name, the verbs and the id space
do not.
- value: string | {frames, height, id?, image, index?, width}
item_effects
- semantics:
record
- target:
Data.item_effects
| field |
type |
required |
battle |
boolean |
no |
field |
boolean |
no |
needsTarget |
boolean |
no |
use |
function |
yes |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2ItemEffects
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 |
On Gold (Gen 2)
- semantics:
record
- target:
Data.items
The record differs; the registry name, the verbs and the id space
do not.
| 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 |
landmarks
- semantics:
record
- target: none
Gen 2 only: Red, Blue and Yellow have no such system, so there is no
Gen 1 table to merge into and a write here on a Gen 1 boot is dropped
and reported. See the Gold subsection below for where it does land.
| field |
type |
required |
id |
string |
no |
index |
integer >= 0 |
yes |
name |
string |
yes |
x |
integer >= 0 |
yes |
y |
integer >= 0 |
yes |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Landmarks.landmarks
link_fields
- semantics:
record
- target:
Data.link_fields
Cart protocol only: this registry does not make a freely enabled
loose mod eligible for player link play. Player links are set up in the
launcher with a vanilla cart or a sealed custom cart.
| field |
type |
required |
pack |
function |
no |
rev |
integer >= 0 | string |
yes |
unpack |
function |
no |
On Gold (Gen 2)
No Gen 2 home: Gold reimplements this system without reading the
registry, so a write here is dropped and reported on a Gold boot.
docs/mod-api-gen2-compat.md in the engine repo lists what is left
to do for each one.
map_scripts
- semantics:
compose
- target:
Data.map_scripts
- value: {onBoulderMoved?, onEnter?, onInteract?, onStep?, onVictory?, priority?, scripts?, snorlaxWake?, talk?}
On Gold (Gen 2)
No Gen 2 home: Gold reimplements this system without reading the
registry, so a write here is dropped and reported on a Gold boot.
docs/mod-api-gen2-compat.md in the engine repo lists what is left
to do for each one.
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" | "east" | "west" -> any value |
no |
height |
integer >= 1 |
yes |
id |
string |
yes |
index |
integer >= 0 |
no |
label |
string |
no |
objects |
list of {pokemon?, ...} |
no |
palette |
string |
no |
signs |
list of any value |
no |
tileset |
tilesets id |
yes |
warps |
list of {destGroup?, destMap, destMapNum?, destWarp, x, y} |
no |
width |
integer >= 1 |
yes |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Maps
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" | "full" |
yes |
run |
function |
no |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2MoveEffects
moves
- semantics:
record
- target:
Data.moves
| field |
type |
required |
accuracy |
integer 0..100 |
yes |
anim |
any value |
no |
category |
one of "physical" | "special" | "status" |
no |
chargeText |
string |
no |
counterable |
boolean |
no |
effect |
move_effects id |
yes |
fixedDamage |
integer >= 1 | function |
no |
highCrit |
boolean |
no |
id |
string |
yes |
index |
integer 0..255 |
no |
multiHit |
integer >= 1 | list of integer >= 1 |
no |
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 |
On Gold (Gen 2)
- semantics:
record
- target:
Data.moves
The record differs; the registry name, the verbs and the id space
do not.
| field |
type |
required |
accuracy |
integer 0..100 |
yes |
anim |
any value |
no |
category |
one of "physical" | "special" | "status" |
no |
chargeText |
string |
no |
counterable |
boolean |
no |
effect |
move_effects id |
yes |
fixedDamage |
integer >= 1 | function |
no |
highCrit |
boolean |
no |
id |
string |
yes |
index |
integer 0..255 |
no |
multiHit |
integer >= 1 | list of integer >= 1 |
no |
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}
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Palettes
The record differs; the registry name, the verbs and the id space
do not.
Id = a top-level key of the target table. Keys not listed here are
accepted and merged as-is.
| key |
type |
battleObjects |
map of string -> list of list of integer 0..255 |
bg |
list of list of list of integer 0..255 |
daytimes |
list of string |
environments |
map of string -> map of one of "MORN" | "DAY" | "NITE" | "DARK" -> list of integer >= 0 |
expBar |
list of list of integer 0..255 |
generation |
integer >= 1 |
hpBar |
map of one of "green" | "yellow" | "red" | "blue" -> list of list of integer 0..255 |
objects |
map of one of "MORN" | "DAY" | "NITE" | "DARK" -> list of list of list of integer 0..255 |
partyMenu |
list of list of list of integer 0..255 |
pokemon |
map of string -> {normal, shiny} |
roofSlot |
integer 0..7 |
roofs |
map of integer >= 0 -> {mornDay, nite} |
slotNames |
list of string |
source |
string |
trainers |
map of string -> list of list of integer 0..255 |
phone_contacts
- semantics:
record
- target: none
Gen 2 only: Red, Blue and Yellow have no such system, so there is no
Gen 1 table to merge into and a write here on a Gen 1 boot is dropped
and reported. See the Gold subsection below for where it does land.
| field |
type |
required |
callee |
string |
no |
calleeKey |
string |
no |
calleeTime |
integer 0..7 |
no |
caller |
string |
no |
callerKey |
string |
no |
callerTime |
integer 0..7 |
no |
class |
string |
no |
index |
integer >= 0 |
yes |
map |
maps id |
no |
member |
string |
no |
name |
string |
no |
number |
integer 0..255 |
no |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2PhoneContacts
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 |
battleTheme |
music id |
no |
catchRate |
integer 0..255 |
yes |
cry |
cries id |
no |
dex |
integer >= 1 |
yes |
dexEntry |
{heightFt, heightIn, heightM?, kind, text, text2?, weight, weightKg?} |
no |
evolutions |
list of {item?, level?, method, species} |
yes |
frontSize |
integer 1..7 |
yes |
growthRate |
growth_rates id |
yes |
icon |
string | {frames?, image} |
no |
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 |
On Gold (Gen 2)
- semantics:
record
- target:
Data.pokemon
The record differs; the registry name, the verbs and the id space
do not.
| field |
type |
required |
baseExp |
integer 0..255 |
yes |
baseStats |
{attack, defense, hp, specialAttack, specialDefense, speed} |
yes |
battleScaleBack |
number 0.25..4 |
no |
battleScaleFront |
number 0.25..4 |
no |
battleTheme |
music id |
no |
catchRate |
integer 0..255 |
yes |
cry |
cries id |
no |
dex |
integer >= 1 |
yes |
eggGroups |
list of string |
no |
eggGroupsRaw |
integer 0..255 |
no |
eggMoves |
list of moves id |
no |
eggSteps |
integer >= 0 |
no |
evolutions |
list of {comparison?, into, item?, level?, method, time?} |
yes |
genderRatio |
integer 0..255 |
no |
growthRate |
growth_rates id |
yes |
growthRateId |
integer 0..255 |
no |
id |
string |
yes |
index |
integer 0..255 |
no |
items |
list of items id |
no |
levelMoves |
list of {level, move} |
yes |
name |
string |
yes |
picSize |
integer 1..7 |
yes |
source |
string |
no |
spriteBack |
file path |
yes |
spriteFront |
file path |
yes |
tmhm |
list of moves id |
no |
tmhmRaw |
list of integer 0..255 |
no |
trueColor |
boolean |
no |
types |
list of type_chart id |
yes |
radio_channels
- semantics:
record
- target: none
Gen 2 only: Red, Blue and Yellow have no such system, so there is no
Gen 1 table to merge into and a write here on a Gen 1 boot is dropped
and reported. See the Gold subsection below for where it does land.
| field |
type |
required |
channel |
integer 0..255 |
no |
name |
string |
no |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2RadioChannels
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 |
rom_text
- semantics:
record
- target: none
Gen 2 only: Red, Blue and Yellow have no such system, so there is no
Gen 1 table to merge into and a write here on a Gen 1 boot is dropped
and reported. See the Gold subsection below for where it does land.
On Gold (Gen 2)
- semantics:
record
- target:
Data.text
rulesets
- semantics:
record
- target:
Data.rulesets
| field |
type |
required |
name |
string |
yes |
On Gold (Gen 2)
No Gen 2 home: Gold reimplements this system without reading the
registry, so a write here is dropped and reported on a Gold boot.
docs/mod-api-gen2-compat.md in the engine repo lists what is left
to do for each one.
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 |
anchorX |
number |
no |
anchorY |
number |
no |
frameHeight |
integer >= 1 |
no |
frameWidth |
integer >= 1 |
no |
frames |
integer >= 1 |
yes |
id |
string |
no |
image |
file path |
yes |
paletteSource |
string |
no |
trueColor |
boolean |
no |
walker |
boolean |
no |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Sprites
The record differs; the registry name, the verbs and the id space
do not.
| field |
type |
required |
frames |
integer >= 1 |
yes |
icon |
string |
no |
id |
string |
no |
image |
file path |
yes |
palette |
string |
no |
paletteId |
integer 0..7 |
no |
paletteSource |
string |
no |
source |
string |
no |
species |
pokemon id |
no |
spriteType |
one of "WALKING_SPRITE" | "STANDING_SPRITE" | "STILL_SPRITE" | "POKEMON_SPRITE" |
no |
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 |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Statuses
strings
- semantics:
record
- target:
Data.strings
- value: string
text
- semantics:
record
- target:
Data.text
- value: string
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Text
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?}
On Gold (Gen 2)
No Gen 2 home: Gold reimplements this system without reading the
registry, so a write here is dropped and reported on a Gold boot.
docs/mod-api-gen2-compat.md in the engine repo lists what is left
to do for each one.
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 |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Tilesets
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 |
basePic |
trainers id |
no |
battleTheme |
music id |
no |
brain |
function |
no |
id |
string |
yes |
index |
integer 0..255 |
no |
name |
string |
yes |
palette |
palettes id |
no |
paletteSource |
string |
no |
parties |
list of list of {level, moves?, species} |
yes |
partyNames |
map of integer >= 1 -> string |
no |
pic |
file path |
no |
trueColor |
boolean |
no |
On Gold (Gen 2)
- semantics:
record
- target:
Data.gen2Trainers
The record differs; the registry name, the verbs and the id space
do not.
| field |
type |
required |
attributes |
list of integer 0..255 |
no |
baseMoney |
integer >= 0 |
no |
battleTheme |
music id |
no |
encounterMusic |
music id |
no |
id |
string |
no |
index |
integer 0..255 |
no |
items |
list of items id |
no |
name |
string |
yes |
pic |
file path |
no |
trainers |
list of {id?, index?, name, party, trainerType?} |
yes |
trueColor |
boolean |
no |
transitions
- semantics:
record
- target:
Data.transitions
| field |
type |
required |
draw |
function |
no |
flash |
boolean |
no |
frames |
integer >= 1 |
yes |
sound |
string |
no |
On Gold (Gen 2)
No Gen 2 home: Gold reimplements this system without reading the
registry, so a write here is dropped and reported on a Gold boot.
docs/mod-api-gen2-compat.md in the engine repo lists what is left
to do for each one.
type_chart
- semantics:
record
- target:
Data.type_chart
- value: {multiplier} | {category, index?, name?}
v1 aliases
| alias |
canonical |
scripts |
map_scripts |
ui |
screens |