For those who don't know, this is the second part of my tutorial and this is the rest of the scripting part of that tutorial so we'll continue.
UPDATE: Hey guys... I'm starting somewhat of a team not only for maing a hack but more cool stuff. If you read this please visit this thread and read it. If you are one of the first to join.... as in from now till new year..... you will immediately be elevated to level 2 member so you can help with the projects.... What's a level 2 member and why do i have to be one to join a project?? you'll figure out nce you visit the thread.... here it it. PM me if you want to join and i'll send you an invite to the group.......
https://www.pokecommunity.com/showthread.php?t=238054
SCRIPTING PART 2:
PART 10 : HEADER EVENTS
OK people this PART was recommended to me by Orinjmate. So if any of you have any more recommendations, please tell me, and I'll post a tutorial if I know about the subject and if it makes sence to make a tutorial for that subject, and Orinjmate also recommended to add a couple important tools to the toolbox so I added a toolbox with those tools under this part of the tutorial. OK here we go:
OK here I will explain what you can do in the header tab in advance map, there are a couple things you can do here:
1- In the name section, you can see that there are two parts one on the left, here you can choose from a list of maps, and once you save and exit then re-enter advance map, the map you were editing will be in the folder of the map you chose from the dropdown list. Under that you can choose something I honestly have no idea about. Open it and think. Then there's the part on the left that displays the maps name, change this and hit "change name" and all maps in that folder will have the name you entered.
Here's an image from advance map:
2- Under Map Options, you can choose a music from the dropdown list and that music will play in the map. The dropdown list called cave, here you can choose wether this map is normal or dark, and wether flash is usable or not. Under weather you can change the weather of the map. Under type you can change the typw of the map as in choose from city or route or underwater, and so on. Always choose the right one here just as a precaution cause I honestly have no idea what difference it makes. And the fight type thingy, just keep that random.
3-Under Map Script you can edit the level scripts of the map, there's a Level script tutorial somewhere in this forum. Read It.
4-Under tilesets you can change the tilesets of this map, then hit change tileset.
5-Under Map Dimensions you can change the width and height of your map, and then hit change dimensions.
OH and you can hit ctrl+H to enter Advance Header veiw, but I've never used this so i have no idea how. The only thing I know how to do here is how to change the bank # and map #, you can see the boxes, just fill them in with the bank and map #s you want then hit save.
PART 11 : POC and Movement Editor Tutorial
Here's the link to toolbox 2:
https://www.4shared.com/file/bLqMAT6q/TOOLBOX_2.html
CLOSING WORD
OK guys, we're done. MY GOD that was exhausting. I have been writing this tutorial for days. GOD. I am tired. I don't know if other people do this, but I wrote it in NOTEPAD than pasted it here, cause it would've been weird to type it in directly. I hope this tutorial helped. If you have any questions please PM or VM me or post your question here. I won't be logging in a lot, so it might take a couple days to answer, but it'll still work. And if I wrote anything wrong tell me please, cause it's a long tutorial and there's no way it's all right. And if you have any major subjects you want me to add to the tutorial, tell me too, and if i know how I'll post it. Bye. And happy hacking.
UPDATE: Hey guys... I'm starting somewhat of a team not only for maing a hack but more cool stuff. If you read this please visit this thread and read it. If you are one of the first to join.... as in from now till new year..... you will immediately be elevated to level 2 member so you can help with the projects.... What's a level 2 member and why do i have to be one to join a project?? you'll figure out nce you visit the thread.... here it it. PM me if you want to join and i'll send you an invite to the group.......
https://www.pokecommunity.com/showthread.php?t=238054
SCRIPTING PART 2:
Spoiler:
5- POKEMON GIVING
Ok new commands:
givepokemon
giveegg
countpokemon
givepokemon gives a certain pokemon with a certain item at a certain level to the player.
Form: givepokemon 0x<pokemon number> 0x<level> 0x<item held number> 0x0 0x0 0x0
All three of the first three parameters have to be converted to hex. The last three are buffers and should stay zero. Now the message of obtained pokemon doesn't show on it's own so you'll have to put it using the msgbox command. And the obtained a pokemon song doesn't play on it's own, you'll have to play it on your own. The givepokemon part of the script should look like this:
givepokemon 0x<pokemon number> 0x<level> 0x<item held number> 0x0 0x0 0x0
fanfare 0x13E 0x0
msgbox @1 0x4
waitfanfare
closeonkeypress
And somewhere at the end:
#org @1
= [player] obtained a pokemon!
OK???
giveegg is a lot more easier, all you have to do is use the number of the pokemon you want in the egg.
Form: giveegg 0x<pokemon number>
Again put the pokemon number in hex. I don't think neither the message nor song play on there own.
countpokemon counts the player's pokemon and assigns the number to the variable 800D again and you can use the compare and if commands. In the compare command substitute the 0x<value> with a number from 1 to 6 and it'll check for that much pokemon.
Form: countpokemon
Here's a list of pokemon numbers:
6- MOVEMENT
OK new commands:
applymovement
waitmovement
special
applymovement makes a certain OW including the player's OW and the camera move in a specified way.
Form: applymovement 0x<people number of sprite to move> @pointer
Read the Advance Map Events to know what the people number of a sprite is, and it can be FF to move the player and 7F to move the camera. The pointer is the same as other pointers, but this pointer is best to be before the message pointers of a script but after the pointers of other scripts.
In the pointer you have to list the movements you want the sprite to take. The movements are like so: #raw 0x<movement type>
So the pointer to the movement looks like:
#org @pointer
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0xFE
And so on but always remember to make the last one in the list #raw 0xFE which signifies the end and is necsessary for the movement to work.
Oh and moving the camera is a little more complicated. Before the applymovement command, use the command special 0x114 and end it with special 0x113 and always return the camera to the center of the screen in the movement command. Why?? cause special 0x114 unlocks the camera and special 0x113 relocks it so if you don't return the camera to it's place, it'll be stuck where it is.
So the applymovement should look like:
special 0x114
applymovement 0x7F @pointer
special 0x113
OK????
waitmovement is the perfect pause. It makes the game wait till the movements are done before it continues with the script.
Form: waitmovement 0x0
Yes always 0x0.
Please always use this after applymovement except when you want to sprites to move at the same time, then place the two applymovement commands after each other, but you'll have to place the waitmovement command after them, so it'll look like:
applymovement 0x<people number> @pointer
applymovement 0x<people number> @pointer2
waitmovement 0x0
But why do you have to place waitmovement after each applymovement command. Cause lets say there's a msgbox command after the applymovement. Well if waitmovement isn't there then the message would appear while the OW is still moving, and if the applymovement is before an end command with no msgbox or pause command between, the script would end before the entire movement is done. And so on. A lot of glitches can happen, so just use it. GOD WHY ARGUE. STOP IT. LETS MOVE ON!!!
special will be explained later.
OK so a script with a message and movement would look like:
#dynamic 0x<FSF OFFSET>
#org @start
lock
faceplayer
msgbox @1 0x6
applymovement 0x<people number> @2
waitmovement 0x0
release
end
#org @2
#raw 0x11
#raw 0x11
#raw 0x11
#raw 0xFE
#org @1
= Hey look, I can move!!!
Here i think the person moves three steps upward after saying "Hey look, I can move!!!".
Here's a list of movements(credits for diegoisawesome for the lists):
Ruby/Sapphire/Emerald
Fire Red/Leaf Green
7- FLAGS
OK here I'll explain flags and the four commands that can be used with them.
Flags can be activated and deactivated. Some flags have special effects that are activated once the flag is set(or activated, same meaning). The commands you can use with flags are:
setflag
checkflag
clearflag
if
Ok the setflag sets or activates a certain flag.
Form: setflag 0x<flag number>
The flag number can be any hex number from 1 to FFFF. But almost all flags under a thousand are already used in the game and thus their use again could cause problems. So always use a flag with four digits and letters where the first isn't zero.For example 1000;1001;1A34;23B6;5F46 and so on can be used, but 1;34;456;23D;DF5;EA5:2;0987;0AF4 and so on can't be used. You are not limited to the previous numbers. There are thousands of flags you can use.
clearflag clears a flag, or deactivates it. If you use this command on a flag that has been set by setflag, it is no longer set.
Form: clearflag 0x<flag number>
checkflag checks if a certain flag is set.
Form: checkflag 0x<flag number>
After this command use the if command. Use "if 0x1 goto @pointer" if you want the script to go to that pointer if the flag is set, and use"if 0x0 goto @pointer" if you want the script to go to that pointer if the flag isn't set.
And if the condition mentioned in the if command(0x1 or 0x0) isn't fulfilled, the script won't go to the mentioned pointer, it'll just continue the commands after the if command.
But why are flags used. Well lets say you want to make a script where the person says something then gives you a pokemon, and the next time you talk to him he says that he already gave you one, or whatever other event you don't want to take place twice. Well here you can use flags. This is a script with three of the commands mentioned above. You should know by then how to use the fourth:
#dynamic 0x<FSF OFFSET>
#org @start
lock
faceplayer
checkflag 0x1000
if 0x1 goto @alreadydone
msgbox @first 0x6
release
end
#org @alreadydone
msgbox @second 0x6
release
end
#org @first
= Hey next time I'll say\nsomething else.
#org @second
= Hey I said something\nelse.
Ok in the previous script the person says "Hey next time I'll say something else." the first time. Then he says "Hey I said something else." the second time you talk to him. And he also says that any other time you talk to him later, cause once you set a flag, it is perminantly set. But if you clear this flag in any other place, this script will start all over again if you talk to this person.
Here are the flags that activate something once set. Set these flags to activate the corrosponding effects:
RUBY/SAPPHIRE
POKEMON MENU 0x800
POKEDEX 0x801
POKENAV 0x802
RUNNING SHOES 0x860
BADGE1 0x807
BADGE2 0x808
BADGE3 0x809
BADGE4 0x80A
BADGE5 0x80B
BADGE6 0x80C
BADGE7 0x80D
BADGE8 0x80E
EMERALD
POKEMON MENU 0x860
POKEDEX 0x861
POKENAV 0x862
RUNNING SHOES 0x8C0
BADGE1 0x867
BADGE2 0x868
BADGE3 0x869
BADGE4 0x86A
BADGE5 0x86B
BADGE6 0x86C
BADGE7 0x86D
BADGE8 0x86E
FIRERED/LEAFGREEN
POKEMON MENU 0x828
POKEDEX 0x829
RUNNING SHOES 0x82F
BADGE1 0x820
BADGE2 0x821
BADGE3 0x822
BADGE4 0x823
BADGE5 0x824
BADGE6 0x825
BADGE7 0x826
BADGE8 0x827
OK we're done with flags, I hope you understood.
8- VARIABLES
Ok now I'll explain variables. Most of you guys have been waiting for this. Well it's here. A variable can be equal to any number. So if you assign a certain value to a variable, then that variable is equal to that value. So lets say you assigned the value 103 to the variable 456D, then the variable 456D=103. Oh and a variable can be any four digit and letter hex number. and you can assign any value to any variable. Just don't play around with any important variables like 800D or 8000 and 8001 and 8002 and I think 8003 too.
Ok the commands you can use here are:
setvar
addvar
subvar
resetvars
compare
if
copyvar
comparevars
copyvarifnotzero
setvar sets or assigns a certain value to a certain variable.
Form: setvar 0x<variable> 0x<value to assign>
addvar adds a certain value to the value assigned to a certain variable.
Form: addvar 0x<variable> 0x<value to add>
subvar subtracts a certain value from the value assigned to a certain variable.
Form: subvar 0x<variable> 0x<value to subtract>
resetvars resets the variables 8000 8001 8002.
Form: resetvars
compare checks if a certain variable is equal to, less than, greater than, greater than or equal, and less than or equal to a certain value.
Form: compare 0x<variable> 0x<value>
Now after this use "if 0x<condition> goto @pointer". The 0x<condition> can be:
Lower Than (0x0)
Equals (0x1)
Greater Than (0x2)
Lower than or Equal to (0x3)
Greater than or Equal to (0x4)
Not exactly equal to (0x5)
You should understand how to use this by now.
OK copyvar copies the value stored in one variable to another,
Form: copyvar 0x<destination variable> 0x<source variable>
copyvarifnotzero does the same and has the same parameters but only if the source is not equal to zero.
comparevars checks if the value assigned to one variable is equal to the value assigned to another.
Form: comparevars 0x<first variable> 0x<second variable>
After this use the if command and let the condition be 0x1 if you want the script to go to the pointer if the variables are equal, and 0x0 if you want it to go to the pointer if the variables aren't equal.
9- WARPS
OK new commands:
warp
warphole
warpmuted
warpteleport
warpwalk
warp instantly warps the player to a certain map to certain x and y coordinates.
Form:warp 0x<bank number> 0x<map number> 0x<exit number> 0x<X coordinate> 0x<Y coordinate>
bank number and mao number and X Y coordinates are clear I think and don't need explaining. But what's the exit number. It's, I think, the number of the warp leading to this map. Just experiment with this and you should find out what it is.
warpmuted is the same as the previous one but without a sound, so is warpteleport but it has a teleport effect like in sabrina's gym, and so is warpwalk but with a walk effect. Never tried the last one but try it and it should work out.
warphole warps you to another map and takes you there with a hole effect like falling, and you arrive at the same X Y coordinates you were at in the previous map.
Form: warphole 0x<bank number> 0x<map number>
10- MONEY AND COINS
OK some money and coins commands:
givemoney
paymoney
showmoney
hidemoney
updatemoney
checkmoney
givemoney gives a certain amount of money.
Form: givemoney 0x<amount of money> 0x0
paymoney makes the player pay a certain amount of money.
Form: paymoney 0<amount of money to pay> 0x0
showmoney shows a box with the amount of money the player has at certain coordiantes on the screen.
Form: showmoney 0x<X coordinate> 0x<Y coordinate> 0x0
hidemoney hides the shown money box at certain coordinates on the screen
Form: hidemoney 0x<X coordinate> 0x<Y coordinate>
updatemoney updates the amount of money the player has in the money box if money has been added or payed at certain coordinates on the screen.
Form: updatemoney 0x<X coordinate> 0x<Y coordinate> 0x0
checkmoney checks if the player has a certain amount of money.
Form: checkmoney 0x<amount to check for> 0x0
After this use the if command and the condition here can be the less than and greater than and that other stuff mentioned earlier.
Coin commands:
givecoins
removecoins
checkcoins
showcoins
hidecoins
updatecoins
givecoins gives the player a certain amount of coins.
Form: givecoins 0x<amount to give>
removecoins removes a certain amount of coins form the player's coincase.
Form: removecoins 0x<amount to remove>
checkcoins assigns the amount of money the player has to a certain variable.
Form: checkcoins 0x<variable to store amount of coins in>
After this use the compare and if commands to manipulate the effect of the command.
You should know how.
showcoins and hidecoins and updatecoins do the same as they do in money commands.
Form: showcoins 0x<X coordinates> 0x<Y coordinates>
Form: hidecoins 0x<X coordinates> 0x<Y coordinates>
Form: updatecoins 0x<X coordinates> 0x<Y coordinates>
OK we're done. But remember all above amounts have to be in hex so convert, and happy money hacking.
11- POKEPIC
New commands:
showpokepic
hidepokepic
showpokepic shows the picture of a certain pokemon at certain coordinates on the screen.
Form: showpokepic 0x<pokemon species> 0x<X coordinates> 0x<Y coordinates>
All in hex.
hidepokepic hides the picture shown.
Form: hidepokepic
Pokepics section done.
12- SPECIALS
Easiest ever. Only one command.
special
This command activates a special event.
Form: special 0x<special number>
Replace the special number with one of the following numbers to activate its effect:
R/S Specials
Ruby & Sapphire Specials List...
FR/LG Specials
Fire Red & Leaf Green Specials List...
Sorry, don't have the emerald specials, but i think some are the same as ruby and sapphire specials.
13- SONGS
New commands:
fanfare
waitfanfare
fadedefault
fanfare plays a certain song.
Form: fanfare 0x<song number>
A list of song numbers is mentioned above in the messages section.
waitfanfare waits for the song to play out before the script continues.
Form: waitfanfare
fadedefault fades back to the original map's song.
Form: fadedefault
There are a lot more song commands but I feal they are useless, but check the command help option in XSE to get more info, or just read all the commands in that option once you've finished reading the tutorial.
14- SPRITES
New commands:
hidesprite
showsprite
spriteinvisible
spritevisible
hidesprite hides a certain sprite on the map.
Form: hidesprite 0x<people number of sprite>
Ok for this to make the sprite perminantly disapear, after the command set any flag and place that flag's number in the Person ID box of that sprite in advance map.
showsprite shows a sprite hidden earlier with the previous command.
Form: showsprite 0x<people number of the sprite>
For this to work you have to clear the flag you set to hide the sprite.
spriteinvisible and spriteinvisible do the same as the two previous commands but hide a sprite in any map, not just the one you are in right now.
Form: spriteinvisible 0x<people number of sprite> 0x<bank number> 0x<map number>
Form: spritevisible 0x<people number of sprite> 0x<bank number> 0x<map number>
OH and all people numbers here have to be converted to hex. You should now when to convert to hex by now but I will still keep reminding you.
15- TRAINER BATTLES
Ok new commands:
trainerbattle
cleartrainerflag
trainerbattle starts a battle with a trainer predefined in a-trainer. To make a trainer, add a person event in advance map and check the trainer box and define the veiw radius. Goto a-trainer and you should see a list of trainers. You can edit any one you want but to add a trainer, edit one without a name, and everytime you check the trainer box for a person in advance map, a new trainer appears in a-trainer with no name. Edit the trainer you want in the battle, and memorize its trainer number mentioned next to its name in a-trainer. Oh and always save before changing the page in a-trainer so the changes are perminant.
Form: trainerbattle 0x<battle type> 0x<trainer number from a-trainer> 0x0 @pointer1 @pointer2
Battle type can be 0 for normal trainer battle, 1 for official battle, 4 for double battle.
0 uses the above form of the command, where the first pointer is a pointer to the text before the battle when the trainer's eye catches the player, and the second pointer is the pointer to the text after the battle is done, you now before the player is told how much money he is given.
1 is the official battle type like gym battles or battles with important people. It's form is the same but has an extra pointer at the end that is a pointer to the after battle script, as in the events after the battle. Here's how it looks in the script:
#dynamic 0x<FSF OFFSET>
#org @start
trainerbattle 0x1 0x<trainer number> 0x0 @1 @2 @3
end
#org @3
applymovement 0x3 @4
end
#org @4
#raw 0x11
#raw 0x11
#raw 0xFE
@org @1
= Hey there lets battle.
#org @2
= You won.
And the sweat thing about trainer battles is that the game know if a battle has taken place or not, so if a battle is already done, it'll skip the trainer battle command, so after it place a message box and it will appear if you talk to the person after the battle. OH and the command has a lock, faceplayer, and release effect by itself.
4 is a double battle. For this to work you have to check the double battle box in a-trainer, and there is also three pointers here, the first two are the same as the ordinary trainer battle command, but the last one is the message that appears if the player doesn't have enough pokemon for the battle, and the game does the check itself, so all three pointers are message pointers.
Ok like i said, the trainerbattle command knows if a battle has been done or not, but if it has been done, you can undo it, as in make it possible to take place again, by using the command cleartrainerflag.
Form: cleartrainerflag 0x<trainer number from a-trainer>
OK we're done with trainer battles.
16- WILD BATTLES
One new command:
wildbattle
It starts a wild battle.
Form: wildbattle 0x<species> 0x<level> 0x<held item number>
All in hex.
17- WEATHER
Changes the weather of the present map. Three commands:
setweather
resetweathjer
doweather
setweather sets a certain weather to be activated by doweather.
Form: setweather 0x<weather type>
resetweather resets the maps original weather to be activated by doweather.
Form: resetweather
doweather does the weather set by one of the two previous command. It has to be added after them for the weather command to work.
Form: doweather
Sorry I don't have a list of weathers, but it should be easy to find. All have to be in hex.
18- MARTS
One new command:
pokemart
This command starts a market event, you know, the buy, sell, and cancel choice thingy.
Form: pokemart @pointer
The pointer is to a list of items sold in the mart, and to edit the prices use the item editor.
The pointer can be anywhere after the script similar to movement and message and any other type of pointer. Here's how it looks:
#org @pointer
#raw word 0x<item number>
#raw word 0x<item number>
#raw word 0x<item number>
#raw word 0x<item number>
#raw word 0x0
No you are not limited to four, and yes the #raw word 0x0 at the end is necessary. OH and convert to hex in the list.
19- BUFFERS
Lots of buffer commands:
bufferpokemon
bufferfirstpokemon
bufferitem
bufferattack
All of the previous commands have two parameters, the first of which is the buffer number and the second one is either the pokemon number or item number or attack number. Bufferfirstpokemon only needs the buffer number cause it already knows that it's buffering the first pokemon in the player's party. The buffer number can be 0x1 or 0x2 or 0x3. But what does a buffer do. Well lets say you buffer a pokemon to buffer 1, then if you use [buffer1] in a message it'll appear as that pokemon's name. 0x1 stands for [buffer1] and 0x2 stands for [buffer2]
and 0x3 stands for [buffer3]. I don't know if there are any more buffers but try them.
So the commands look like:
bufferpokemon 0x<buffer number> 0x<pokemon number>
bufferfirstpokemon 0x<buffer number>
bufferitem 0x<buffer number> 0x<item number>
bufferattack 0x<buffer number> 0x<attack number>
OH and all the above have to be in hex.
OK I haven't given you a list of attacks so here it is:
20- SETTING TILES
Ok one new command:
setmaptile 0x<X coordinate> 0x<Y coordinate> 0x<tile number> 0x<if passable>
This commands sets the tile at the mentioned coordinates to be the tile mentioned in the third parameter and the last one can be 0 for the tile to be passable and 1 for it to be blocked.
But what's the tile number. Well in advance map, hover the mouse above the tile and in the bottom left corner something like Block: XX Offset: YY should appear. The XX is the tile number. Remember the coordinates have to be in hex.
21- DOORS
New commands:
setdooropened
setdoorclosed
doorchange
OK the first two only need two parameters which are the X Y coordinates in order.
doorchange has to be used after both these commands for there effects to take place.
Form: setdooropened 0x<X coordinate> 0x<Y coordinate>
Form: setdoorclosed 0x<X coordinate> 0x<Y coordinate>
Form: doorchange
All in hex.
22- RANDOMS
One new command:
random 0x<value>
The value has to be in hex and the random command generates a value between zero and the mentioned value and you could use the compare and if commands after it to give random pokemon and do other cool stuff. OH and the generated value is assigned to the variable 800D, that's how you can use the compare and if commands.
Spoiler:
Ok new commands:
givepokemon
giveegg
countpokemon
givepokemon gives a certain pokemon with a certain item at a certain level to the player.
Form: givepokemon 0x<pokemon number> 0x<level> 0x<item held number> 0x0 0x0 0x0
All three of the first three parameters have to be converted to hex. The last three are buffers and should stay zero. Now the message of obtained pokemon doesn't show on it's own so you'll have to put it using the msgbox command. And the obtained a pokemon song doesn't play on it's own, you'll have to play it on your own. The givepokemon part of the script should look like this:
Spoiler:
givepokemon 0x<pokemon number> 0x<level> 0x<item held number> 0x0 0x0 0x0
fanfare 0x13E 0x0
msgbox @1 0x4
waitfanfare
closeonkeypress
And somewhere at the end:
Spoiler:
#org @1
= [player] obtained a pokemon!
OK???
giveegg is a lot more easier, all you have to do is use the number of the pokemon you want in the egg.
Form: giveegg 0x<pokemon number>
Again put the pokemon number in hex. I don't think neither the message nor song play on there own.
countpokemon counts the player's pokemon and assigns the number to the variable 800D again and you can use the compare and if commands. In the compare command substitute the 0x<value> with a number from 1 to 6 and it'll check for that much pokemon.
Form: countpokemon
Here's a list of pokemon numbers:
Spoiler:
BULBASAUR 1
IVYSAUR 2
VENUSAUR 3
CHARMANDER 4
CHARMELEON 5
CHARIZARD 6
SQUIRTLE 7
WARTORTLE 8
BLASTOISE 9
CATERPIE 10
METAPOD 11
BUTTERFREE 12
WEEDLE 13
KAKUNA 14
BEEDRILL 15
PIDGEY 16
PIDGEOTTO 17
PIDGEOT 18
RATTATA 19
RATICATE 20
SPEAROW 21
FEAROW 22
EKANS 23
ARBOK 24
PIKACHU 25
RAICHU 26
SANDSHREW 27
SANDSLASH 28
NIDORAN|f| 29
NIDORINA 30
NIDOQUEEN 31
NIDORAN|m| 32
NIDORINO 33
NIDOKING 34
CLEFAIRY 35
CLEFABLE 36
VULPIX 37
NINETALES 38
JIGGLYPUFF 39
WIGGLYTUFF 40
ZUBAT 41
GOLBAT 42
ODDISH 43
GLOOM 44
VILEPLUME 45
PARAS 46
PARASECT 47
VENONAT 48
VENOMOTH 49
DIGLETT 50
DUGTRIO 51
MEOWTH 52
PERSIAN 53
PSYDUCK 54
GOLDUCK 55
MANKEY 56
PRIMEAPE 57
GROWLITHE 58
ARCANINE 59
POLIWAG 60
POLIWHIRL 61
POLIWRATH 62
ABRA 63
KADABRA 64
ALAKAZAM 65
MACHOP 66
MACHOKE 67
MACHAMP 68
BELLSPROUT 69
WEEPINBELL 70
VICTREEBEL 71
TENTACOOL 72
TENTACRUEL 73
GEODUDE 74
GRAVELER 75
GOLEM 76
PONYTA 77
RAPIDASH 78
SLOWPOKE 79
SLOWBRO 80
MAGNEMITE 81
MAGNETON 82
FARFETCH'D 83
DODUO 84
DODRIO 85
SEEL 86
DEWGONG 87
GRIMER 88
MUK 89
SHELLDER 90
CLOYSTER 91
GASTLY 92
HAUNTER 93
GENGAR 94
ONIX 95
DROWZEE 96
HYPNO 97
KRABBY 98
KINGLER 99
VOLTORB 100
ELECTRODE 101
EXEGGCUTE 102
EXEGGUTOR 103
CUBONE 104
MAROWAK 105
HITMONLEE 106
HITMONCHAN 107
LICKITUNG 108
KOFFING 109
WEEZING 110
RHYHORN 111
RHYDON 112
CHANSEY 113
TANGELA 114
KANGASKHAN 115
HORSEA 116
SEADRA 117
GOLDEEN 118
SEAKING 119
STARYU 120
STARMIE 121
MR. MIME 122
SCYTHER 123
JYNX 124
ELECTABUZZ 125
MAGMAR 126
PINSIR 127
TAUROS 128
MAGIKARP 129
GYARADOS 130
LAPRAS 131
DITTO 132
EEVEE 133
VAPOREON 134
JOLTEON 135
FLAREON 136
PORYGON 137
OMANYTE 138
OMASTAR 139
KABUTO 140
KABUTOPS 141
AERODACTYL 142
SNORLAX 143
ARTICUNO 144
ZAPDOS 145
MOLTRES 146
DRATINI 147
DRAGONAIR 148
DRAGONITE 149
MEWTWO 150
MEW 151
CHIKORITA 152
BAYLEEF 153
MEGANIUM 154
CYNDAQUIL 155
QUILAVA 156
TYPHLOSION 157
TOTODILE 158
CROCONAW 159
FERALIGATR 160
SENTRET 161
FURRET 162
HOOTHOOT 163
NOCTOWL 164
LEDYBA 165
LEDIAN 166
SPINARAK 167
ARIADOS 168
CROBAT 169
CHINCHOU 170
LANTURN 171
PICHU 172
CLEFFA 173
IGGLYBUFF 174
TOGEPI 175
TOGETIC 176
NATU 177
XATU 178
MAREEP 179
FLAAFFY 180
AMPHAROS 181
BELLOSSOM 182
MARILL 183
AZUMARILL 184
SUDOWOODO 185
POLITOED 186
HOPPIP 187
SKIPLOOM 188
JUMPLUFF 189
AIPOM 190
SUNKERN 191
SUNFLORA 192
YANMA 193
WOOPER 194
QUAGSIRE 195
ESPEON 196
UMBREON 197
MURKROW 198
SLOWKING 199
MISDREAVUS 200
UNOWN 201
WOBBUFFET 202
GIRAFARIG 203
PINECO 204
FORRETRESS 205
DUNSPARCE 206
GLIGAR 207
STEELIX 208
SNUBBULL 209
GRANBULL 210
QWILFISH 211
SCIZOR 212
SHUCKLE 213
HERACROSS 214
SNEASEL 215
TEDDIURSA 216
URSARING 217
SLUGMA 218
MAGCARGO 219
SWINUB 220
PILOSWINE 221
CORSOLA 222
REMORAID 223
OCTILLERY 224
DELIBIRD 225
MANTINE 226
SKARMORY 227
HOUNDOUR 228
HOUNDOOM 229
KINGDRA 230
PHANPY 231
DONPHAN 232
PORYGON2 233
STANTLER 234
SMEARGLE 235
TYROGUE 236
HITMONTOP 237
SMOOCHUM 238
ELEKID 239
MAGBY 240
MILTANK 241
BLISSEY 242
RAIKOU 243
ENTEI 244
SUICUNE 245
LARVITAR 246
PUPITAR 247
TYRANITAR 248
LUGIA 249
HO-OH 250
CELEBI 251
TREECKO 277
GROVYLE 278
SCEPTILE 279
TORCHIC 280
COMBUSKEN 281
BLAZIKEN 282
MUDKIP 283
MARSHTOMP 284
SWAMPERT 285
POOCHYENA 286
MIGHTYENA 287
ZIGZAGOON 288
LINOONE 289
WURMPLE 290
SILCOON 291
BEAUTIFLY 292
CASCOON 293
DUSTOX 294
LOTAD 295
LOMBRE 296
LUDICOLO 297
SEEDOT 298
NUZLEAF 299
SHIFTRY 300
NINCADA 301
NINJASK 302
SHEDINJA 303
TAILLOW 304
SWELLOW 305
SHROOMISH 306
BRELOOM 307
SPINDA 308
WINGULL 309
PELIPPER 310
SURSKIT 311
MASQUERAIN 312
WAILMER 313
WAILORD 314
SKITTY 315
DELCATTY 316
KECLEON 317
BALTOY 318
CLAYDOL 319
NOSEPASS 320
TORKOAL 321
SABLEYE 322
BARBOACH 323
WHISCASH 324
LUVDISC 325
CORPHISH 326
CRAWDAUNT 327
FEEBAS 328
MILOTIC 329
CARVANHA 330
SHARPEDO 331
TRAPINCH 332
VIBRAVA 333
FLYGON 334
MAKUHITA 335
HARIYAMA 336
ELECTRIKE 337
MANECTRIC 338
NUMEL 339
CAMERUPT 340
SPHEAL 341
SEALEO 342
WALREIN 343
CACNEA 344
CACTURNE 345
SNORUNT 346
GLALIE 347
LUNATONE 348
SOLROCK 349
AZURILL 350
SPOINK 351
GRUMPIG 352
PLUSLE 353
MINUN 354
MAWILE 355
MEDITITE 356
MEDICHAM 357
SWABLU 358
ALTARIA 359
WYNAUT 360
DUSKULL 361
DUSCLOPS 362
ROSELIA 363
SLAKOTH 364
VIGOROTH 365
SLAKING 366
GULPIN 367
SWALOT 368
TROPIUS 369
WHISMUR 370
LOUDRED 371
EXPLOUD 372
CLAMPERL 373
HUNTAIL 374
GOREBYSS 375
ABSOL 376
SHUPPET 377
BANETTE 378
SEVIPER 379
ZANGOOSE 380
RELICANTH 381
ARON 382
LAIRON 383
AGGRON 384
CASTFORM 385
VOLBEAT 386
ILLUMISE 387
LILEEP 388
CRADILY 389
ANORITH 390
ARMALDO 391
RALTS 392
KIRLIA 393
GARDEVOIR 394
BAGON 395
SHELGON 396
SALAMENCE 397
BELDUM 398
METANG 399
METAGROSS 400
REGIROCK 401
REGICE 402
REGISTEEL 403
KYOGRE 404
GROUDON 405
RAYQUAZA 406
LATIAS 407
LATIOS 408
JIRACHI 409
DEOXYS 410
CHIMECHO 411
IVYSAUR 2
VENUSAUR 3
CHARMANDER 4
CHARMELEON 5
CHARIZARD 6
SQUIRTLE 7
WARTORTLE 8
BLASTOISE 9
CATERPIE 10
METAPOD 11
BUTTERFREE 12
WEEDLE 13
KAKUNA 14
BEEDRILL 15
PIDGEY 16
PIDGEOTTO 17
PIDGEOT 18
RATTATA 19
RATICATE 20
SPEAROW 21
FEAROW 22
EKANS 23
ARBOK 24
PIKACHU 25
RAICHU 26
SANDSHREW 27
SANDSLASH 28
NIDORAN|f| 29
NIDORINA 30
NIDOQUEEN 31
NIDORAN|m| 32
NIDORINO 33
NIDOKING 34
CLEFAIRY 35
CLEFABLE 36
VULPIX 37
NINETALES 38
JIGGLYPUFF 39
WIGGLYTUFF 40
ZUBAT 41
GOLBAT 42
ODDISH 43
GLOOM 44
VILEPLUME 45
PARAS 46
PARASECT 47
VENONAT 48
VENOMOTH 49
DIGLETT 50
DUGTRIO 51
MEOWTH 52
PERSIAN 53
PSYDUCK 54
GOLDUCK 55
MANKEY 56
PRIMEAPE 57
GROWLITHE 58
ARCANINE 59
POLIWAG 60
POLIWHIRL 61
POLIWRATH 62
ABRA 63
KADABRA 64
ALAKAZAM 65
MACHOP 66
MACHOKE 67
MACHAMP 68
BELLSPROUT 69
WEEPINBELL 70
VICTREEBEL 71
TENTACOOL 72
TENTACRUEL 73
GEODUDE 74
GRAVELER 75
GOLEM 76
PONYTA 77
RAPIDASH 78
SLOWPOKE 79
SLOWBRO 80
MAGNEMITE 81
MAGNETON 82
FARFETCH'D 83
DODUO 84
DODRIO 85
SEEL 86
DEWGONG 87
GRIMER 88
MUK 89
SHELLDER 90
CLOYSTER 91
GASTLY 92
HAUNTER 93
GENGAR 94
ONIX 95
DROWZEE 96
HYPNO 97
KRABBY 98
KINGLER 99
VOLTORB 100
ELECTRODE 101
EXEGGCUTE 102
EXEGGUTOR 103
CUBONE 104
MAROWAK 105
HITMONLEE 106
HITMONCHAN 107
LICKITUNG 108
KOFFING 109
WEEZING 110
RHYHORN 111
RHYDON 112
CHANSEY 113
TANGELA 114
KANGASKHAN 115
HORSEA 116
SEADRA 117
GOLDEEN 118
SEAKING 119
STARYU 120
STARMIE 121
MR. MIME 122
SCYTHER 123
JYNX 124
ELECTABUZZ 125
MAGMAR 126
PINSIR 127
TAUROS 128
MAGIKARP 129
GYARADOS 130
LAPRAS 131
DITTO 132
EEVEE 133
VAPOREON 134
JOLTEON 135
FLAREON 136
PORYGON 137
OMANYTE 138
OMASTAR 139
KABUTO 140
KABUTOPS 141
AERODACTYL 142
SNORLAX 143
ARTICUNO 144
ZAPDOS 145
MOLTRES 146
DRATINI 147
DRAGONAIR 148
DRAGONITE 149
MEWTWO 150
MEW 151
CHIKORITA 152
BAYLEEF 153
MEGANIUM 154
CYNDAQUIL 155
QUILAVA 156
TYPHLOSION 157
TOTODILE 158
CROCONAW 159
FERALIGATR 160
SENTRET 161
FURRET 162
HOOTHOOT 163
NOCTOWL 164
LEDYBA 165
LEDIAN 166
SPINARAK 167
ARIADOS 168
CROBAT 169
CHINCHOU 170
LANTURN 171
PICHU 172
CLEFFA 173
IGGLYBUFF 174
TOGEPI 175
TOGETIC 176
NATU 177
XATU 178
MAREEP 179
FLAAFFY 180
AMPHAROS 181
BELLOSSOM 182
MARILL 183
AZUMARILL 184
SUDOWOODO 185
POLITOED 186
HOPPIP 187
SKIPLOOM 188
JUMPLUFF 189
AIPOM 190
SUNKERN 191
SUNFLORA 192
YANMA 193
WOOPER 194
QUAGSIRE 195
ESPEON 196
UMBREON 197
MURKROW 198
SLOWKING 199
MISDREAVUS 200
UNOWN 201
WOBBUFFET 202
GIRAFARIG 203
PINECO 204
FORRETRESS 205
DUNSPARCE 206
GLIGAR 207
STEELIX 208
SNUBBULL 209
GRANBULL 210
QWILFISH 211
SCIZOR 212
SHUCKLE 213
HERACROSS 214
SNEASEL 215
TEDDIURSA 216
URSARING 217
SLUGMA 218
MAGCARGO 219
SWINUB 220
PILOSWINE 221
CORSOLA 222
REMORAID 223
OCTILLERY 224
DELIBIRD 225
MANTINE 226
SKARMORY 227
HOUNDOUR 228
HOUNDOOM 229
KINGDRA 230
PHANPY 231
DONPHAN 232
PORYGON2 233
STANTLER 234
SMEARGLE 235
TYROGUE 236
HITMONTOP 237
SMOOCHUM 238
ELEKID 239
MAGBY 240
MILTANK 241
BLISSEY 242
RAIKOU 243
ENTEI 244
SUICUNE 245
LARVITAR 246
PUPITAR 247
TYRANITAR 248
LUGIA 249
HO-OH 250
CELEBI 251
TREECKO 277
GROVYLE 278
SCEPTILE 279
TORCHIC 280
COMBUSKEN 281
BLAZIKEN 282
MUDKIP 283
MARSHTOMP 284
SWAMPERT 285
POOCHYENA 286
MIGHTYENA 287
ZIGZAGOON 288
LINOONE 289
WURMPLE 290
SILCOON 291
BEAUTIFLY 292
CASCOON 293
DUSTOX 294
LOTAD 295
LOMBRE 296
LUDICOLO 297
SEEDOT 298
NUZLEAF 299
SHIFTRY 300
NINCADA 301
NINJASK 302
SHEDINJA 303
TAILLOW 304
SWELLOW 305
SHROOMISH 306
BRELOOM 307
SPINDA 308
WINGULL 309
PELIPPER 310
SURSKIT 311
MASQUERAIN 312
WAILMER 313
WAILORD 314
SKITTY 315
DELCATTY 316
KECLEON 317
BALTOY 318
CLAYDOL 319
NOSEPASS 320
TORKOAL 321
SABLEYE 322
BARBOACH 323
WHISCASH 324
LUVDISC 325
CORPHISH 326
CRAWDAUNT 327
FEEBAS 328
MILOTIC 329
CARVANHA 330
SHARPEDO 331
TRAPINCH 332
VIBRAVA 333
FLYGON 334
MAKUHITA 335
HARIYAMA 336
ELECTRIKE 337
MANECTRIC 338
NUMEL 339
CAMERUPT 340
SPHEAL 341
SEALEO 342
WALREIN 343
CACNEA 344
CACTURNE 345
SNORUNT 346
GLALIE 347
LUNATONE 348
SOLROCK 349
AZURILL 350
SPOINK 351
GRUMPIG 352
PLUSLE 353
MINUN 354
MAWILE 355
MEDITITE 356
MEDICHAM 357
SWABLU 358
ALTARIA 359
WYNAUT 360
DUSKULL 361
DUSCLOPS 362
ROSELIA 363
SLAKOTH 364
VIGOROTH 365
SLAKING 366
GULPIN 367
SWALOT 368
TROPIUS 369
WHISMUR 370
LOUDRED 371
EXPLOUD 372
CLAMPERL 373
HUNTAIL 374
GOREBYSS 375
ABSOL 376
SHUPPET 377
BANETTE 378
SEVIPER 379
ZANGOOSE 380
RELICANTH 381
ARON 382
LAIRON 383
AGGRON 384
CASTFORM 385
VOLBEAT 386
ILLUMISE 387
LILEEP 388
CRADILY 389
ANORITH 390
ARMALDO 391
RALTS 392
KIRLIA 393
GARDEVOIR 394
BAGON 395
SHELGON 396
SALAMENCE 397
BELDUM 398
METANG 399
METAGROSS 400
REGIROCK 401
REGICE 402
REGISTEEL 403
KYOGRE 404
GROUDON 405
RAYQUAZA 406
LATIAS 407
LATIOS 408
JIRACHI 409
DEOXYS 410
CHIMECHO 411
6- MOVEMENT
Spoiler:
OK new commands:
applymovement
waitmovement
special
applymovement makes a certain OW including the player's OW and the camera move in a specified way.
Form: applymovement 0x<people number of sprite to move> @pointer
Read the Advance Map Events to know what the people number of a sprite is, and it can be FF to move the player and 7F to move the camera. The pointer is the same as other pointers, but this pointer is best to be before the message pointers of a script but after the pointers of other scripts.
In the pointer you have to list the movements you want the sprite to take. The movements are like so: #raw 0x<movement type>
So the pointer to the movement looks like:
Spoiler:
#org @pointer
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0x<movement type>
#raw 0xFE
And so on but always remember to make the last one in the list #raw 0xFE which signifies the end and is necsessary for the movement to work.
Oh and moving the camera is a little more complicated. Before the applymovement command, use the command special 0x114 and end it with special 0x113 and always return the camera to the center of the screen in the movement command. Why?? cause special 0x114 unlocks the camera and special 0x113 relocks it so if you don't return the camera to it's place, it'll be stuck where it is.
So the applymovement should look like:
Spoiler:
special 0x114
applymovement 0x7F @pointer
special 0x113
OK????
waitmovement is the perfect pause. It makes the game wait till the movements are done before it continues with the script.
Form: waitmovement 0x0
Yes always 0x0.
Please always use this after applymovement except when you want to sprites to move at the same time, then place the two applymovement commands after each other, but you'll have to place the waitmovement command after them, so it'll look like:
Spoiler:
applymovement 0x<people number> @pointer
applymovement 0x<people number> @pointer2
waitmovement 0x0
But why do you have to place waitmovement after each applymovement command. Cause lets say there's a msgbox command after the applymovement. Well if waitmovement isn't there then the message would appear while the OW is still moving, and if the applymovement is before an end command with no msgbox or pause command between, the script would end before the entire movement is done. And so on. A lot of glitches can happen, so just use it. GOD WHY ARGUE. STOP IT. LETS MOVE ON!!!
special will be explained later.
OK so a script with a message and movement would look like:
Spoiler:
#dynamic 0x<FSF OFFSET>
#org @start
lock
faceplayer
msgbox @1 0x6
applymovement 0x<people number> @2
waitmovement 0x0
release
end
#org @2
#raw 0x11
#raw 0x11
#raw 0x11
#raw 0xFE
#org @1
= Hey look, I can move!!!
Here i think the person moves three steps upward after saying "Hey look, I can move!!!".
Here's a list of movements(credits for diegoisawesome for the lists):
Ruby/Sapphire/Emerald
Spoiler:
#raw 0x00 = Face Down
#raw 0x01 = Face Up
#raw 0x02 = Face Left
#raw 0x03 = Face Right
#raw 0x04 = Step Down (Slow)
#raw 0x05 = Step Up (Slow)
#raw 0x06 = Step Left (Slow)
#raw 0x07 = Step Right (Slow)
#raw 0x08 = Step Down (Normal)
#raw 0x09 = Step Up (Normal)
#raw 0x0A = Step Left (Normal)
#raw 0x0B = Step Right (Normal)
#raw 0x0C = Jump2 Down
#raw 0x0D = Jump2 Up
#raw 0x0E = Jump2 Left
#raw 0x0F = Jump2 Right
#raw 0x10 = Delay1
#raw 0x11 = Delay2
#raw 0x12 = Delay3
#raw 0x13 = Delay4
#raw 0x14 = Delay5
#raw 0x15 = Slide Down
#raw 0x16 = Slide Up
#raw 0x17 = Slide Left
#raw 0x18 = Slide Right
#raw 0x19 = Step on the Spot Down (Slow)
#raw 0x1A = Step on the Spot Up (Slow)
#raw 0x1B = Step on the Spot Left (Slow)
#raw 0x1C = Step on the Spot Right (Slow)
#raw 0x1D = Step on the Spot Down (Normal)
#raw 0x1E = Step on the Spot Up (Normal)
#raw 0x1F = Step on the Spot Left (Normal)
#raw 0x20 = Step on the Spot Right (Normal)
#raw 0x21 = Step on the Spot Down (Faster)
#raw 0x22 = Step on the Spot Up (Faster)
#raw 0x23 = Step on the Spot Left (Faster)
#raw 0x24 = Step on the Spot Right (Faster)
#raw 0x25 = Step on the Spot Down (Fastest)
#raw 0x26 = Step on the Spot Up (Fastest)
#raw 0x27 = Step on the Spot Left (Fastest)
#raw 0x28 = Step on the Spot Right (Fastest)
#raw 0x29 = Slide Down
#raw 0x2A = Slide Up
#raw 0x2B = Slide Left
#raw 0x2C = Slide Right
#raw 0x2D = Slide Down
#raw 0x2E = Slide Up
#raw 0x2F = Slide Left
#raw 0x30 = Slide Right
#raw 0x31 = Slide Down
#raw 0x32 = Slide Up
#raw 0x33 = Slide Left
#raw 0x34 = Slide Right
#raw 0x35 = Slide Running Down
#raw 0x36 = Slide Running Up
#raw 0x37 = Slide Running Left
#raw 0x38 = Slide Running Right
#raw 0x3A = Jump Facing Left (Down)
#raw 0x3B = Jump Facing Down (Up)
#raw 0x3C = Jump Facing Up (Left)
#raw 0x3D = Jump Facing Left (Right)
#raw 0x3E = Face Player
#raw 0x3F = Face Against Player
#raw 0x42 = Jump Down
#raw 0x43 = Jump Up
#raw 0x44 = Jump Left
#raw 0x45 = Jump Right
#raw 0x46 = Jump in Place (Facing Down)
#raw 0x47 = Jump in Place (Facing Up)
#raw 0x48 = Jump in Place (Facing Left)
#raw 0x49 = Jump in Place (Facing Right)
#raw 0x4A = Jump in Place (Facing Down/Up)
#raw 0x4B = Jump in Place (Facing Up/Down)
#raw 0x4C = Jump in Place (Facing Left/Right)
#raw 0x4D = Jump in Place (Facing Right/Left)
#raw 0x4E = Face Left
#raw 0x54 = Hide Sprite
#raw 0x55 = Show Sprite
#raw 0x56 = Exclamation Mark (!)
#raw 0x57 = Question Mark (?)
#raw 0x58 = Love (<3)
#raw 0x62 = Walk Down
#raw 0x63 = Walk Down
#raw 0x64 = Face Down (Delayed)
#raw 0x65 = Face Up (Delayed)
#raw 0x66 = Face Left (Delayed)
#raw 0x67 = Face Right (Delayed)
#raw 0x70 = Jump in Place (Facing Down)
#raw 0x71 = Jump in Place (Facing Up)
#raw 0x72 = Jump in Place (Facing Left)
#raw 0x73 = Jump in Place (Facing Right)
#raw 0x74 = Jump Down Running
#raw 0x75 = Jump Up Running
#raw 0x76 = Jump Left Running
#raw 0x77 = Jump Right Running
#raw 0x78 = Jump2 Down Running
#raw 0x79 = Jump2 Up Running
#raw 0x7A = Jump2 Left Running
#raw 0x7B = Jump2 Right Running
#raw 0x7C = Walk on the Spot (Down)
#raw 0x7D = Walk on the Spot (Up)
#raw 0x7E = Walk on the Spot (Lef)
#raw 0x7F = Walk on the Spot (Right)
#raw 0x80 = Slide Down Running
#raw 0x81 = Slide Up Running
#raw 0x82 = Slide Left Running
#raw 0x83 = Slide Right Running
#raw 0x84 = Slide Down
#raw 0x85 = Slide Up
#raw 0x86 = Slide Left
#raw 0x87 = Slide Right
#raw 0x88 = Slide Down on Left Foot
#raw 0x89 = Slide Up on Left Foot
#raw 0x8A = Slide Left on Left Foot
#raw 0x8B = Slide Right on Left Foot
#raw 0x8C = Slide Left diagonally (Facing Up)
#raw 0x8D = Slide Right diagonally (Facing Up)
#raw 0x8E = Slide Left diagonally (Facing Down)
#raw 0x8F = Slide Right diagonally (Facing Down)
#raw 0x90 = Slide2 Left diagonally (Facing Up)
#raw 0x91 = Slide2 Right diagonally (Facing Up)
#raw 0x92 = Slide2 Left diagonally (Facing Down)
#raw 0x93 = Slide2 Right diagonally (Facing Down)
#raw 0x96 = Walk Left
#raw 0x97 = Walk Right
#raw 0x98 = Levitate
#raw 0x99 = Stop Levitating
#raw 0x9C = Fly Up Vertically
#raw 0x9D = Land
#raw 0xFE = End of Movements
#raw 0x01 = Face Up
#raw 0x02 = Face Left
#raw 0x03 = Face Right
#raw 0x04 = Step Down (Slow)
#raw 0x05 = Step Up (Slow)
#raw 0x06 = Step Left (Slow)
#raw 0x07 = Step Right (Slow)
#raw 0x08 = Step Down (Normal)
#raw 0x09 = Step Up (Normal)
#raw 0x0A = Step Left (Normal)
#raw 0x0B = Step Right (Normal)
#raw 0x0C = Jump2 Down
#raw 0x0D = Jump2 Up
#raw 0x0E = Jump2 Left
#raw 0x0F = Jump2 Right
#raw 0x10 = Delay1
#raw 0x11 = Delay2
#raw 0x12 = Delay3
#raw 0x13 = Delay4
#raw 0x14 = Delay5
#raw 0x15 = Slide Down
#raw 0x16 = Slide Up
#raw 0x17 = Slide Left
#raw 0x18 = Slide Right
#raw 0x19 = Step on the Spot Down (Slow)
#raw 0x1A = Step on the Spot Up (Slow)
#raw 0x1B = Step on the Spot Left (Slow)
#raw 0x1C = Step on the Spot Right (Slow)
#raw 0x1D = Step on the Spot Down (Normal)
#raw 0x1E = Step on the Spot Up (Normal)
#raw 0x1F = Step on the Spot Left (Normal)
#raw 0x20 = Step on the Spot Right (Normal)
#raw 0x21 = Step on the Spot Down (Faster)
#raw 0x22 = Step on the Spot Up (Faster)
#raw 0x23 = Step on the Spot Left (Faster)
#raw 0x24 = Step on the Spot Right (Faster)
#raw 0x25 = Step on the Spot Down (Fastest)
#raw 0x26 = Step on the Spot Up (Fastest)
#raw 0x27 = Step on the Spot Left (Fastest)
#raw 0x28 = Step on the Spot Right (Fastest)
#raw 0x29 = Slide Down
#raw 0x2A = Slide Up
#raw 0x2B = Slide Left
#raw 0x2C = Slide Right
#raw 0x2D = Slide Down
#raw 0x2E = Slide Up
#raw 0x2F = Slide Left
#raw 0x30 = Slide Right
#raw 0x31 = Slide Down
#raw 0x32 = Slide Up
#raw 0x33 = Slide Left
#raw 0x34 = Slide Right
#raw 0x35 = Slide Running Down
#raw 0x36 = Slide Running Up
#raw 0x37 = Slide Running Left
#raw 0x38 = Slide Running Right
#raw 0x3A = Jump Facing Left (Down)
#raw 0x3B = Jump Facing Down (Up)
#raw 0x3C = Jump Facing Up (Left)
#raw 0x3D = Jump Facing Left (Right)
#raw 0x3E = Face Player
#raw 0x3F = Face Against Player
#raw 0x42 = Jump Down
#raw 0x43 = Jump Up
#raw 0x44 = Jump Left
#raw 0x45 = Jump Right
#raw 0x46 = Jump in Place (Facing Down)
#raw 0x47 = Jump in Place (Facing Up)
#raw 0x48 = Jump in Place (Facing Left)
#raw 0x49 = Jump in Place (Facing Right)
#raw 0x4A = Jump in Place (Facing Down/Up)
#raw 0x4B = Jump in Place (Facing Up/Down)
#raw 0x4C = Jump in Place (Facing Left/Right)
#raw 0x4D = Jump in Place (Facing Right/Left)
#raw 0x4E = Face Left
#raw 0x54 = Hide Sprite
#raw 0x55 = Show Sprite
#raw 0x56 = Exclamation Mark (!)
#raw 0x57 = Question Mark (?)
#raw 0x58 = Love (<3)
#raw 0x62 = Walk Down
#raw 0x63 = Walk Down
#raw 0x64 = Face Down (Delayed)
#raw 0x65 = Face Up (Delayed)
#raw 0x66 = Face Left (Delayed)
#raw 0x67 = Face Right (Delayed)
#raw 0x70 = Jump in Place (Facing Down)
#raw 0x71 = Jump in Place (Facing Up)
#raw 0x72 = Jump in Place (Facing Left)
#raw 0x73 = Jump in Place (Facing Right)
#raw 0x74 = Jump Down Running
#raw 0x75 = Jump Up Running
#raw 0x76 = Jump Left Running
#raw 0x77 = Jump Right Running
#raw 0x78 = Jump2 Down Running
#raw 0x79 = Jump2 Up Running
#raw 0x7A = Jump2 Left Running
#raw 0x7B = Jump2 Right Running
#raw 0x7C = Walk on the Spot (Down)
#raw 0x7D = Walk on the Spot (Up)
#raw 0x7E = Walk on the Spot (Lef)
#raw 0x7F = Walk on the Spot (Right)
#raw 0x80 = Slide Down Running
#raw 0x81 = Slide Up Running
#raw 0x82 = Slide Left Running
#raw 0x83 = Slide Right Running
#raw 0x84 = Slide Down
#raw 0x85 = Slide Up
#raw 0x86 = Slide Left
#raw 0x87 = Slide Right
#raw 0x88 = Slide Down on Left Foot
#raw 0x89 = Slide Up on Left Foot
#raw 0x8A = Slide Left on Left Foot
#raw 0x8B = Slide Right on Left Foot
#raw 0x8C = Slide Left diagonally (Facing Up)
#raw 0x8D = Slide Right diagonally (Facing Up)
#raw 0x8E = Slide Left diagonally (Facing Down)
#raw 0x8F = Slide Right diagonally (Facing Down)
#raw 0x90 = Slide2 Left diagonally (Facing Up)
#raw 0x91 = Slide2 Right diagonally (Facing Up)
#raw 0x92 = Slide2 Left diagonally (Facing Down)
#raw 0x93 = Slide2 Right diagonally (Facing Down)
#raw 0x96 = Walk Left
#raw 0x97 = Walk Right
#raw 0x98 = Levitate
#raw 0x99 = Stop Levitating
#raw 0x9C = Fly Up Vertically
#raw 0x9D = Land
#raw 0xFE = End of Movements
Fire Red/Leaf Green
Spoiler:
#raw 0x0 = Face Down
#raw 0x1 = Face Up
#raw 0x2 = Face Left
#raw 0x3 = Face Right
#raw 0x4 = Face Down (Faster)
#raw 0x5 = Face Up (Faster)
#raw 0x6 = Face Left (Faster)
#raw 0x7 = Face Right (Faster)
#raw 0x8 = Step Down (Very Slow)
#raw 0x9 = Step Up (Very Slow)
#raw 0xA = Step Left (Very Slow)
#raw 0xB = Step Right (Very Slow)
#raw 0xC = Step Down (Slow)
#raw 0xD = Step Up (Slow)
#raw 0xE = Step Left (Slow)
#raw 0xF = Step Right (Slow)
#raw 0x10 = Step Down (Normal)
#raw 0x11 = Step Up (Normal)
#raw 0x12 = Step Left (Normal)
#raw 0x13 = Step Right (Normal)
#raw 0x14 = Jump2 Down
#raw 0x15 = Jump2 Up
#raw 0x16 = Jump2 Left
#raw 0x17 = Jump2 Right
#raw 0x18 = Delay1
#raw 0x19 = Delay2
#raw 0x1A = Delay3
#raw 0x1B = Delay4
#raw 0x1C = Delay5
#raw 0x1D = Step Down (Fast)
#raw 0x1E = Step Up (Fast)
#raw 0x1F = Step Left (Fast)
#raw 0x20 = Step Right (Fast)
#raw 0x21 = Step on the Spot Down (Normal)
#raw 0x22 = Step on the Spot Up (Normal)
#raw 0x23 = Step on the Spot Left (Normal)
#raw 0x24 = Step on the Spot Right (Normal)
#raw 0x25 = Step on the Spot Down (Faster)
#raw 0x26 = Step on the Spot Up (Faster)
#raw 0x27 = Step on the Spot Left (Faster)
#raw 0x28 = Step on the Spot Right (Faster)
#raw 0x29 = Step on the Spot Down (Fastest)
#raw 0x2A = Step on the Spot Up (Fastest)
#raw 0x2B = Step on the Spot Left (Fastest)
#raw 0x2C = Step on the Spot Right (Fastest)
#raw 0x2D = Face Down (Delayed)
#raw 0x2E = Face Up (Delayed)
#raw 0x2F = Face Left (Delayed)
#raw 0x30 = Face Right (Delayed)
#raw 0x31 = Slide Down (Slow)
#raw 0x32 = Slide Up (Slow)
#raw 0x33 = Slide Left (Slow)
#raw 0x34 = Slide Right (Slow)
#raw 0x35 = Slide Down (Normal)
#raw 0x36 = Slide Up (Normal)
#raw 0x37 = Slide Left (Normal)
#raw 0x38 = Slide Right (Normal)
#raw 0x39 = Slide Down (Fast)
#raw 0x3A = Slide Up (Fast)
#raw 0x3B = Slide Left (Fast)
#raw 0x3C = Slide Right (Fast)
#raw 0x3D = Slide Running on Right Foot (Down)
#raw 0x3E = Slide Running on Right Foot (Up)
#raw 0x3F = Slide Running on Right Foot (Left)
#raw 0x40 = Slide Running on Right Foot (Right)
#raw 0x41 = Slide Running on Left Foot (Down)
#raw 0x42 = Slide Running on Left Foot (Up)
#raw 0x43 = Slide Running on Left Foot (Left)
#raw 0x44 = Slide Running on Left Foot (Right)
#raw 0x46 = Jump Facing Left (Down)
#raw 0x47 = Jump Facing Down (Up)
#raw 0x48 = Jump Facing Up (Left)
#raw 0x49 = Jump Facing Left (Right)
#raw 0x4A = Face Player
#raw 0x4B = Face Against Player
#raw 0x4E = Jump Down
#raw 0x4F = Jump Up
#raw 0x50 = Jump Left
#raw 0x51 = Jump Right
#raw 0x52 = Jump in Place (Facing Down)
#raw 0x53 = Jump in Place (Facing Up)
#raw 0x54 = Jump in Place (Facing Left)
#raw 0x55 = Jump in Place (Facing Right)
#raw 0x56 = Jump in Place (Facing Down/Up)
#raw 0x57 = Jump in Place (Facing Up/Down)
#raw 0x58 = Jump in Place (Facing Left/Right)
#raw 0x59 = Jump in Place (Facing Right/Left)
#raw 0x60 = Hide Sprite
#raw 0x61 = Show Sprite
#raw 0x62 = Exclamation Mark (!)
#raw 0x63 = Question Mark (?)
#raw 0x64 = Cross (X)
#raw 0x65 = Double Exclamation Mark (!!)
#raw 0x66 = Happy (^_^)
#raw 0xFE = End of Movements
#raw 0x1 = Face Up
#raw 0x2 = Face Left
#raw 0x3 = Face Right
#raw 0x4 = Face Down (Faster)
#raw 0x5 = Face Up (Faster)
#raw 0x6 = Face Left (Faster)
#raw 0x7 = Face Right (Faster)
#raw 0x8 = Step Down (Very Slow)
#raw 0x9 = Step Up (Very Slow)
#raw 0xA = Step Left (Very Slow)
#raw 0xB = Step Right (Very Slow)
#raw 0xC = Step Down (Slow)
#raw 0xD = Step Up (Slow)
#raw 0xE = Step Left (Slow)
#raw 0xF = Step Right (Slow)
#raw 0x10 = Step Down (Normal)
#raw 0x11 = Step Up (Normal)
#raw 0x12 = Step Left (Normal)
#raw 0x13 = Step Right (Normal)
#raw 0x14 = Jump2 Down
#raw 0x15 = Jump2 Up
#raw 0x16 = Jump2 Left
#raw 0x17 = Jump2 Right
#raw 0x18 = Delay1
#raw 0x19 = Delay2
#raw 0x1A = Delay3
#raw 0x1B = Delay4
#raw 0x1C = Delay5
#raw 0x1D = Step Down (Fast)
#raw 0x1E = Step Up (Fast)
#raw 0x1F = Step Left (Fast)
#raw 0x20 = Step Right (Fast)
#raw 0x21 = Step on the Spot Down (Normal)
#raw 0x22 = Step on the Spot Up (Normal)
#raw 0x23 = Step on the Spot Left (Normal)
#raw 0x24 = Step on the Spot Right (Normal)
#raw 0x25 = Step on the Spot Down (Faster)
#raw 0x26 = Step on the Spot Up (Faster)
#raw 0x27 = Step on the Spot Left (Faster)
#raw 0x28 = Step on the Spot Right (Faster)
#raw 0x29 = Step on the Spot Down (Fastest)
#raw 0x2A = Step on the Spot Up (Fastest)
#raw 0x2B = Step on the Spot Left (Fastest)
#raw 0x2C = Step on the Spot Right (Fastest)
#raw 0x2D = Face Down (Delayed)
#raw 0x2E = Face Up (Delayed)
#raw 0x2F = Face Left (Delayed)
#raw 0x30 = Face Right (Delayed)
#raw 0x31 = Slide Down (Slow)
#raw 0x32 = Slide Up (Slow)
#raw 0x33 = Slide Left (Slow)
#raw 0x34 = Slide Right (Slow)
#raw 0x35 = Slide Down (Normal)
#raw 0x36 = Slide Up (Normal)
#raw 0x37 = Slide Left (Normal)
#raw 0x38 = Slide Right (Normal)
#raw 0x39 = Slide Down (Fast)
#raw 0x3A = Slide Up (Fast)
#raw 0x3B = Slide Left (Fast)
#raw 0x3C = Slide Right (Fast)
#raw 0x3D = Slide Running on Right Foot (Down)
#raw 0x3E = Slide Running on Right Foot (Up)
#raw 0x3F = Slide Running on Right Foot (Left)
#raw 0x40 = Slide Running on Right Foot (Right)
#raw 0x41 = Slide Running on Left Foot (Down)
#raw 0x42 = Slide Running on Left Foot (Up)
#raw 0x43 = Slide Running on Left Foot (Left)
#raw 0x44 = Slide Running on Left Foot (Right)
#raw 0x46 = Jump Facing Left (Down)
#raw 0x47 = Jump Facing Down (Up)
#raw 0x48 = Jump Facing Up (Left)
#raw 0x49 = Jump Facing Left (Right)
#raw 0x4A = Face Player
#raw 0x4B = Face Against Player
#raw 0x4E = Jump Down
#raw 0x4F = Jump Up
#raw 0x50 = Jump Left
#raw 0x51 = Jump Right
#raw 0x52 = Jump in Place (Facing Down)
#raw 0x53 = Jump in Place (Facing Up)
#raw 0x54 = Jump in Place (Facing Left)
#raw 0x55 = Jump in Place (Facing Right)
#raw 0x56 = Jump in Place (Facing Down/Up)
#raw 0x57 = Jump in Place (Facing Up/Down)
#raw 0x58 = Jump in Place (Facing Left/Right)
#raw 0x59 = Jump in Place (Facing Right/Left)
#raw 0x60 = Hide Sprite
#raw 0x61 = Show Sprite
#raw 0x62 = Exclamation Mark (!)
#raw 0x63 = Question Mark (?)
#raw 0x64 = Cross (X)
#raw 0x65 = Double Exclamation Mark (!!)
#raw 0x66 = Happy (^_^)
#raw 0xFE = End of Movements
7- FLAGS
Spoiler:
OK here I'll explain flags and the four commands that can be used with them.
Flags can be activated and deactivated. Some flags have special effects that are activated once the flag is set(or activated, same meaning). The commands you can use with flags are:
setflag
checkflag
clearflag
if
Ok the setflag sets or activates a certain flag.
Form: setflag 0x<flag number>
The flag number can be any hex number from 1 to FFFF. But almost all flags under a thousand are already used in the game and thus their use again could cause problems. So always use a flag with four digits and letters where the first isn't zero.For example 1000;1001;1A34;23B6;5F46 and so on can be used, but 1;34;456;23D;DF5;EA5:2;0987;0AF4 and so on can't be used. You are not limited to the previous numbers. There are thousands of flags you can use.
clearflag clears a flag, or deactivates it. If you use this command on a flag that has been set by setflag, it is no longer set.
Form: clearflag 0x<flag number>
checkflag checks if a certain flag is set.
Form: checkflag 0x<flag number>
After this command use the if command. Use "if 0x1 goto @pointer" if you want the script to go to that pointer if the flag is set, and use"if 0x0 goto @pointer" if you want the script to go to that pointer if the flag isn't set.
And if the condition mentioned in the if command(0x1 or 0x0) isn't fulfilled, the script won't go to the mentioned pointer, it'll just continue the commands after the if command.
But why are flags used. Well lets say you want to make a script where the person says something then gives you a pokemon, and the next time you talk to him he says that he already gave you one, or whatever other event you don't want to take place twice. Well here you can use flags. This is a script with three of the commands mentioned above. You should know by then how to use the fourth:
Spoiler:
#dynamic 0x<FSF OFFSET>
#org @start
lock
faceplayer
checkflag 0x1000
if 0x1 goto @alreadydone
msgbox @first 0x6
release
end
#org @alreadydone
msgbox @second 0x6
release
end
#org @first
= Hey next time I'll say\nsomething else.
#org @second
= Hey I said something\nelse.
Ok in the previous script the person says "Hey next time I'll say something else." the first time. Then he says "Hey I said something else." the second time you talk to him. And he also says that any other time you talk to him later, cause once you set a flag, it is perminantly set. But if you clear this flag in any other place, this script will start all over again if you talk to this person.
Here are the flags that activate something once set. Set these flags to activate the corrosponding effects:
RUBY/SAPPHIRE
Spoiler:
POKEMON MENU 0x800
POKEDEX 0x801
POKENAV 0x802
RUNNING SHOES 0x860
BADGE1 0x807
BADGE2 0x808
BADGE3 0x809
BADGE4 0x80A
BADGE5 0x80B
BADGE6 0x80C
BADGE7 0x80D
BADGE8 0x80E
EMERALD
Spoiler:
POKEMON MENU 0x860
POKEDEX 0x861
POKENAV 0x862
RUNNING SHOES 0x8C0
BADGE1 0x867
BADGE2 0x868
BADGE3 0x869
BADGE4 0x86A
BADGE5 0x86B
BADGE6 0x86C
BADGE7 0x86D
BADGE8 0x86E
FIRERED/LEAFGREEN
Spoiler:
POKEMON MENU 0x828
POKEDEX 0x829
RUNNING SHOES 0x82F
BADGE1 0x820
BADGE2 0x821
BADGE3 0x822
BADGE4 0x823
BADGE5 0x824
BADGE6 0x825
BADGE7 0x826
BADGE8 0x827
OK we're done with flags, I hope you understood.
8- VARIABLES
Spoiler:
Ok now I'll explain variables. Most of you guys have been waiting for this. Well it's here. A variable can be equal to any number. So if you assign a certain value to a variable, then that variable is equal to that value. So lets say you assigned the value 103 to the variable 456D, then the variable 456D=103. Oh and a variable can be any four digit and letter hex number. and you can assign any value to any variable. Just don't play around with any important variables like 800D or 8000 and 8001 and 8002 and I think 8003 too.
Ok the commands you can use here are:
setvar
addvar
subvar
resetvars
compare
if
copyvar
comparevars
copyvarifnotzero
setvar sets or assigns a certain value to a certain variable.
Form: setvar 0x<variable> 0x<value to assign>
addvar adds a certain value to the value assigned to a certain variable.
Form: addvar 0x<variable> 0x<value to add>
subvar subtracts a certain value from the value assigned to a certain variable.
Form: subvar 0x<variable> 0x<value to subtract>
resetvars resets the variables 8000 8001 8002.
Form: resetvars
compare checks if a certain variable is equal to, less than, greater than, greater than or equal, and less than or equal to a certain value.
Form: compare 0x<variable> 0x<value>
Now after this use "if 0x<condition> goto @pointer". The 0x<condition> can be:
Spoiler:
Lower Than (0x0)
Equals (0x1)
Greater Than (0x2)
Lower than or Equal to (0x3)
Greater than or Equal to (0x4)
Not exactly equal to (0x5)
You should understand how to use this by now.
OK copyvar copies the value stored in one variable to another,
Form: copyvar 0x<destination variable> 0x<source variable>
copyvarifnotzero does the same and has the same parameters but only if the source is not equal to zero.
comparevars checks if the value assigned to one variable is equal to the value assigned to another.
Form: comparevars 0x<first variable> 0x<second variable>
After this use the if command and let the condition be 0x1 if you want the script to go to the pointer if the variables are equal, and 0x0 if you want it to go to the pointer if the variables aren't equal.
9- WARPS
Spoiler:
OK new commands:
warp
warphole
warpmuted
warpteleport
warpwalk
warp instantly warps the player to a certain map to certain x and y coordinates.
Form:warp 0x<bank number> 0x<map number> 0x<exit number> 0x<X coordinate> 0x<Y coordinate>
bank number and mao number and X Y coordinates are clear I think and don't need explaining. But what's the exit number. It's, I think, the number of the warp leading to this map. Just experiment with this and you should find out what it is.
warpmuted is the same as the previous one but without a sound, so is warpteleport but it has a teleport effect like in sabrina's gym, and so is warpwalk but with a walk effect. Never tried the last one but try it and it should work out.
warphole warps you to another map and takes you there with a hole effect like falling, and you arrive at the same X Y coordinates you were at in the previous map.
Form: warphole 0x<bank number> 0x<map number>
10- MONEY AND COINS
Spoiler:
OK some money and coins commands:
givemoney
paymoney
showmoney
hidemoney
updatemoney
checkmoney
givemoney gives a certain amount of money.
Form: givemoney 0x<amount of money> 0x0
paymoney makes the player pay a certain amount of money.
Form: paymoney 0<amount of money to pay> 0x0
showmoney shows a box with the amount of money the player has at certain coordiantes on the screen.
Form: showmoney 0x<X coordinate> 0x<Y coordinate> 0x0
hidemoney hides the shown money box at certain coordinates on the screen
Form: hidemoney 0x<X coordinate> 0x<Y coordinate>
updatemoney updates the amount of money the player has in the money box if money has been added or payed at certain coordinates on the screen.
Form: updatemoney 0x<X coordinate> 0x<Y coordinate> 0x0
checkmoney checks if the player has a certain amount of money.
Form: checkmoney 0x<amount to check for> 0x0
After this use the if command and the condition here can be the less than and greater than and that other stuff mentioned earlier.
Coin commands:
givecoins
removecoins
checkcoins
showcoins
hidecoins
updatecoins
givecoins gives the player a certain amount of coins.
Form: givecoins 0x<amount to give>
removecoins removes a certain amount of coins form the player's coincase.
Form: removecoins 0x<amount to remove>
checkcoins assigns the amount of money the player has to a certain variable.
Form: checkcoins 0x<variable to store amount of coins in>
After this use the compare and if commands to manipulate the effect of the command.
You should know how.
showcoins and hidecoins and updatecoins do the same as they do in money commands.
Form: showcoins 0x<X coordinates> 0x<Y coordinates>
Form: hidecoins 0x<X coordinates> 0x<Y coordinates>
Form: updatecoins 0x<X coordinates> 0x<Y coordinates>
OK we're done. But remember all above amounts have to be in hex so convert, and happy money hacking.
11- POKEPIC
Spoiler:
New commands:
showpokepic
hidepokepic
showpokepic shows the picture of a certain pokemon at certain coordinates on the screen.
Form: showpokepic 0x<pokemon species> 0x<X coordinates> 0x<Y coordinates>
All in hex.
hidepokepic hides the picture shown.
Form: hidepokepic
Pokepics section done.
12- SPECIALS
Spoiler:
Easiest ever. Only one command.
special
This command activates a special event.
Form: special 0x<special number>
Replace the special number with one of the following numbers to activate its effect:
R/S Specials
Ruby & Sapphire Specials List...
Spoiler:
0 = Heals Party Pokémon
2 = Warp sound + FadeBlack
3 = Hero Uses Last Used Warp
8 = Make new Secret Base/Enter Secret Base
9 = Come out of Coliseum
A = Come out of Coliseum
E = Hero Uses Secret Base PC
F = Something to do with registry in a secret base
11 = Something to do with Secret Base battling
18 = Move Player to X01 Y03
19 = Something to do with secret base battling
1A = Turning off PC
1B = Mixing Records
1F = checks whether game is linked
20 = Please wait followed by wild battle (Linkup) (VS in coliseum)
21 = "Please wait link stand by" (Link Feature)
22 = "Please wait link stand by" (Link Feature)
23 = Call Save Menu
29 = Select 3 Pokémon [maybe for Battle tower?]
2A = Black Screen
2B = Something to do with Berry Growth
2C = Opens up berry pocket (Used in berry blender script)
2D = Something to do with Planted berry (Used with CmdC3)
2E = Something to do with Berry Growth
2F = Something to do with Berry Growth
30 = Maybe activates the watered flag (used first, then special0x5E)
34 = Open Textbox (Stays Open)
35 = Open Textbox (Stays Open)
3B = Trainer battle
3C = Access Lanette's PC (BOX System)
5D = Call Save Menu which keeps looping.
5E = Watering of Berry (used first, then special0x5E)
5F = You fill your trainer's profile/interview
60 = Shows what you put for trainer's Profile/interview
67 = Strange Message with sound (could be Unown speech)
6C = Trainer Tales (Link Feature)
6D = Choose Tale
75 = Secret Base Decoration Item Menu
7C = Something to do with renaming
7D = Something to do with renaming
83 = Poké Slots In Use (Store Command)
8A = Crashes
8D = Displays the last message
8E = Used with Setmaptile to make it work
91 = setmaptile #206 at X8 YB
94 = Something to do with Timed events
98 = Cable Car Ride Cutscene
9A = Male Clock
9B = View Clock
9C = Choose Starters From Birch's Bag
9D = Wally Catching Ralts
9E = Nickname's first Pokémon in Party
9F = Choose a Pokémon in the party (For Nickname)
A1 = Starts Berry Blender
A2 = Slot game.
AF = Gabby and TV's "In serach of Trainers"
BC = Store a Pokémon For Day Care
BD = Take back Pokémon From Day Care
BE = Get Breeding Growth (store)
BF = Get Price
C0 = Something to do with Day Cay pay (store)
C2 = Egg hatch (1st Pokémon in party)
C4 = Battle results For The Coliseum
C6 = Something to do with DayCare cost
C8 = Move to the last sethealingplace/flightspot after some time (faint!!) (Fainted Event)
D0 = Opens PokéBlock case
D1 = Stores a random value to LASTRESULT (If the value matches mirage Island will show)
D4 = Used Before Special 0xF9/FA
D5 = Catch Pokémon tip, boxset 4 (use closeonkeypress)
D6 = tile change (in the middle of screen?)(For PC)
D7 = tile change (flower, in the middle of screen?)
D9 = Sets some sort of tiles
DA = Sets some sort of tiles
DB = Choose Pokémon then Fadescreen
DC = Opens the First Pokémon's Moves
E0 = Move tutoring For 1st Pokémon in Party
E3 = CheckBike (store command) 00 = nobike
E4 = Set Cycling Road Results (time, collisions)
E6 = First Pokémon Happy (StoreResult, 4 = Happy),
EC = Verse a high level trainer, level 100/Random Battle?
F1 = Restarts Game
F5 = choose 3 Pokémon(Battle tower) F6 = ?
F9 = Item Storage Mailbox Decoration
FA = Item Storage - No Decoration
FB = World Map
FE = Used for In-Game Trades - Trades 1st trade Pokémon "Makit" to 1st Pokémon in Party
103 = Berry Blender results
106 = PC (menu opens and disappears real fast)
107 = Hall of Fame, through PC (Will be corrupt if there's no data) (reads)
108 = Hoenn Pokédex diploma
10E = Boat sailing for a long time, like Fire Red's speed boat (+Return)
10F = Restarts
110 = Hall of Fame "Credits" (Saves data)
111 = Elevator animation<
112 = Displays Flutes
113 = Freezes The Screen/Camera
114 = Releases The Screen/Camera
119 = Groudon's Orb followed by earthquake
11B = Battel Tower Results
12C = Player Goes to last warp/flightspot used
12D = Makes special 0x9d work properly
130 = Is PC Box Full (store command) (0 = full)
131 = Earthquake for few seconds "Earthquake (stops)"
132 = Show Floors & Which Floor you're on
134 = CheckPokerus [0001 = Pokerus]
136 = Weird Quake
137 = Lava Battle/with Groudon
138 = Land Battle/with legendary
139 = Land Battle2/different song/battle with ledgendary - used with wildbattle
13B = Small screen shake
13D = Light/Flash
13E = Player uses the warp last used (no sound)
13F = falls in first warp of the first map
140 = Pokémon Image (UnLZ 199/200)
142 = Ecard battle Initiate (used in Levelscript at mossdeep, Oldman's house)
143 = Battle ?(perhaps used for wildbattle)
147 = Check Pokemon
14C = Turns Off Background/Map music
2 = Warp sound + FadeBlack
3 = Hero Uses Last Used Warp
8 = Make new Secret Base/Enter Secret Base
9 = Come out of Coliseum
A = Come out of Coliseum
E = Hero Uses Secret Base PC
F = Something to do with registry in a secret base
11 = Something to do with Secret Base battling
18 = Move Player to X01 Y03
19 = Something to do with secret base battling
1A = Turning off PC
1B = Mixing Records
1F = checks whether game is linked
20 = Please wait followed by wild battle (Linkup) (VS in coliseum)
21 = "Please wait link stand by" (Link Feature)
22 = "Please wait link stand by" (Link Feature)
23 = Call Save Menu
29 = Select 3 Pokémon [maybe for Battle tower?]
2A = Black Screen
2B = Something to do with Berry Growth
2C = Opens up berry pocket (Used in berry blender script)
2D = Something to do with Planted berry (Used with CmdC3)
2E = Something to do with Berry Growth
2F = Something to do with Berry Growth
30 = Maybe activates the watered flag (used first, then special0x5E)
34 = Open Textbox (Stays Open)
35 = Open Textbox (Stays Open)
3B = Trainer battle
3C = Access Lanette's PC (BOX System)
5D = Call Save Menu which keeps looping.
5E = Watering of Berry (used first, then special0x5E)
5F = You fill your trainer's profile/interview
60 = Shows what you put for trainer's Profile/interview
67 = Strange Message with sound (could be Unown speech)
6C = Trainer Tales (Link Feature)
6D = Choose Tale
75 = Secret Base Decoration Item Menu
7C = Something to do with renaming
7D = Something to do with renaming
83 = Poké Slots In Use (Store Command)
8A = Crashes
8D = Displays the last message
8E = Used with Setmaptile to make it work
91 = setmaptile #206 at X8 YB
94 = Something to do with Timed events
98 = Cable Car Ride Cutscene
9A = Male Clock
9B = View Clock
9C = Choose Starters From Birch's Bag
9D = Wally Catching Ralts
9E = Nickname's first Pokémon in Party
9F = Choose a Pokémon in the party (For Nickname)
A1 = Starts Berry Blender
A2 = Slot game.
AF = Gabby and TV's "In serach of Trainers"
BC = Store a Pokémon For Day Care
BD = Take back Pokémon From Day Care
BE = Get Breeding Growth (store)
BF = Get Price
C0 = Something to do with Day Cay pay (store)
C2 = Egg hatch (1st Pokémon in party)
C4 = Battle results For The Coliseum
C6 = Something to do with DayCare cost
C8 = Move to the last sethealingplace/flightspot after some time (faint!!) (Fainted Event)
D0 = Opens PokéBlock case
D1 = Stores a random value to LASTRESULT (If the value matches mirage Island will show)
D4 = Used Before Special 0xF9/FA
D5 = Catch Pokémon tip, boxset 4 (use closeonkeypress)
D6 = tile change (in the middle of screen?)(For PC)
D7 = tile change (flower, in the middle of screen?)
D9 = Sets some sort of tiles
DA = Sets some sort of tiles
DB = Choose Pokémon then Fadescreen
DC = Opens the First Pokémon's Moves
E0 = Move tutoring For 1st Pokémon in Party
E3 = CheckBike (store command) 00 = nobike
E4 = Set Cycling Road Results (time, collisions)
E6 = First Pokémon Happy (StoreResult, 4 = Happy),
EC = Verse a high level trainer, level 100/Random Battle?
F1 = Restarts Game
F5 = choose 3 Pokémon(Battle tower) F6 = ?
F9 = Item Storage Mailbox Decoration
FA = Item Storage - No Decoration
FB = World Map
FE = Used for In-Game Trades - Trades 1st trade Pokémon "Makit" to 1st Pokémon in Party
103 = Berry Blender results
106 = PC (menu opens and disappears real fast)
107 = Hall of Fame, through PC (Will be corrupt if there's no data) (reads)
108 = Hoenn Pokédex diploma
10E = Boat sailing for a long time, like Fire Red's speed boat (+Return)
10F = Restarts
110 = Hall of Fame "Credits" (Saves data)
111 = Elevator animation<
112 = Displays Flutes
113 = Freezes The Screen/Camera
114 = Releases The Screen/Camera
119 = Groudon's Orb followed by earthquake
11B = Battel Tower Results
12C = Player Goes to last warp/flightspot used
12D = Makes special 0x9d work properly
130 = Is PC Box Full (store command) (0 = full)
131 = Earthquake for few seconds "Earthquake (stops)"
132 = Show Floors & Which Floor you're on
134 = CheckPokerus [0001 = Pokerus]
136 = Weird Quake
137 = Lava Battle/with Groudon
138 = Land Battle/with legendary
139 = Land Battle2/different song/battle with ledgendary - used with wildbattle
13B = Small screen shake
13D = Light/Flash
13E = Player uses the warp last used (no sound)
13F = falls in first warp of the first map
140 = Pokémon Image (UnLZ 199/200)
142 = Ecard battle Initiate (used in Levelscript at mossdeep, Oldman's house)
143 = Battle ?(perhaps used for wildbattle)
147 = Check Pokemon
14C = Turns Off Background/Map music
FR/LG Specials
Fire Red & Leaf Green Specials List...
Spoiler:
0 = Heal Party Pokémon
2 = Warp sound + Black Screen
3 = Walk to your room
20 = Weird Fight
21 = Link Communication Standby
22 = Link Communication Standby 2
23 = Call Save Menu
29 = Select 3 Pokémon for something
2A = Crashes
3B = Fight with Team Aqua's Leader
3C = Access BILL's PC
5D = Call Save Menu
5E = Edit "At the battle's start" profile
5F = Edit "At the battle's start" profile
60 = Displays "At the battle's start" text
9D = Old man catching a Weedle
9E = Nickname
9F = Choose 3 Pokémon
BC = Store a Pokémon
BD = Withdraw a stored Pokémon
C2 = Egg Hatch
C4 = Show Battle Results
C8 = Fainted Event
D6 = A Turned On PC Appears
D7 = A Turned Off PC Appears
DC = Shows Known Moves
DF = Crashes
E0 = Crashes
E1 = Crashes
E2 = Crashes
E3 = Crashes
E4 = Crashes
E5 = Crashes
E6 = Crashes
E7 = Crashes
E8 = Crashes
E9 = Crashes
107 = Reads Hall Of Fame Data
108 = Diplome For Completing Kanto Dex
10F = Crashes
110 = Saves Hall Of Fame Data
111 = Elevator
113 = Freezes The Camera
114 = Releases The Camera
132 = Select Floor (Elevator)
136 = Using Strength
137 = Starts Trainerbattle
138 = Starts Wild Battle
139 = Starts Wild Battle
13D = Warp
13E = Fall Through A Hole
143 = Starts Wild Battle
156 = Starts Battle Against Ghost
157 = Uses The Bicycle
15C = Crashes
161 = Activates Surfing Animation
163 = See in PokéDex
166 = Lets You Enter A Nickname
16B = Establishes A Connection
16C = Establishes A Connection
16D = Establishes A Connection
16E = Shows Wireless Connection Status
17B = Uses The Ms Aqua
186 = Crashes
18D = Learns A Move
18E = Battletower Lv50
191 = Departure Of MS Anne
195 = Shows Jump Records
19C = Shows Powder Counter
1A2 = Shows Berry Crush Rankings
1A5 = Plays Credits On The Current Map
1A6 = Shows Dodrio Berry Picking Stats
1AB = Moves The Deoxys-Triangle
1B2 = Displays A Cursor At The Left Top Corner
1B5 = Executes Weird Effects on Map Tiles
1B6 = Executes Weird Effects on Map Tiles
2 = Warp sound + Black Screen
3 = Walk to your room
20 = Weird Fight
21 = Link Communication Standby
22 = Link Communication Standby 2
23 = Call Save Menu
29 = Select 3 Pokémon for something
2A = Crashes
3B = Fight with Team Aqua's Leader
3C = Access BILL's PC
5D = Call Save Menu
5E = Edit "At the battle's start" profile
5F = Edit "At the battle's start" profile
60 = Displays "At the battle's start" text
9D = Old man catching a Weedle
9E = Nickname
9F = Choose 3 Pokémon
BC = Store a Pokémon
BD = Withdraw a stored Pokémon
C2 = Egg Hatch
C4 = Show Battle Results
C8 = Fainted Event
D6 = A Turned On PC Appears
D7 = A Turned Off PC Appears
DC = Shows Known Moves
DF = Crashes
E0 = Crashes
E1 = Crashes
E2 = Crashes
E3 = Crashes
E4 = Crashes
E5 = Crashes
E6 = Crashes
E7 = Crashes
E8 = Crashes
E9 = Crashes
107 = Reads Hall Of Fame Data
108 = Diplome For Completing Kanto Dex
10F = Crashes
110 = Saves Hall Of Fame Data
111 = Elevator
113 = Freezes The Camera
114 = Releases The Camera
132 = Select Floor (Elevator)
136 = Using Strength
137 = Starts Trainerbattle
138 = Starts Wild Battle
139 = Starts Wild Battle
13D = Warp
13E = Fall Through A Hole
143 = Starts Wild Battle
156 = Starts Battle Against Ghost
157 = Uses The Bicycle
15C = Crashes
161 = Activates Surfing Animation
163 = See in PokéDex
166 = Lets You Enter A Nickname
16B = Establishes A Connection
16C = Establishes A Connection
16D = Establishes A Connection
16E = Shows Wireless Connection Status
17B = Uses The Ms Aqua
186 = Crashes
18D = Learns A Move
18E = Battletower Lv50
191 = Departure Of MS Anne
195 = Shows Jump Records
19C = Shows Powder Counter
1A2 = Shows Berry Crush Rankings
1A5 = Plays Credits On The Current Map
1A6 = Shows Dodrio Berry Picking Stats
1AB = Moves The Deoxys-Triangle
1B2 = Displays A Cursor At The Left Top Corner
1B5 = Executes Weird Effects on Map Tiles
1B6 = Executes Weird Effects on Map Tiles
Sorry, don't have the emerald specials, but i think some are the same as ruby and sapphire specials.
13- SONGS
Spoiler:
New commands:
fanfare
waitfanfare
fadedefault
fanfare plays a certain song.
Form: fanfare 0x<song number>
A list of song numbers is mentioned above in the messages section.
waitfanfare waits for the song to play out before the script continues.
Form: waitfanfare
fadedefault fades back to the original map's song.
Form: fadedefault
There are a lot more song commands but I feal they are useless, but check the command help option in XSE to get more info, or just read all the commands in that option once you've finished reading the tutorial.
14- SPRITES
Spoiler:
New commands:
hidesprite
showsprite
spriteinvisible
spritevisible
hidesprite hides a certain sprite on the map.
Form: hidesprite 0x<people number of sprite>
Ok for this to make the sprite perminantly disapear, after the command set any flag and place that flag's number in the Person ID box of that sprite in advance map.
showsprite shows a sprite hidden earlier with the previous command.
Form: showsprite 0x<people number of the sprite>
For this to work you have to clear the flag you set to hide the sprite.
spriteinvisible and spriteinvisible do the same as the two previous commands but hide a sprite in any map, not just the one you are in right now.
Form: spriteinvisible 0x<people number of sprite> 0x<bank number> 0x<map number>
Form: spritevisible 0x<people number of sprite> 0x<bank number> 0x<map number>
OH and all people numbers here have to be converted to hex. You should now when to convert to hex by now but I will still keep reminding you.
15- TRAINER BATTLES
Spoiler:
Ok new commands:
trainerbattle
cleartrainerflag
trainerbattle starts a battle with a trainer predefined in a-trainer. To make a trainer, add a person event in advance map and check the trainer box and define the veiw radius. Goto a-trainer and you should see a list of trainers. You can edit any one you want but to add a trainer, edit one without a name, and everytime you check the trainer box for a person in advance map, a new trainer appears in a-trainer with no name. Edit the trainer you want in the battle, and memorize its trainer number mentioned next to its name in a-trainer. Oh and always save before changing the page in a-trainer so the changes are perminant.
Form: trainerbattle 0x<battle type> 0x<trainer number from a-trainer> 0x0 @pointer1 @pointer2
Battle type can be 0 for normal trainer battle, 1 for official battle, 4 for double battle.
0 uses the above form of the command, where the first pointer is a pointer to the text before the battle when the trainer's eye catches the player, and the second pointer is the pointer to the text after the battle is done, you now before the player is told how much money he is given.
1 is the official battle type like gym battles or battles with important people. It's form is the same but has an extra pointer at the end that is a pointer to the after battle script, as in the events after the battle. Here's how it looks in the script:
Spoiler:
#dynamic 0x<FSF OFFSET>
#org @start
trainerbattle 0x1 0x<trainer number> 0x0 @1 @2 @3
end
#org @3
applymovement 0x3 @4
end
#org @4
#raw 0x11
#raw 0x11
#raw 0xFE
@org @1
= Hey there lets battle.
#org @2
= You won.
And the sweat thing about trainer battles is that the game know if a battle has taken place or not, so if a battle is already done, it'll skip the trainer battle command, so after it place a message box and it will appear if you talk to the person after the battle. OH and the command has a lock, faceplayer, and release effect by itself.
4 is a double battle. For this to work you have to check the double battle box in a-trainer, and there is also three pointers here, the first two are the same as the ordinary trainer battle command, but the last one is the message that appears if the player doesn't have enough pokemon for the battle, and the game does the check itself, so all three pointers are message pointers.
Ok like i said, the trainerbattle command knows if a battle has been done or not, but if it has been done, you can undo it, as in make it possible to take place again, by using the command cleartrainerflag.
Form: cleartrainerflag 0x<trainer number from a-trainer>
OK we're done with trainer battles.
16- WILD BATTLES
Spoiler:
One new command:
wildbattle
It starts a wild battle.
Form: wildbattle 0x<species> 0x<level> 0x<held item number>
All in hex.
17- WEATHER
Spoiler:
Changes the weather of the present map. Three commands:
setweather
resetweathjer
doweather
setweather sets a certain weather to be activated by doweather.
Form: setweather 0x<weather type>
resetweather resets the maps original weather to be activated by doweather.
Form: resetweather
doweather does the weather set by one of the two previous command. It has to be added after them for the weather command to work.
Form: doweather
Sorry I don't have a list of weathers, but it should be easy to find. All have to be in hex.
18- MARTS
Spoiler:
One new command:
pokemart
This command starts a market event, you know, the buy, sell, and cancel choice thingy.
Form: pokemart @pointer
The pointer is to a list of items sold in the mart, and to edit the prices use the item editor.
The pointer can be anywhere after the script similar to movement and message and any other type of pointer. Here's how it looks:
Spoiler:
#org @pointer
#raw word 0x<item number>
#raw word 0x<item number>
#raw word 0x<item number>
#raw word 0x<item number>
#raw word 0x0
No you are not limited to four, and yes the #raw word 0x0 at the end is necessary. OH and convert to hex in the list.
19- BUFFERS
Spoiler:
Lots of buffer commands:
bufferpokemon
bufferfirstpokemon
bufferitem
bufferattack
All of the previous commands have two parameters, the first of which is the buffer number and the second one is either the pokemon number or item number or attack number. Bufferfirstpokemon only needs the buffer number cause it already knows that it's buffering the first pokemon in the player's party. The buffer number can be 0x1 or 0x2 or 0x3. But what does a buffer do. Well lets say you buffer a pokemon to buffer 1, then if you use [buffer1] in a message it'll appear as that pokemon's name. 0x1 stands for [buffer1] and 0x2 stands for [buffer2]
and 0x3 stands for [buffer3]. I don't know if there are any more buffers but try them.
So the commands look like:
bufferpokemon 0x<buffer number> 0x<pokemon number>
bufferfirstpokemon 0x<buffer number>
bufferitem 0x<buffer number> 0x<item number>
bufferattack 0x<buffer number> 0x<attack number>
OH and all the above have to be in hex.
OK I haven't given you a list of attacks so here it is:
Spoiler:
NONE 0x0
POUND 0x1
KARATECHOP 0x2
DOUBLESLAP 0x3
COMETPUNCH 0x4
MEGAPUNCH 0x5
PAYDAY 0x6
FIREPUNCH 0x7
ICEPUNCH 0x8
THUNDERPUNCH 0x9
SCRATCH 0xA
VICEGRIP 0xB
GUILLOTINE 0xC
RAZORWIND 0xD
SWORDSDANCE 0xE
CUT 0xF
GUST 0x10
WINGATTACK 0x11
WHIRLWIND 0x12
FLY 0x13
BIND 0x14
SLAM 0x15
VINEWHIP 0x16
STOMP 0x17
DOUBLEKICK 0x18
MEGAKICK 0x19
JUMPKICK 0x1A
ROLLINGKICK 0x1B
SANDATTACK 0x1C
HEADBUTT 0x1D
HORNATTACK 0x1E
FURYATTACK 0x1F
HORNDRILL 0x20
TACKLE 0x21
BODYSLAM 0x22
WRAP 0x23
TAKEDOWN 0x24
THRASH 0x25
DOUBLEEDGE 0x26
TAILWHIP 0x27
POISONSTING 0x28
TWINEEDLE 0x29
PINMISSILE 0x2A
LEER 0x2B
BITE 0x2C
GROWL 0x2D
ROAR 0x2E
SING 0x2F
SUPERSONIC 0x30
SONICBOOM 0x31
DISABLE 0x32
ACID 0x33
EMBER 0x34
FLAMETHROWER 0x35
MIST 0x36
WATERGUN 0x37
HYDROPUMP 0x38
SURF 0x39
ICEBEAM 0x3A
BLIZZARD 0x3B
PSYBEAM 0x3C
BUBBLEBEAM 0x3D
AURORABEAM 0x3E
HYPERBEAM 0x3F
PECK 0x40
DRILLPECK 0x41
SUBMISSION 0x42
LOWKICK 0x43
COUNTER 0x44
SEISMICTOSS 0x45
STRENGTH 0x46
ABSORB 0x47
MEGADRAIN 0x48
LEECHSEED 0x49
GROWTH 0x4A
RAZORLEAF 0x4B
SOLARBEAM 0x4C
POISONPOWDER 0x4D
STUNSPORE 0x4E
SLEEPPOWDER 0x4F
PETALDANCE 0x50
STRINGSHOT 0x51
DRAGONRAGE 0x52
FIRESPIN 0x53
THUNDERSHOCK 0x54
THUNDERBOLT 0x55
THUNDERWAVE 0x56
THUNDER 0x57
ROCKTHROW 0x58
EARTHQUAKE 0x59
FISSURE 0x5A
DIG 0x5B
TOXIC 0x5C
CONFUSION 0x5D
PSYCHIC 0x5E
HYPNOSIS 0x5F
MEDITATE 0x60
AGILITY 0x61
QUICKATTACK 0x62
RAGE 0x63
TELEPORT 0x64
NIGHTSHADE 0x65
MIMIC 0x66
SCREECH 0x67
DOUBLETEAM 0x68
RECOVER 0x69
HARDEN 0x6A
MINIMIZE 0x6B
SMOKESCREEN 0x6C
CONFUSERAY 0x6D
WITHDRAW 0x6E
DEFENSECURL 0x6F
BARRIER 0x70
LIGHTSCREEN 0x71
HAZE 0x72
REFLECT 0x73
FOCUSENERGY 0x74
BIDE 0x75
METRONOME 0x76
MIRRORMOVE 0x77
SELFDESTRUCT 0x78
EGGBOMB 0x79
LICK 0x7A
SMOG 0x7B
SLUDGE 0x7C
BONECLUB 0x7D
FIREBLAST 0x7E
WATERFALL 0x7F
CLAMP 0x80
SWIFT 0x81
SKULLBASH 0x82
SPIKECANNON 0x83
CONSTRICT 0x84
AMNESIA 0x85
KINESIS 0x86
SOFTBOILED 0x87
HIJUMPKICK 0x88
GLARE 0x89
DREAMEATER 0x8A
POISONGAS 0x8B
BARRAGE 0x8C
LEECHLIFE 0x8D
LOVELYKISS 0x8E
SKYATTACK 0x8F
TRANSFORM 0x90
BUBBLE 0x91
DIZZYPUNCH 0x92
SPORE 0x93
FLASH 0x94
PSYWAVE 0x95
SPLASH 0x96
ACIDARMOR 0x97
CRABHAMMER 0x98
EXPLOSION 0x99
FURYSWIPES 0x9A
BONEMERANG 0x9B
REST 0x9C
ROCKSLIDE 0x9D
HYPERFANG 0x9E
SHARPEN 0x9F
CONVERSION 0xA0
TRIATTACK 0xA1
SUPERFANG 0xA2
SLASH 0xA3
SUBSTITUTE 0xA4
STRUGGLE 0xA5
SKETCH 0xA6
TRIPLEKICK 0xA7
THIEF 0xA8
SPIDERWEB 0xA9
MINDREADER 0xAA
NIGHTMARE 0xAB
FLAMEWHEEL 0xAC
SNORE 0xAD
CURSE 0xAE
FLAIL 0xAF
CONVERSION2 0xB0
AEROBLAST 0xB1
COTTONSPORE 0xB2
REVERSAL 0xB3
SPITE 0xB4
POWDERSNOW 0xB5
PROTECT 0xB6
MACHPUNCH 0xB7
SCARYFACE 0xB8
FAINTATTACK 0xB9
SWEETKISS 0xBA
BELLYDRUM 0xBB
SLUDGEBOMB 0xBC
MUDSLAP 0xBD
OCTAZOOKA 0xBE
SPIKES 0xBF
ZAPCANNON 0xC0
FORESIGHT 0xC1
DESTINYBOND 0xC2
PERISHSONG 0xC3
ICYWIND 0xC4
DETECT 0xC5
BONERUSH 0xC6
LOCKON 0xC7
OUTRAGE 0xC8
SANDSTORM 0xC9
GIGADRAIN 0xCA
ENDURE 0xCB
CHARM 0xCC
ROLLOUT 0xCD
FALSESWIPE 0xCE
SWAGGER 0xCF
MILKDRINK 0xD0
SPARK 0xD1
FURYCUTTER 0xD2
STEELWING 0xD3
MEANLOOK 0xD4
ATTRACT 0xD5
SLEEPTALK 0xD6
HEALBELL 0xD7
RETURN 0xD8
PRESENT 0xD9
FRUSTRATION 0xDA
SAFEGUARD 0xDB
PAINSPLIT 0xDC
SACREDFIRE 0xDD
MAGNITUDE 0xDE
DYNAMICPUNCH 0xDF
MEGAHORN 0xE0
DRAGONBREATH 0xE1
BATONPASS 0xE2
ENCORE 0xE3
PURSUIT 0xE4
RAPIDSPIN 0xE5
SWEETSCENT 0xE6
IRONTAIL 0xE7
METALCLAW 0xE8
VITALTHROW 0xE9
MORNINGSUN 0xEA
SYNTHESIS 0xEB
MOONLIGHT 0xEC
HIDDENPOWER 0xED
CROSSCHOP 0xEE
TWISTER 0xEF
RAINDANCE 0xF0
SUNNYDAY 0xF1
CRUNCH 0xF2
MIRRORCOAT 0xF3
PSYCHUP 0xF4
EXTREMESPEED 0xF5
ANCIENTPOWER 0xF6
SHADOWBALL 0xF7
FUTURESIGHT 0xF8
ROCKSMASH 0xF9
WHIRLPOOL 0xFA
BEATUP 0xFB
FAKEOUT 0xFC
UPROAR 0xFD
STOCKPILE 0xFE
SPITUP 0xFF
SWALLOW 0x100
HEATWAVE 0x101
HAIL 0x102
TORMENT 0x103
FLATTER 0x104
WILLOWISP 0x105
MEMENTO 0x106
FACADE 0x107
FOCUSPUNCH 0x108
SMELLINGSALT 0x109
FOLLOWME 0x10A
NATUREPOWER 0x10B
CHARGE 0x10C
TAUNT 0x10D
HELPINGHAND 0x10E
TRICK 0x10F
ROLEPLAY 0x110
WISH 0x111
ASSIST 0x112
INGRAIN 0x113
SUPERPOWER 0x114
MAGICCOAT 0x115
RECYCLE 0x116
REVENGE 0x117
BRICKBREAK 0x118
YAWN 0x119
KNOCKOFF 0x11A
ENDEAVOR 0x11B
ERUPTION 0x11C
SKILLSWAP 0x11D
IMPRISON 0x11E
REFRESH 0x11F
GRUDGE 0x120
SNATCH 0x121
SECRETPOWER 0x122
DIVE 0x123
ARMTHRUST 0x124
CAMOUFLAGE 0x125
TAILGLOW 0x126
LUSTERPURGE 0x127
MISTBALL 0x128
FEATHERDANCE 0x129
TEETERDANCE 0x12A
BLAZEKICK 0x12B
MUDSPORT 0x12C
ICEBALL 0x12D
NEEDLEARM 0x12E
SLACKOFF 0x12F
HYPERVOICE 0x130
POISONFANG 0x131
CRUSHCLAW 0x132
BLASTBURN 0x133
HYDROCANNON 0x134
METEORMASH 0x135
ASTONISH 0x136
WEATHERBALL 0x137
AROMATHERAPY 0x138
FAKETEARS 0x139
AIRCUTTER 0x13A
OVERHEAT 0x13B
ODORSLEUTH 0x13C
ROCKTOMB 0x13D
SILVERWIND 0x13E
METALSOUND 0x13F
GRASSWHISTLE 0x140
TICKLE 0x141
COSMICPOWER 0x142
WATERSPOUT 0x143
SIGNALBEAM 0x144
SHADOWPUNCH 0x145
EXTRASENSORY 0x146
SKYUPPERCUT 0x147
SANDTOMB 0x148
SHEERCOLD 0x149
MUDDYWATER 0x14A
BULLETSEED 0x14B
AERIALACE 0x14C
ICICLESPEAR 0x14D
IRONDEFENSE 0x14E
BLOCK 0x14F
HOWL 0x150
DRAGONCLAW 0x151
FRENZYPLANT 0x152
BULKUP 0x153
BOUNCE 0x154
MUDSHOT 0x155
POISONTAIL 0x156
COVET 0x157
VOLTTACKLE 0x158
MAGICALLEAF 0x159
WATERSPORT 0x15A
CALMMIND 0x15B
LEAFBLADE 0x15C
DRAGONDANCE 0x15D
ROCKBLAST 0x15E
SHOCKWAVE 0x15F
WATERPULSE 0x160
DOOMDESIRE 0x161
PSYCHOBOOST 0x162
POUND 0x1
KARATECHOP 0x2
DOUBLESLAP 0x3
COMETPUNCH 0x4
MEGAPUNCH 0x5
PAYDAY 0x6
FIREPUNCH 0x7
ICEPUNCH 0x8
THUNDERPUNCH 0x9
SCRATCH 0xA
VICEGRIP 0xB
GUILLOTINE 0xC
RAZORWIND 0xD
SWORDSDANCE 0xE
CUT 0xF
GUST 0x10
WINGATTACK 0x11
WHIRLWIND 0x12
FLY 0x13
BIND 0x14
SLAM 0x15
VINEWHIP 0x16
STOMP 0x17
DOUBLEKICK 0x18
MEGAKICK 0x19
JUMPKICK 0x1A
ROLLINGKICK 0x1B
SANDATTACK 0x1C
HEADBUTT 0x1D
HORNATTACK 0x1E
FURYATTACK 0x1F
HORNDRILL 0x20
TACKLE 0x21
BODYSLAM 0x22
WRAP 0x23
TAKEDOWN 0x24
THRASH 0x25
DOUBLEEDGE 0x26
TAILWHIP 0x27
POISONSTING 0x28
TWINEEDLE 0x29
PINMISSILE 0x2A
LEER 0x2B
BITE 0x2C
GROWL 0x2D
ROAR 0x2E
SING 0x2F
SUPERSONIC 0x30
SONICBOOM 0x31
DISABLE 0x32
ACID 0x33
EMBER 0x34
FLAMETHROWER 0x35
MIST 0x36
WATERGUN 0x37
HYDROPUMP 0x38
SURF 0x39
ICEBEAM 0x3A
BLIZZARD 0x3B
PSYBEAM 0x3C
BUBBLEBEAM 0x3D
AURORABEAM 0x3E
HYPERBEAM 0x3F
PECK 0x40
DRILLPECK 0x41
SUBMISSION 0x42
LOWKICK 0x43
COUNTER 0x44
SEISMICTOSS 0x45
STRENGTH 0x46
ABSORB 0x47
MEGADRAIN 0x48
LEECHSEED 0x49
GROWTH 0x4A
RAZORLEAF 0x4B
SOLARBEAM 0x4C
POISONPOWDER 0x4D
STUNSPORE 0x4E
SLEEPPOWDER 0x4F
PETALDANCE 0x50
STRINGSHOT 0x51
DRAGONRAGE 0x52
FIRESPIN 0x53
THUNDERSHOCK 0x54
THUNDERBOLT 0x55
THUNDERWAVE 0x56
THUNDER 0x57
ROCKTHROW 0x58
EARTHQUAKE 0x59
FISSURE 0x5A
DIG 0x5B
TOXIC 0x5C
CONFUSION 0x5D
PSYCHIC 0x5E
HYPNOSIS 0x5F
MEDITATE 0x60
AGILITY 0x61
QUICKATTACK 0x62
RAGE 0x63
TELEPORT 0x64
NIGHTSHADE 0x65
MIMIC 0x66
SCREECH 0x67
DOUBLETEAM 0x68
RECOVER 0x69
HARDEN 0x6A
MINIMIZE 0x6B
SMOKESCREEN 0x6C
CONFUSERAY 0x6D
WITHDRAW 0x6E
DEFENSECURL 0x6F
BARRIER 0x70
LIGHTSCREEN 0x71
HAZE 0x72
REFLECT 0x73
FOCUSENERGY 0x74
BIDE 0x75
METRONOME 0x76
MIRRORMOVE 0x77
SELFDESTRUCT 0x78
EGGBOMB 0x79
LICK 0x7A
SMOG 0x7B
SLUDGE 0x7C
BONECLUB 0x7D
FIREBLAST 0x7E
WATERFALL 0x7F
CLAMP 0x80
SWIFT 0x81
SKULLBASH 0x82
SPIKECANNON 0x83
CONSTRICT 0x84
AMNESIA 0x85
KINESIS 0x86
SOFTBOILED 0x87
HIJUMPKICK 0x88
GLARE 0x89
DREAMEATER 0x8A
POISONGAS 0x8B
BARRAGE 0x8C
LEECHLIFE 0x8D
LOVELYKISS 0x8E
SKYATTACK 0x8F
TRANSFORM 0x90
BUBBLE 0x91
DIZZYPUNCH 0x92
SPORE 0x93
FLASH 0x94
PSYWAVE 0x95
SPLASH 0x96
ACIDARMOR 0x97
CRABHAMMER 0x98
EXPLOSION 0x99
FURYSWIPES 0x9A
BONEMERANG 0x9B
REST 0x9C
ROCKSLIDE 0x9D
HYPERFANG 0x9E
SHARPEN 0x9F
CONVERSION 0xA0
TRIATTACK 0xA1
SUPERFANG 0xA2
SLASH 0xA3
SUBSTITUTE 0xA4
STRUGGLE 0xA5
SKETCH 0xA6
TRIPLEKICK 0xA7
THIEF 0xA8
SPIDERWEB 0xA9
MINDREADER 0xAA
NIGHTMARE 0xAB
FLAMEWHEEL 0xAC
SNORE 0xAD
CURSE 0xAE
FLAIL 0xAF
CONVERSION2 0xB0
AEROBLAST 0xB1
COTTONSPORE 0xB2
REVERSAL 0xB3
SPITE 0xB4
POWDERSNOW 0xB5
PROTECT 0xB6
MACHPUNCH 0xB7
SCARYFACE 0xB8
FAINTATTACK 0xB9
SWEETKISS 0xBA
BELLYDRUM 0xBB
SLUDGEBOMB 0xBC
MUDSLAP 0xBD
OCTAZOOKA 0xBE
SPIKES 0xBF
ZAPCANNON 0xC0
FORESIGHT 0xC1
DESTINYBOND 0xC2
PERISHSONG 0xC3
ICYWIND 0xC4
DETECT 0xC5
BONERUSH 0xC6
LOCKON 0xC7
OUTRAGE 0xC8
SANDSTORM 0xC9
GIGADRAIN 0xCA
ENDURE 0xCB
CHARM 0xCC
ROLLOUT 0xCD
FALSESWIPE 0xCE
SWAGGER 0xCF
MILKDRINK 0xD0
SPARK 0xD1
FURYCUTTER 0xD2
STEELWING 0xD3
MEANLOOK 0xD4
ATTRACT 0xD5
SLEEPTALK 0xD6
HEALBELL 0xD7
RETURN 0xD8
PRESENT 0xD9
FRUSTRATION 0xDA
SAFEGUARD 0xDB
PAINSPLIT 0xDC
SACREDFIRE 0xDD
MAGNITUDE 0xDE
DYNAMICPUNCH 0xDF
MEGAHORN 0xE0
DRAGONBREATH 0xE1
BATONPASS 0xE2
ENCORE 0xE3
PURSUIT 0xE4
RAPIDSPIN 0xE5
SWEETSCENT 0xE6
IRONTAIL 0xE7
METALCLAW 0xE8
VITALTHROW 0xE9
MORNINGSUN 0xEA
SYNTHESIS 0xEB
MOONLIGHT 0xEC
HIDDENPOWER 0xED
CROSSCHOP 0xEE
TWISTER 0xEF
RAINDANCE 0xF0
SUNNYDAY 0xF1
CRUNCH 0xF2
MIRRORCOAT 0xF3
PSYCHUP 0xF4
EXTREMESPEED 0xF5
ANCIENTPOWER 0xF6
SHADOWBALL 0xF7
FUTURESIGHT 0xF8
ROCKSMASH 0xF9
WHIRLPOOL 0xFA
BEATUP 0xFB
FAKEOUT 0xFC
UPROAR 0xFD
STOCKPILE 0xFE
SPITUP 0xFF
SWALLOW 0x100
HEATWAVE 0x101
HAIL 0x102
TORMENT 0x103
FLATTER 0x104
WILLOWISP 0x105
MEMENTO 0x106
FACADE 0x107
FOCUSPUNCH 0x108
SMELLINGSALT 0x109
FOLLOWME 0x10A
NATUREPOWER 0x10B
CHARGE 0x10C
TAUNT 0x10D
HELPINGHAND 0x10E
TRICK 0x10F
ROLEPLAY 0x110
WISH 0x111
ASSIST 0x112
INGRAIN 0x113
SUPERPOWER 0x114
MAGICCOAT 0x115
RECYCLE 0x116
REVENGE 0x117
BRICKBREAK 0x118
YAWN 0x119
KNOCKOFF 0x11A
ENDEAVOR 0x11B
ERUPTION 0x11C
SKILLSWAP 0x11D
IMPRISON 0x11E
REFRESH 0x11F
GRUDGE 0x120
SNATCH 0x121
SECRETPOWER 0x122
DIVE 0x123
ARMTHRUST 0x124
CAMOUFLAGE 0x125
TAILGLOW 0x126
LUSTERPURGE 0x127
MISTBALL 0x128
FEATHERDANCE 0x129
TEETERDANCE 0x12A
BLAZEKICK 0x12B
MUDSPORT 0x12C
ICEBALL 0x12D
NEEDLEARM 0x12E
SLACKOFF 0x12F
HYPERVOICE 0x130
POISONFANG 0x131
CRUSHCLAW 0x132
BLASTBURN 0x133
HYDROCANNON 0x134
METEORMASH 0x135
ASTONISH 0x136
WEATHERBALL 0x137
AROMATHERAPY 0x138
FAKETEARS 0x139
AIRCUTTER 0x13A
OVERHEAT 0x13B
ODORSLEUTH 0x13C
ROCKTOMB 0x13D
SILVERWIND 0x13E
METALSOUND 0x13F
GRASSWHISTLE 0x140
TICKLE 0x141
COSMICPOWER 0x142
WATERSPOUT 0x143
SIGNALBEAM 0x144
SHADOWPUNCH 0x145
EXTRASENSORY 0x146
SKYUPPERCUT 0x147
SANDTOMB 0x148
SHEERCOLD 0x149
MUDDYWATER 0x14A
BULLETSEED 0x14B
AERIALACE 0x14C
ICICLESPEAR 0x14D
IRONDEFENSE 0x14E
BLOCK 0x14F
HOWL 0x150
DRAGONCLAW 0x151
FRENZYPLANT 0x152
BULKUP 0x153
BOUNCE 0x154
MUDSHOT 0x155
POISONTAIL 0x156
COVET 0x157
VOLTTACKLE 0x158
MAGICALLEAF 0x159
WATERSPORT 0x15A
CALMMIND 0x15B
LEAFBLADE 0x15C
DRAGONDANCE 0x15D
ROCKBLAST 0x15E
SHOCKWAVE 0x15F
WATERPULSE 0x160
DOOMDESIRE 0x161
PSYCHOBOOST 0x162
20- SETTING TILES
Spoiler:
Ok one new command:
setmaptile 0x<X coordinate> 0x<Y coordinate> 0x<tile number> 0x<if passable>
This commands sets the tile at the mentioned coordinates to be the tile mentioned in the third parameter and the last one can be 0 for the tile to be passable and 1 for it to be blocked.
But what's the tile number. Well in advance map, hover the mouse above the tile and in the bottom left corner something like Block: XX Offset: YY should appear. The XX is the tile number. Remember the coordinates have to be in hex.
21- DOORS
Spoiler:
New commands:
setdooropened
setdoorclosed
doorchange
OK the first two only need two parameters which are the X Y coordinates in order.
doorchange has to be used after both these commands for there effects to take place.
Form: setdooropened 0x<X coordinate> 0x<Y coordinate>
Form: setdoorclosed 0x<X coordinate> 0x<Y coordinate>
Form: doorchange
All in hex.
22- RANDOMS
Spoiler:
One new command:
random 0x<value>
The value has to be in hex and the random command generates a value between zero and the mentioned value and you could use the compare and if commands after it to give random pokemon and do other cool stuff. OH and the generated value is assigned to the variable 800D, that's how you can use the compare and if commands.
PART 10 : HEADER EVENTS
Spoiler:
OK people this PART was recommended to me by Orinjmate. So if any of you have any more recommendations, please tell me, and I'll post a tutorial if I know about the subject and if it makes sence to make a tutorial for that subject, and Orinjmate also recommended to add a couple important tools to the toolbox so I added a toolbox with those tools under this part of the tutorial. OK here we go:
OK here I will explain what you can do in the header tab in advance map, there are a couple things you can do here:
1- In the name section, you can see that there are two parts one on the left, here you can choose from a list of maps, and once you save and exit then re-enter advance map, the map you were editing will be in the folder of the map you chose from the dropdown list. Under that you can choose something I honestly have no idea about. Open it and think. Then there's the part on the left that displays the maps name, change this and hit "change name" and all maps in that folder will have the name you entered.
Here's an image from advance map:
![[PokeCommunity.com] PEDRO12's EVERYTHING TUTORIAL PART 2 [PokeCommunity.com] PEDRO12's EVERYTHING TUTORIAL PART 2](https://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs041.snc4/34436_115113445215360_100001501165973_113191_8344090_n.jpg)
2- Under Map Options, you can choose a music from the dropdown list and that music will play in the map. The dropdown list called cave, here you can choose wether this map is normal or dark, and wether flash is usable or not. Under weather you can change the weather of the map. Under type you can change the typw of the map as in choose from city or route or underwater, and so on. Always choose the right one here just as a precaution cause I honestly have no idea what difference it makes. And the fight type thingy, just keep that random.
3-Under Map Script you can edit the level scripts of the map, there's a Level script tutorial somewhere in this forum. Read It.
4-Under tilesets you can change the tilesets of this map, then hit change tileset.
5-Under Map Dimensions you can change the width and height of your map, and then hit change dimensions.
OH and you can hit ctrl+H to enter Advance Header veiw, but I've never used this so i have no idea how. The only thing I know how to do here is how to change the bank # and map #, you can see the boxes, just fill them in with the bank and map #s you want then hit save.
PART 11 : POC and Movement Editor Tutorial
Spoiler:
These tools were made by my deer friend ShadowMrk:
Tool 1 POC (Palette Order Changer)
LINK: https://www.4shared.com/file/_qopsd4S/Palette_Editor.html
What it does: This tools is used to change the order of colors in a palette without editting the image, this makes the job of tile inerters and pokemon sprite inserters a lot easier. Just hit file --> open, browse for the bitmap, and in the first box, type in the number of the color you want to switch, ranging from 0 to 15, and in the second box, the number of the color you want to switch it with, and hit switch. The other function of openning a certain bitmap from a rom at a certain offet is still in development.
Tool 2 Movement Editor
LINK: https://www.4shared.com/file/W8et3ajg/MOVEMENT_EDITOR.html
What it does: Instead of having to type the number of the movement that scripters want, this program inserts the movement automatically, so instead of typing
and when you hit compile, a list of the pointers and their offsets appear, click on the pointer you want to insert movements, and hit copy (do not close this window yet if you want to edit anymore pointers), now open movement editor, open the rom, paste the offset in the box and open it, now choose the movement you want from the list, and hit add movement and so on untill all movements are added (make sure the last one is end), now hit save, and you can do this for the rest of the pointers you want to edit.....thank you ShadowMrk....
Tool 1 POC (Palette Order Changer)
Spoiler:
LINK: https://www.4shared.com/file/_qopsd4S/Palette_Editor.html
What it does: This tools is used to change the order of colors in a palette without editting the image, this makes the job of tile inerters and pokemon sprite inserters a lot easier. Just hit file --> open, browse for the bitmap, and in the first box, type in the number of the color you want to switch, ranging from 0 to 15, and in the second box, the number of the color you want to switch it with, and hit switch. The other function of openning a certain bitmap from a rom at a certain offet is still in development.
Tool 2 Movement Editor
Spoiler:
LINK: https://www.4shared.com/file/W8et3ajg/MOVEMENT_EDITOR.html
What it does: Instead of having to type the number of the movement that scripters want, this program inserts the movement automatically, so instead of typing
You can type...
applymovement 0x<people number> @move1
...
#org @move1
#raw 0x13
#raw 0x13
#raw 0x13
#raw 0xFE
...
applymovement 0x<people number> @move1
...
#org @move1
and when you hit compile, a list of the pointers and their offsets appear, click on the pointer you want to insert movements, and hit copy (do not close this window yet if you want to edit anymore pointers), now open movement editor, open the rom, paste the offset in the box and open it, now choose the movement you want from the list, and hit add movement and so on untill all movements are added (make sure the last one is end), now hit save, and you can do this for the rest of the pointers you want to edit.....thank you ShadowMrk....
Here's the link to toolbox 2:
https://www.4shared.com/file/bLqMAT6q/TOOLBOX_2.html
CLOSING WORD
OK guys, we're done. MY GOD that was exhausting. I have been writing this tutorial for days. GOD. I am tired. I don't know if other people do this, but I wrote it in NOTEPAD than pasted it here, cause it would've been weird to type it in directly. I hope this tutorial helped. If you have any questions please PM or VM me or post your question here. I won't be logging in a lot, so it might take a couple days to answer, but it'll still work. And if I wrote anything wrong tell me please, cause it's a long tutorial and there's no way it's all right. And if you have any major subjects you want me to add to the tutorial, tell me too, and if i know how I'll post it. Bye. And happy hacking.
Last edited: