# 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`