summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/bugs_and_glitches.md4
-rw-r--r--docs/event_commands.md265
-rw-r--r--docs/move_effect_commands.md176
-rw-r--r--docs/movement_commands.md39
4 files changed, 457 insertions, 27 deletions
diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md
index 5f6a3b3f7..9d62d6461 100644
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -1388,8 +1388,8 @@ First, edit `UsedSurfScript` in [engine/events/overworld.asm](/engine/events/ove
callasm .empty_fn ; empty function
- copybytetovar wBuffer2
- writevarcode VAR_MOVEMENT
+ readmem wBuffer2
+ writevar VAR_MOVEMENT
special ReplaceKrisSprite
special PlayMapMusic
diff --git a/docs/event_commands.md b/docs/event_commands.md
index 49130c792..cd18a1e2d 100644
--- a/docs/event_commands.md
+++ b/docs/event_commands.md
@@ -7,340 +7,555 @@ Until this document is filled out, the [G/S Scripting Compendium](https://hax.ii
## `$00`: <code>scall <i>script</i></code>
+
## `$01`: <code>farscall <i>script</i></code>
+
## `$02`: <code>ptcall <i>script</i></code>
+
## `$03`: <code>jump <i>script</i></code>
+
## `$04`: <code>farjump <i>script</i></code>
+
## `$05`: <code>ptjump <i>script</i></code>
+
## `$06`: <code>ifequal <i>byte</i>, <i>script</i></code>
+
## `$07`: <code>ifnotequal <i>byte</i>, <i>script</i></code>
+
## `$08`: <code>iffalse <i>script</i></code>
+
## `$09`: <code>iftrue <i>script</i></code>
+
## `$0A`: <code>ifgreater <i>byte</i>, <i>script</i></code>
+
## `$0B`: <code>ifless <i>byte</i>, <i>script</i></code>
+
## `$0C`: <code>jumpstd <i>std_script</i></code>
+
## `$0D`: <code>callstd <i>std_script</i></code>
+
## `$0E`: <code>callasm <i>asm</i></code>
+
## `$0F`: <code>special <i>special_pointer</i></code>
+
## `$10`: <code>ptcallasm <i>asm</i></code>
+
## `$11`: <code>checkmapscene <i>map</i></code>
+
## `$12`: <code>setmapscene <i>map</i>, <i>scene_id</i></code>
+
## `$13`: `checkscene`
+
## `$14`: <code>setscene <i>scene_id</i></code>
-## `$15`: <code>writebyte <i>value</i></code>
-## `$16`: <code>addvar <i>value</i></code>
+## `$15`: <code>setval <i>value</i></code>
+
+<code>[wScriptVar] = <i>value</i></code>
+
+
+## `$16`: <code>addval <i>value</i></code>
+
+<code>[wScriptVar] += <i>value</i></code>
+
## `$17`: <code>random <i>value</i></code>
+
## `$18`: `checkver`
-## `$19`: <code>copybytetovar <i>address</i></code>
-## `$1A`: <code>copyvartobyte <i>address</i></code>
+## `$19`: <code>readmem <i>address</i></code>
+
+<code>[wScriptVar] = [<i>address</i>]</code>
+
+
+## `$1A`: <code>writemem <i>address</i></code>
+
+<code>[<i>address</i>] = [wScriptVar]</code>
+
+
+## `$1B`: <code>loadmem <i>address</i>, <i>value</i></code>
+
+<code>[<i>address</i>] = <i>value</i></code>
+
+
+## `$1C`: <code>readvar <i>variable</i></code>
+
+<code>[wScriptVar] = GetVarAction(<i>variable</i>)</code>
-## `$1B`: <code>loadvar <i>address</i>, <i>value</i></code>
-## `$1C`: <code>checkcode <i>variable</i></code>
+## `$1D`: <code>writevar <i>variable</i></code>
-## `$1D`: <code>writevarcode <i>variable</i></code>
+<code>GetVarAction(<i>variable</i>) = [wScriptVar]</code>
+
+
+## `$1E`: <code>loadvar <i>variable</i>, <i>value</i></code>
+
+<code>GetVarAction(<i>variable</i>) = <i>value</i></code>
-## `$1E`: <code>writecode <i>variable</i>, <i>value</i></code>
## `$1F`: <code>giveitem <i>item_id</i>[, <i>quantity</i>=1]</code>
+
## `$20`: <code>takeitem <i>item_id</i>[, <i>quantity</i>=1]</code>
+
## `$21`: <code>checkitem <i>item_id</i></code>
+
## `$22`: <code>givemoney <i>account</i>, <i>value</i></code>
+
## `$23`: <code>takemoney <i>account</i>, <i>value</i></code>
+
## `$24`: <code>checkmoney <i>account</i>, <i>value</i></code>
+
## `$25`: <code>givecoins <i>value</i></code>
+
## `$26`: <code>takecoins <i>value</i></code>
+
## `$27`: <code>checkcoins <i>value</i></code>
+
## `$28`: <code>addcellnum <i>contact_id</i></code>
+
## `$29`: <code>delcellnum <i>contact_id</i></code>
+
## `$2A`: <code>checkcellnum <i>contact_id</i></code>
+
## `$2B`: <code>checktime <i>time</i></code>
+
## `$2C`: <code>checkpoke <i>mon_id</i></code>
+
## `$2D`: <code>givepoke <i>mon_id</i>, <i>level</i>[, <i>item</i>=0[, <i>trainer</i>=0, <i>ot_name</i>, <i>nickname</i>]]</code>
+
## `$2E`: <code>giveegg <i>mon_id</i>, <i>level</i></code>
+
## `$2F`: <code>givepokemail <i>pointer</i></code>
+
## `$30`: <code>checkpokemail <i>pointer</i></code>
+
## `$31`: <code>checkevent <i>event_flag</i></code>
+
## `$32`: <code>clearevent <i>event_flag</i></code>
+
## `$33`: <code>setevent <i>event_flag</i></code>
+
## `$34`: <code>checkflag <i>engine_flag</i></code>
+
## `$35`: <code>clearflag <i>engine_flag</i></code>
+
## `$36`: <code>setflag <i>engine_flag</i></code>
+
## `$37`: `wildon`
+
## `$38`: `wildoff`
+
## `$39`: <code>xycompare <i>pointer</i></code>
+
## `$3A`: <code>warpmod <i>warp_id</i>, <i>map</i></code>
+
## `$3B`: <code>blackoutmod <i>map</i></code>
+
## `$3C`: <code>warp <i>map</i>, <i>x</i>, <i>y</i></code>
-## `$3D`: <code>readmoney <i>account</i>, <i>memory</i></code>
-## `$3E`: <code>readcoins <i>memory</i></code>
+## `$3D`: <code>getmoney <i>string_buffer</i>, <i>account</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = PrintNum(GetMoneyAccount(<i>account</i>))</code>
+
+
+## `$3E`: <code>getcoins <i>string_buffer</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = PrintNum([wCoins])</code>
-## `$3F`: <code>vartomem <i>memory</i></code>
-## `$40`: <code>pokenamemem <i>mon_id</i>, <i>memory</i></code>
+## `$3F`: <code>getnum <i>string_buffer</i></code>
-## `$41`: <code>itemtotext <i>item_id</i>, <i>memory</i></code>
+<code>GetStringBuffer(<i>string_buffer</i>) = PrintNum([wScriptVar])</code>
-## `$42`: <code>mapnametotext <i>memory</i></code>
-## `$43`: <code>trainertotext <i>trainer_id</i>, <i>trainer_group</i>, <i>memory</i></code>
+## `$40`: <code>getmonname <i>string_buffer</i>, <i>mon_id</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = GetPokemonName(<i>mon_id</i>)</code>
+
+If <code><i>mon_id</i></code> = `USE_SCRIPT_VAR`, then it uses `[wScriptVar]` instead.
+
+
+## `$41`: <code>getitemname <i>string_buffer</i>, <i>item_id</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = GetItemName(<i>item_id</i>)</code>
+
+If <code><i>item_id</i></code> = `USE_SCRIPT_VAR`, then it uses `[wScriptVar]` instead.
+
+
+## `$42`: <code>getcurlandmarkname <i>string_buffer</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = GetLandmarkName(GetWorldMapLocation())</code>
+
+
+## `$43`: <code>gettrainername <i>string_buffer</i>, <i>trainer_group</i>, <i>trainer_id</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = GetTrainerName(<i>trainer_group</i>, <i>trainer_id</i>)</code>
+
+
+## `$44`: <code>getstring <i>string_buffer</i>, <i>text_pointer</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = CopyName1([wScriptBank], <i>text_pointer</i>)</code>
-## `$44`: <code>stringtotext <i>text_pointer</i>, <i>memory</i></code>
## `$45`: `itemnotify`
+
## `$46`: `pocketisfull`
+
## `$47`: `opentext`
+
## `$48`: <code>refreshscreen [<i>dummy</i>=0]</code>
+
## `$49`: `closetext`
+
## `$4A`: <code>loadbytec2cf <i>byte</i></code>
+
## `$4B`: <code>farwritetext <i>text_pointer</i></code>
+
## `$4C`: <code>writetext <i>text_pointer</i></code>
+
## `$4D`: <code>repeattext <i>byte1</i>, <i>byte2</i></code>
+
## `$4E`: `yesorno`
+
## `$4F`: <code>loadmenu <i>menu_header</i></code>
+
## `$50`: `closewindow`
+
## `$51`: <code>jumptextfaceplayer <i>text_pointer</i></code>
+
## `$52`: <code>farjumptext <i>text_pointer</i></code>
+
## `$53`: <code>jumptext <i>text_pointer</i></code>
+
## `$54`: `waitbutton`
+
## `$55`: `buttonsound`
+
## `$56`: <code>pokepic <i>mon_id</i></code>
+
## `$57`: `closepokepic`
+
## `$58`: `_2dmenu`
+
## `$59`: `verticalmenu`
+
## `$5A`: `loadpikachudata`
+
## `$5B`: `randomwildmon`
-## `$5C`: `loadmemtrainer`
+
+## `$5C`: `loadtemptrainer`
+
+`[wOtherTrainer] = [wTempTrainer]`
+
## `$5D`: <code>loadwildmon <i>mon_id</i>, <i>level</i></code>
+
## `$5E`: <code>loadtrainer <i>trainer_group</i>, <i>trainer_id</i></code>
+
## `$5F`: `startbattle`
+
## `$60`: `reloadmapafterbattle`
+
## `$61`: <code>catchtutorial <i>byte</i></code>
-## `$62`: <code>trainertext <i>which_text</i></code>
+
+## `$62`: <code>trainertext <i>text_id</i></code>
+
## `$63`: <code>trainerflagaction <i>action</i></code>
+
## `$64`: <code>winlosstext <i>win_text_pointer</i>, <i>loss_text_pointer</i></code>
+
## `$65`: `scripttalkafter`
+
## `$66`: `endifjustbattled`
+
## `$67`: `checkjustbattled`
+
## `$68`: <code>setlasttalked <i>object_id</i></code>
+
## `$69`: <code>applymovement <i>object_id</i>, <i>data_pointer</i></code>
-## `$6A`: <code>applymovement2 <i>data_pointer</i></code>
+
+## `$6A`: <code>applymovementlasttalked <i>data_pointer</i></code>
+
## `$6B`: `faceplayer`
+
## `$6C`: <code>faceobject <i>object1</i>, <i>object2</i></code>
+
## `$6D`: <code>variablesprite <i>variable_sprite_id</i>, <i>sprite_id</i></code>
+
## `$6E`: <code>disappear <i>object_id</i></code>
+
## `$6F`: <code>appear <i>object_id</i></code>
+
## `$70`: <code>follow <i>object2</i>, <i>object1</i></code>
+
## `$71`: `stopfollow`
+
## `$72`: <code>moveobject <i>object_id</i>, <i>x</i>, <i>y</i></code>
+
## `$73`: <code>writeobjectxy <i>object_id</i></code>
+
## `$74`: <code>loademote <i>emote_id</i></code>
+
## `$75`: <code>showemote <i>emote_id</i>, <i>object_id</i>, <i>length</i></code>
+
## `$76`: <code>turnobject <i>object_id</i>, <i>facing</i></code>
+
## `$77`: <code>follownotexact <i>object2</i>, <i>object1</i></code>
+
## `$78`: <code>earthquake <i>param</i></code>
-## `$79`: <code>changemap <i>bank</i>, <i>blockdata_pointer</i></code>
+
+## `$79`: <code>changemapblocks <i>blockdata_pointer</i></code>
+
+<code>ChangeMap(<i>blockdata_pointer</i>)</code>
+
## `$7A`: <code>changeblock <i>x</i>, <i>y</i>, <i>block</i></code>
+
## `$7B`: `reloadmap`
+
## `$7C`: `reloadmappart`
+
## `$7D`: <code>writecmdqueue <i>queue_pointer</i></code>
+
## `$7E`: <code>delcmdqueue <i>byte</i></code>
+
## `$7F`: <code>playmusic <i>music_id</i></code>
+
## `$80`: `encountermusic`
+
## `$81`: <code>musicfadeout <i>music_id</i>, <i>length</i></code>
+
## `$82`: `playmapmusic`
+
## `$83`: `dontrestartmapmusic`
+
## `$84`: <code>cry <i>mon_id</i></code>
+
## `$85`: <code>playsound <i>sfx_id</i></code>
+
## `$86`: `waitsfx`
+
## `$87`: `warpsound`
+
## `$88`: `specialsound`
+
## `$89`: <code>autoinput <i>input_pointer</i></code>
+
## `$8A`: <code>newloadmap <i>which_method</i></code>
+
## `$8B`: <code>pause <i>length</i></code>
+
## `$8C`: <code>deactivatefacing <i>length</i></code>
+
## `$8D`: <code>priorityjump <i>script</i></code>
+
## `$8E`: `warpcheck`
+
## `$8F`: <code>ptpriorityjump <i>script</i></code>
+
## `$90`: `return`
+
## `$91`: `end`
+
## `$92`: <code>reloadandreturn <i>which_method</i></code>
+
## `$93`: `endall`
+
## `$94`: <code>pokemart <i>dialog_id</i>, <i>mart_id</i></code>
+
## `$95`: <code>elevator <i>floor_list</i></code>
+
## `$96`: <code>trade <i>trade_id</i></code>
+
## `$97`: <code>askforphonenumber <i>contact_id</i></code>
+
## `$98`: <code>phonecall <i>call_id</i></code>
+
## `$99`: `hangup`
+
## `$9A`: <code>describedecoration <i>byte</i></code>
+
## `$9B`: <code>fruittree <i>tree_id</i></code>
+
## `$9C`: <code>specialphonecall <i>call_id</i></code>
+
## `$9D`: `checkphonecall`
+
## `$9E`: <code>verbosegiveitem <i>item_id</i>[, <i>quantity</i>=1]</code>
-## `$9F`: <code>verbosegiveitem2 <i>item_id</i>, <i>variable</i></code>
+
+## `$9F`: <code>verbosegiveitemvar <i>item_id</i>, <i>variable</i></code>
+
## `$A0`: <code>swarm <i>swarm_id</i>, <i>map</i></code>
+
## `$A1`: `halloffame`
+
## `$A2`: `credits`
+
## `$A3`: <code>warpfacing <i>facing</i>, <i>map</i>, <i>x</i>, <i>y</i></code>
-## `$A4`: <code>battletowertext <i>memory</i></code>
-## `$A5`: <code>landmarktotext <i>landmark_id</i>, <i>memory</i></code>
+## `$A4`: <code>battletowertext <i>bttext_id</i></code>
+
+
+## `$A5`: <code>getlandmarkname <i>string_buffer</i>, <i>landmark_id</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = GetLandmarkName(<i>landmark_id</i>)</code>
-## `$A6`: <code>trainerclassname <i>trainer_group</i>, <i>memory</i></code>
-## `$A7`: <code>name <i>type</i>, <i>id</i>, <i>memory</i></code>
+## `$A6`: <code>gettrainerclassname <i>string_buffer</i>, <i>trainer_group</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = GetName(TRAINER_NAME, <i>trainer_group</i>)</code>
+
+
+## `$A7`: <code>getname <i>string_buffer</i>, <i>type</i>, <i>id</i></code>
+
+<code>GetStringBuffer(<i>string_buffer</i>) = GetName(<i>type</i>, <i>id</i>)</code>
+
## `$A8`: <code>wait <i>duration</i></code>
+
## `$A9`: `checksave`
diff --git a/docs/move_effect_commands.md b/docs/move_effect_commands.md
index acb9eca8e..e8f239ef0 100644
--- a/docs/move_effect_commands.md
+++ b/docs/move_effect_commands.md
@@ -5,354 +5,530 @@ Defined in [macros/scripts/battle_commands.asm](/macros/scripts/battle_commands.
## `$01`: `checkturn`
+
## `$02`: `checkobedience`
+
## `$03`: `usedmovetext`
+
## `$04`: `doturn`
+
## `$05`: `critical`
+
## `$06`: `damagestats`
+
## `$07`: `stab`
+
## `$08`: `damagevariation`
+
## `$09`: `checkhit`
+
## `$0A`: `lowersub`
+
## `$0B`: `hittargetnosub`
+
## `$0C`: `raisesub`
+
## `$0D`: `failuretext`
+
## `$0E`: `applydamage`
+
## `$0F`: `criticaltext`
+
## `$10`: `supereffectivetext`
+
## `$11`: `checkfaint`
+
## `$12`: `buildopponentrage`
+
## `$13`: `poisontarget`
+
## `$14`: `sleeptarget`
+
## `$15`: `draintarget`
+
## `$16`: `eatdream`
+
## `$17`: `burntarget`
+
## `$18`: `freezetarget`
+
## `$19`: `paralyzetarget`
+
## `$1A`: `selfdestruct`
+
## `$1B`: `mirrormove`
+
## `$1C`: `statup`
+
## `$1D`: `statdown`
+
## `$1E`: `payday`
+
## `$1F`: `conversion`
+
## `$20`: `resetstats`
+
## `$21`: `storeenergy`
+
## `$22`: `unleashenergy`
+
## `$23`: `forceswitch`
+
## `$24`: `endloop`
+
## `$25`: `flinchtarget`
+
## `$26`: `ohko`
+
## `$27`: `recoil`
+
## `$28`: `mist`
+
## `$29`: `focusenergy`
+
## `$2A`: `confuse`
+
## `$2B`: `confusetarget`
+
## `$2C`: `heal`
+
## `$2D`: `transform`
+
## `$2E`: `screen`
+
## `$2F`: `poison`
+
## `$30`: `paralyze`
+
## `$31`: `substitute`
+
## `$32`: `rechargenextturn`
+
## `$33`: `mimic`
+
## `$34`: `metronome`
+
## `$35`: `leechseed`
+
## `$36`: `splash`
+
## `$37`: `disable`
+
## `$38`: `cleartext`
+
## `$39`: `charge`
+
## `$3A`: `checkcharge`
+
## `$3B`: `traptarget`
+
## `$3C`: `effect0x3c`
+
## `$3D`: `rampage`
+
## `$3E`: `checkrampage`
+
## `$3F`: `constantdamage`
+
## `$40`: `counter`
+
## `$41`: `encore`
+
## `$42`: `painsplit`
+
## `$43`: `snore`
+
## `$44`: `conversion2`
+
## `$45`: `lockon`
+
## `$46`: `sketch`
+
## `$47`: `defrostopponent`
+
## `$48`: `sleeptalk`
+
## `$49`: `destinybond`
+
## `$4A`: `spite`
+
## `$4B`: `falseswipe`
+
## `$4C`: `healbell`
+
## `$4D`: `kingsrock`
+
## `$4E`: `triplekick`
+
## `$4F`: `kickcounter`
+
## `$50`: `thief`
+
## `$51`: `arenatrap`
+
## `$52`: `nightmare`
+
## `$53`: `defrost`
+
## `$54`: `curse`
+
## `$55`: `protect`
+
## `$56`: `spikes`
+
## `$57`: `foresight`
+
## `$58`: `perishsong`
+
## `$59`: `startsandstorm`
+
## `$5A`: `endure`
+
## `$5B`: `checkcurl`
+
## `$5C`: `rolloutpower`
+
## `$5D`: `effect0x5d`
+
## `$5E`: `furycutter`
+
## `$5F`: `attract`
+
## `$60`: `happinesspower`
+
## `$61`: `present`
+
## `$62`: `damagecalc`
+
## `$63`: `frustrationpower`
+
## `$64`: `safeguard`
+
## `$65`: `checksafeguard`
+
## `$66`: `getmagnitude`
+
## `$67`: `batonpass`
+
## `$68`: `pursuit`
+
## `$69`: `clearhazards`
+
## `$6A`: `healmorn`
+
## `$6B`: `healday`
+
## `$6C`: `healnite`
+
## `$6D`: `hiddenpower`
+
## `$6E`: `startrain`
+
## `$6F`: `startsun`
+
## `$70`: `attackup`
+
## `$71`: `defenseup`
+
## `$72`: `speedup`
+
## `$73`: `specialattackup`
+
## `$74`: `specialdefenseup`
+
## `$75`: `accuracyup`
+
## `$76`: `evasionup`
+
## `$77`: `attackup2`
+
## `$78`: `defenseup2`
+
## `$79`: `speedup2`
+
## `$7A`: `specialattackup2`
+
## `$7B`: `specialdefenseup2`
+
## `$7C`: `accuracyup2`
+
## `$7D`: `evasionup2`
+
## `$7E`: `attackdown`
+
## `$7F`: `defensedown`
+
## `$80`: `speeddown`
+
## `$81`: `specialattackdown`
+
## `$82`: `specialdefensedown`
+
## `$83`: `accuracydown`
+
## `$84`: `evasiondown`
+
## `$85`: `attackdown2`
+
## `$86`: `defensedown2`
+
## `$87`: `speeddown2`
+
## `$88`: `specialattackdown2`
+
## `$89`: `specialdefensedown2`
+
## `$8A`: `accuracydown2`
+
## `$8B`: `evasiondown2`
+
## `$8C`: `statupmessage`
+
## `$8D`: `statdownmessage`
+
## `$8E`: `statupfailtext`
+
## `$8F`: `statdownfailtext`
+
## `$90`: `effectchance`
+
## `$91`: `statdownanim`
+
## `$92`: `statupanim`
+
## `$93`: `switchturn`
+
## `$94`: `fakeout`
+
## `$95`: `bellydrum`
+
## `$96`: `psychup`
+
## `$97`: `rage`
+
## `$98`: `doubleflyingdamage`
+
## `$99`: `doubleundergrounddamage`
+
## `$9A`: `mirrorcoat`
+
## `$9B`: `checkfuturesight`
+
## `$9C`: `futuresight`
+
## `$9D`: `doubleminimizedamage`
+
## `$9E`: `skipsuncharge`
+
## `$9F`: `thunderaccuracy`
+
## `$A0`: `teleport`
+
## `$A1`: `beatup`
+
## `$A2`: `ragedamage`
+
## `$A3`: `resettypematchup`
+
## `$A4`: `allstatsup`
+
## `$A5`: `bidefailtext`
+
## `$A6`: `raisesubnoanim`
+
## `$A7`: `lowersubnoanim`
+
## `$A8`: `beatupfailtext`
+
## `$A9`: `clearmissdamage`
+
## `$AA`: `movedelay`
+
## `$AB`: `hittarget`
+
## `$AC`: `tristatuschance`
+
## `$AD`: `supereffectivelooptext`
+
## `$AE`: `startloop`
+
## `$AF`: `curl`
+
## `$FE`: `endturn`
+
## `$FF`: `endmove`
diff --git a/docs/movement_commands.md b/docs/movement_commands.md
index 794dd8a98..8dd278136 100644
--- a/docs/movement_commands.md
+++ b/docs/movement_commands.md
@@ -5,80 +5,119 @@ Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engi
## `$00`−`$03`: <code>turn_head <i>direction</i></code>
+
## `$04`−`$07`: <code>turn_step <i>direction</i></code>
+
## `$08`−`$0B`: <code>slow_step <i>direction</i></code>
+
## `$0C`−`$0F`: <code>step <i>direction</i></code>
+
## `$10`−`$13`: <code>big_step <i>direction</i></code>
+
## `$14`−`$17`: <code>slow_slide_step <i>direction</i></code>
+
## `$18`−`$1B`: <code>slide_step <i>direction</i></code>
+
## `$1C`−`$1F`: <code>fast_slide_step <i>direction</i></code>
+
## `$20`−`$23`: <code>turn_away <i>direction</i></code>
+
## `$24`−`$27`: <code>turn_in <i>direction</i></code>
+
## `$28`−`$2B`: <code>turn_waterfall <i>direction</i></code>
+
## `$2C`−`$2F`: <code>slow_jump_step <i>direction</i></code>
+
## `$30`−`$33`: <code>jump_step <i>direction</i></code>
+
## `$34`−`$37`: <code>fast_jump_step <i>direction</i></code>
+
## `$38`: `remove_sliding`
+
## `$39`: `set_sliding`
+
## `$3A`: `remove_fixed_facing`
+
## `$3B`: `fix_facing`
+
## `$3C`: `show_object`
+
## `$3D`: `hide_object`
+
## `$3E`−`$46`: <code>step_sleep <i>length</i></code>
+
## `$47`: `step_end`
+
## `$48`: <code>step_48 <i>param</i></code>
+
## `$49`: `remove_object`
+
## `$4A`: `step_loop`
+
## `$4B`: `step_4b`
+
## `$4C`: `teleport_from`
+
## `$4D`: `teleport_to`
+
## `$4E`: `skyfall`
+
## `$4F`: <code>step_dig <i>length</i></code>
+
## `$50`: `step_bump`
+
## `$51`: `fish_got_bite`
+
## `$52`: `fish_cast_rod`
+
## `$53`: `hide_emote`
+
## `$54`: `show_emote`
+
## `$55`: <code>step_shake <i>displacement</i></code>
+
## `$56`: `tree_shake`
+
## `$57`: <code>rock_smash <i>length</i></code>
+
## `$58`: <code>return_dig <i>length</i></code>
+
## `$59`: `skyfall_top`