# Event Commands
Defined in [macros/scripts/events.asm](https://github.com/pret/pokecrystal/blob/master/macros/scripts/events.asm) and [engine/overworld/scripting.asm:ScriptCommandTable](https://github.com/pret/pokecrystal/blob/master/engine/overworld/scripting.asm).
Until this document is filled out, the [G/S Scripting Compendium](https://hax.iimarckus.org/files/scriptingcodes_eng.htm) has descriptions for most of these commands. It was written for G/S binary hacking and not Crystal assembly hacking, so it's not 100% accurate for pokecrystal.
## `$00`: scall script
## `$01`: farscall script
## `$02`: memcall script
## `$03`: sjump script
## `$04`: farsjump script
## `$05`: memjump script
## `$06`: ifequal byte, script
## `$07`: ifnotequal byte, script
## `$08`: iffalse script
## `$09`: iftrue script
## `$0A`: ifgreater byte, script
## `$0B`: ifless byte, script
## `$0C`: jumpstd std_script
## `$0D`: callstd std_script
## `$0E`: callasm asm
## `$0F`: special special_pointer
## `$10`: memcallasm asm
## `$11`: checkmapscene map
## `$12`: setmapscene map, scene_id
## `$13`: `checkscene`
## `$14`: setscene scene_id
## `$15`: setval value
[wScriptVar] = value
## `$16`: addval value
[wScriptVar] += value
## `$17`: random value
## `$18`: `checkver`
## `$19`: readmem address
[wScriptVar] = [address]
## `$1A`: writemem address
[address] = [wScriptVar]
## `$1B`: loadmem address, value
[address] = value
## `$1C`: readvar variable
[wScriptVar] = GetVarAction(variable)
## `$1D`: writevar variable
GetVarAction(variable) = [wScriptVar]
## `$1E`: loadvar variable, value
GetVarAction(variable) = value
## `$1F`: giveitem item_id[, quantity=1]
## `$20`: takeitem item_id[, quantity=1]
## `$21`: checkitem item_id
## `$22`: givemoney account, value
## `$23`: takemoney account, value
## `$24`: checkmoney account, value
## `$25`: givecoins value
## `$26`: takecoins value
## `$27`: checkcoins value
## `$28`: addcellnum contact_id
## `$29`: delcellnum contact_id
## `$2A`: checkcellnum contact_id
## `$2B`: checktime time
## `$2C`: checkpoke mon_id
## `$2D`: givepoke mon_id, level[, item=0[, trainer=0, ot_name, nickname]]
## `$2E`: giveegg mon_id, level
## `$2F`: givepokemail pointer
## `$30`: checkpokemail pointer
## `$31`: checkevent event_flag
## `$32`: clearevent event_flag
## `$33`: setevent event_flag
## `$34`: checkflag engine_flag
## `$35`: clearflag engine_flag
## `$36`: setflag engine_flag
## `$37`: `wildon`
## `$38`: `wildoff`
## `$39`: xycompare pointer
## `$3A`: warpmod warp_id, map
## `$3B`: blackoutmod map
## `$3C`: warp map, x, y
## `$3D`: getmoney string_buffer, account
GetStringBuffer(string_buffer) = PrintNum(GetMoneyAccount(account))
## `$3E`: getcoins string_buffer
GetStringBuffer(string_buffer) = PrintNum([wCoins])
## `$3F`: getnum string_buffer
GetStringBuffer(string_buffer) = PrintNum([wScriptVar])
## `$40`: getmonname string_buffer, mon_id
GetStringBuffer(string_buffer) = GetPokemonName(mon_id)
If mon_id
= `USE_SCRIPT_VAR`, then it uses `[wScriptVar]` instead.
## `$41`: getitemname string_buffer, item_id
GetStringBuffer(string_buffer) = GetItemName(item_id)
If item_id
= `USE_SCRIPT_VAR`, then it uses `[wScriptVar]` instead.
## `$42`: getcurlandmarkname string_buffer
GetStringBuffer(string_buffer) = GetLandmarkName(GetWorldMapLocation())
## `$43`: gettrainername string_buffer, trainer_group, trainer_id
GetStringBuffer(string_buffer) = GetTrainerName(trainer_group, trainer_id)
## `$44`: getstring string_buffer, text_pointer
GetStringBuffer(string_buffer) = CopyName1([wScriptBank], text_pointer)
## `$45`: `itemnotify`
## `$46`: `pocketisfull`
## `$47`: `opentext`
## `$48`: refreshscreen [dummy=0]
## `$49`: `closetext`
## `$4A`: writeunusedbytebuffer byte
[wUnusedScriptByteBuffer] = byte
## `$4B`: farwritetext text_pointer
## `$4C`: writetext text_pointer
## `$4D`: repeattext byte1, byte2
## `$4E`: `yesorno`
## `$4F`: loadmenu menu_header
## `$50`: `closewindow`
## `$51`: jumptextfaceplayer text_pointer
## `$52`: farjumptext text_pointer
## `$53`: jumptext text_pointer
## `$54`: `waitbutton`
## `$55`: `buttonsound`
## `$56`: pokepic mon_id
## `$57`: `closepokepic`
## `$58`: `_2dmenu`
## `$59`: `verticalmenu`
## `$5A`: `loadpikachudata`
## `$5B`: `randomwildmon`
## `$5C`: `loadtemptrainer`
`[wOtherTrainer] = [wTempTrainer]`
## `$5D`: loadwildmon mon_id, level
## `$5E`: loadtrainer trainer_group, trainer_id
## `$5F`: `startbattle`
## `$60`: `reloadmapafterbattle`
## `$61`: catchtutorial byte
## `$62`: trainertext text_id
## `$63`: trainerflagaction action
## `$64`: winlosstext win_text_pointer, loss_text_pointer
## `$65`: `scripttalkafter`
## `$66`: `endifjustbattled`
## `$67`: `checkjustbattled`
## `$68`: setlasttalked object_id
## `$69`: applymovement object_id, data_pointer
## `$6A`: applymovementlasttalked data_pointer
## `$6B`: `faceplayer`
## `$6C`: faceobject object1, object2
## `$6D`: variablesprite variable_sprite_id, sprite_id
## `$6E`: disappear object_id
## `$6F`: appear object_id
## `$70`: follow object2, object1
## `$71`: `stopfollow`
## `$72`: moveobject object_id, x, y
## `$73`: writeobjectxy object_id
## `$74`: loademote emote_id
## `$75`: showemote emote_id, object_id, length
## `$76`: turnobject object_id, facing
## `$77`: follownotexact object2, object1
## `$78`: earthquake param
## `$79`: changemapblocks blockdata_pointer
ChangeMap(blockdata_pointer)
## `$7A`: changeblock x, y, block
## `$7B`: `reloadmap`
## `$7C`: `reloadmappart`
## `$7D`: writecmdqueue queue_pointer
## `$7E`: delcmdqueue byte
## `$7F`: playmusic music_id
## `$80`: `encountermusic`
## `$81`: musicfadeout music_id, length
## `$82`: `playmapmusic`
## `$83`: `dontrestartmapmusic`
## `$84`: cry mon_id
## `$85`: playsound sfx_id
## `$86`: `waitsfx`
## `$87`: `warpsound`
## `$88`: `specialsound`
## `$89`: autoinput input_pointer
## `$8A`: newloadmap which_method
## `$8B`: pause length
## `$8C`: deactivatefacing length
## `$8D`: prioritysjump script
## `$8E`: `warpcheck`
## `$8F`: stopandsjump script
## `$90`: `return`
## `$91`: `end`
## `$92`: reloadandreturn which_method
## `$93`: `endall`
## `$94`: pokemart mart_type, mart_id
## `$95`: elevator floor_list
## `$96`: trade trade_id
## `$97`: askforphonenumber contact_id
## `$98`: phonecall call_id
## `$99`: `hangup`
## `$9A`: describedecoration byte
## `$9B`: fruittree tree_id
## `$9C`: specialphonecall call_id
## `$9D`: `checkphonecall`
## `$9E`: verbosegiveitem item_id[, quantity=1]
## `$9F`: verbosegiveitemvar item_id, variable
## `$A0`: swarm swarm_id, map
## `$A1`: `halloffame`
## `$A2`: `credits`
## `$A3`: warpfacing facing, map, x, y
## `$A4`: battletowertext bttext_id
## `$A5`: getlandmarkname string_buffer, landmark_id
GetStringBuffer(string_buffer) = GetLandmarkName(landmark_id)
## `$A6`: gettrainerclassname string_buffer, trainer_group
GetStringBuffer(string_buffer) = GetName(TRAINER_NAME, trainer_group)
## `$A7`: getname string_buffer, type, id
GetStringBuffer(string_buffer) = GetName(type, id)
## `$A8`: wait duration
## `$A9`: `checksave`