Sign Up
Romhack.me connects you to ROM Hackers around the world.
Search all tutorials.
PEDRO12's Everything Pokémon Tutorial

PEDRO12's Everything Pokémon Tutorial

Category:
Posted By: On August 21, 2012
Comments: 11
Views: 43803
5 Ratings

OK guys, here i will explain everything I currently know about hacking. I will explain according to the following "Contents List" which will also be ubdated everytime I add something to the tutorial:
 
1- Mapping
2- Movement Permissions
3- Wild Pokemon Editting
4- Tile Inserting
5- OW Editting
6- Inserting New Pokemon
7- Inserting New People Sprites
8- Advance Map Events
9- Scripting (Beginner's Scripting to Advanced Scripting)
10- Header Stuff (recommended by Orinjmate)
11- POC and Movement Editor Tutorial
 
Here are the tools I will use for this tutorial:
 
1-Advance Map
2-XSE (extreme script editor)
3-MS Paint
4-Infran View
5-NSE
6-UNLZ GBA
7-FSF
8-Advanced Pokemon Sprite Editor
9-A-Trainer
 
CLICKHERE to download my toolbox with all the above tools except of course MS Paint.
 
PART 1 : MAPPING
 
 
Mapping is the first main part of hacking, along with scripting, and it is, by definition, using different tiles (such as trees and grass and houses and cave walls), which represent everything you see durring playing the game, to draw maps mainly made up of routes, towns, cities, caves...... to make up the graphical part of the game in which the player will move around. Now, mapping itself is devided into four main parts:
 
A- Drawing Maps
B- Making Connections Between Different Maps
C- Making New Maps
D- Movement Permissions
E- Wild Pokemon Editting
 
A-Drawing Maps
 
 
First you have to open your ROM in Advance Map, you can do this by clicking the button under the file menu, and browsing for your ROM. Here it is:

Next you have to open the map you want to edit, but first you should change the way your maps are organized, you can do this by clicking here:

And choosing " sort by map name "
Then double click "From Header" and double click the map file you want to edit, and choose the map from that file. To explain more, From Header is the file that contains all the main maps of the game, and in it, each city's and route's maps are organized in files named after that city or route.(yeah that means that each city or route has more than one map). WHY ??? Cause all houses and buildings in that city or route are considered part of the city, and thus are placed in a folder with it. here's how it looks:

After you've opened your map, you have to start drawing.
To do this, first you have to choose the tile you want to use , now you can do this in three ways. 1-by using either the left mouse button or right mouse button on the tiles in the block set on the right (yeah that long strip of tiles on the right side next to your map). 2-by using the right mouse button to choose from tiles already placed on the map. 3-by holding the control button then holding the right mouse button and dragging the cursor above the tiles you want to use. this method allows you to place multiple tiles with a single click. While you drag the cursor above the tiles while holding control and the right mouse button, a window will appear and it will show the tiles you have selected. Release the mouse button to choose the tiles shown in that window. Then release control and click anywhere on the map to draw that group of tiles.
This is how it looks like:

Now you know how to draw.
OH and if you want to make the map bigger or smaller, go to the header tab, and at the bottom you can edit the width and hight under the title "map dimensions" and you can change the tileset that this map uses by editting the numbers under the title "used tilesets", also in the header tab, and always hit change dimensions and change tilesets to save the changes, but just to be safe, always keep the first tileset 0, and change the second one, otherwise you would get messed up tilesets, except for a few rare maps that have two tilsets where the first isn't 0.
Now lets move on to map connections.

 
B-Making Connections Between Different Maps
 
 
Connections are when to maps are connected without a door, no i don't mean that neither map has a door, I mean that the two maps are just connected without a door being needed to warp from one to another, unlike when a map is connected to a cave, in that case the cave's door takes the player to the next map. No, in this type of connection, two maps are placed next to eachother either horizantaly or vertically depending on your chose. So this is similar to how route 1 and pallet town are connected. In advance map they are two seperate maps connected to eachother, whereas in the game, they seem like a single map to us.
To make connections, press the button with the four arrows icon next to the jigsaw puzzle.
Here it is:

In there you can delete old connections or make new ones. To delete a connection, choose it from the connection number list by clicking the up and down arrows till you find the one you want and hit remove, and to add a connection, hit add, choose the side it connects to, then put the bank number and map number of the map you want it to connect to, then theres the offset. Here i have to explain the Bank and Map and offset. To know the Bank Number of a map, and the map number, open From header and the map file in which your map is, and simply look at it and the full name should appear like so:

The first number in the parenthasis is the bank number of that map and the second number is the map number.
Easy HUH ??
And the offset is how many tiles the connection is delayed right or down depending on what direction the connection is made, if it is made vertically, the offset is delayed to the right, and if it is made horizantaly, the offset is delayed downwards. Experiment with this and you'll understand what I mean.

 
C-Making New Maps
 
 
To make a new map, hit the button with the icon that looks like a house with a sun next to it, here it is:

Choose the map name and dimensions and tilesets then hit OK, but before you start drawing you have to insert it so hit the button that looks like a house with an arrow next to it. Here it is:

Now, hit "create and insert". It should say "succesfully inserted as map X.Y where X is the bank number and Y is the map number. Go to the first folder in "From Header" Find the map you just inserted and go to the header tab and there should be something at the top called name. Click the arrow on the dropdown list on the left and choose the folder you want this map to be in. Then go to file save. The map will only be where you wanted it to be after you close and re-open advance map.

 
OH and here are some notes:
 
 
1- Please people, don't go and make lame nonrealistic hacks, map naturally, lets say you want to make a mountain side, draw the outline of the mountain first, then fix the details and corners and fill in the blanks, and same for trees and forests and shores and, know this, no lakes are sqaured or circled, no mountains are straight no mountains are formed of parallel levels, so when you draw the mountain like we mantioned above, draw the second layer the same way and then place a few rocks randomly around the place. Credits to Neti for teaching me that.
 
 
2- To edit the music of a map go to the header and there should be something like music or song and there choose from the list and always remember you have to save after you choose the music type, and before you change the tab you're currently in, and you can do that by hitting file ---- > save.
 
3- When you go to the connections window, you see those four arrows and buttons that say Dive and Emerge , well if there is a connection fitting the discription of one of these buttons, hit it and you'll go to that area. So in other words, take pallet town and route 1 for instants, pallet town is connected to route 1 upwards, so if you go to the connection window while in pallet town, the up arrow is pressable and if you press it, you'll go to route one. Moreover, I'll explain Dive and Emerge, if you make a dive connection to another map, the way to get there ingame is to to press the a button while above that dark water dive type. So put some of that in the map, and make a dive connection, so if you dive in game it'll take you to the map which this map is "dive connected" to, and you'll land on the same coordinates you were on in the original map, so if you were at X=3 ; Y=6
you'll land in the underwater map at coordinates X=3 ; Y=6. Sweat HUH ??? And same for Emerge but you need to put the white ground thing at which you can emerge, you know which one i'm talking about, make the connection and you'll go to the same coordinates like the dive connection.
 


 
PART 2 : MOVEMENT PERMISSIONS
 
 
 
Well the bad thing about Advance map is that it doesn't know what tiles can be stepped on and which are unpassable. So you'll have to define those yourself. They are called Movement Permissions. So go to the movement permissions tab, and use the left mouse button to choose what tile you want to place from the thin strip on the right. Here's THM10's List of movement permissions :
 
 
0 - Crossing of Level Heights (used for going from 1 level to another)
1 - Obstacle, You cannot pass at all
2 - ??
3 - ??
4 - Height Level 0, used for water and using the HM03 Surf
5 - Height Level 0 Obstacle, you can use '1' as well for this. (cannot pass)
6 - ??
7 - ??
8 - Height Level 1, Used as a level for mountains, etc.
9 - Height Level 1 Obstacle, you can use '1' for this too. (cannot pass)
A - ??
B - ??
C - Height Level 2, The default Level used for basically everything on the main level.
D - Height Level 2 Obstacle, you can use '1' for this too. (cannot pass) [Sign]
E - ??
F - ??
10 - Height Level 3, Used as a level for mountains, etc.
11 - Height Level 3 Obstacle, you can use '1' for this too. (cannot pass)
12 - ??
13 - ??
14 - Height Level 4, Used as a level for mountains, etc.
15 - Height Level 4 Obstacle, you can use '1' for this too. (cannot pass)
16 - ??
17 - ??
18 - Height Level 5, Used as a level for mountains, etc.
19 - Height Level 5 Obstacle, you can use '1' for this too. (cannot pass)
1A - ??
1B - ??
1C - Height Level 6, Used as a level for mountains, etc.
1D - Height Level 6 Obstacle, you can use '1' for this too. (cannot pass)
1E - ??
1F - ??
20 - Height Level 7, Used as a level for mountains, etc.
21 - Height Level 7 Obstacle, you can use '1' for this too. (cannot pass)
22 - ??
23 - ??
24 - Height Level 8, Used as a level for mountains, etc.
25 - Height Level 8 Obstacle, you can use '1' for this too. (cannot pass)
26 - ??
27 - ??
28 - Height Level 9, Used as a level for mountains, etc.
29 - Height Level 9 Obstacle, you can use '1' for this too. (cannot pass)
2A - ??
2B - ??
2C - Height Level 10, Used as a level for mountains, etc.
2D - Height Level 10 Obstacle, you can use '1' for this too. (cannot pass)
2E - ??
2F - ??
30 - Height Level 11, Used as a level for mountains, etc.
31 - Height Level 11 Obstacle, you can use '1' for this too. (cannot pass)
32 - ??
33 - ??
34 - Height Level 12, Used as a level for mountains, etc.
35 - Height Level 12 Obstacle, you can use '1' for this too. (cannot pass)
36 - ??
37 - ??
38 - Height Level 13, Used as a level for mountains, etc.
39 - Height Level 13 Obstacle, you can use '1' for this too. (cannot pass)
3A - ??
3B - ??
3C - The final movement permission, this allows crossing above and below as long as the correct Levels and Tiles are used around it.
 
 
OK I'll explain, as you can see, 1 is an unaccessable area, no way to step in this tile, 4 is level 1 which is used for surf, put this on water and the player will need surf to get past these tiles, but you also put it on water falls and the game will know itself that you need wterfall to cross it. 5 is an obstacel on level 1, so use it on rocks in water, but the obstacles that are for specific levels are usless, just put a 1 on any tile you don't want the player to be able to pass, so i won't be explaining the obstacles, now the list obviously lists heights (C height 2 which is the normal level for grass and blablabla, 10 is height 3, so it's above C, 14 is height 4, above of both 10 and C, and so on, ....). The player can not pass from one level to another, so if a C tile and 10 Tile are right next to each other, you can't pass from C to 10 and Vice Versa. You need the tile 0 to pass from one to another, so use it for stairs and stuff like that. And finally, we have 3C, this is for bridges, it can be passed from above and below, but to pass it from below it has to be a level lower than the level the bridge is at. And to pass over to the other side, both sides of the bridge have to have the same level. So if at the beginning of the bridge, the tile is 10, the tiles at the end have to be 10 too and the tiles at the sides of the bridge, as in outside of the bridge's boundries, the tiles have to be of a lower level than the ones before and after the bridge. So in the previous example where the tiles before and after the bridge were 10, as in level 3, at the sides the tiles would have to be C, as in level 2, or under, if there were, so the bridge is passable from under and above. Of course the bridge itself should be from tiles 3C. Oh and make sure that the back of some buildings is passable, the game will know that the Hero will be behind the building and thus not visible. If you don't understand, try to walk behind a PokeCenter or mart or house and you'll find out what I mean. And its similar for the top of trees.
Here are some pics:
 





 
 
PART 3 : WILD POKEMON EDITTING
 
 
Real easy, go to the map that you want to edit the wild pokemon for. Now if there are no originally placed wild pokemon in that area, click the button saying "Create New Wild Pokemon Data" and choose what type of wild pokemon you want here, hit ok and you can edit this any time by hitting expand, and after you have defined what type of wild pokemon you want, look at the dropdown list and choose which type to edit then in the list below, choose the pokemon and fill in the two boxes, the first of which is the minimum level of the pokemon and the second of which is the maximum level. The more times the pokemon is repeated in that list, the higher the chance of encountering it grows And then there's the encounter ratio, this is how often you encounter pokemon in this type of grass, so if you put the fishing encounter 100 %, you'll encounter a wild pokemon everytime you fish. It's safest to keep this ratio from 7 to 15 maybe in grass and I don't know how much in other places.

 
 
PART 4 : TILE INSERTING
 
 
OK, come on guys, wake up. I know you're sleepy by now, but we've gone too far to quit now. WAKE UP !!!!! OK here we go. Sorry if I don't use too much pics but I'll update later with them. But it should be easy to understand without them. There are four types of tile inserting:
 
1- Replacing old tiles using the same colors.
2- Replacing old tiles using new colors.
3- Inserting new tiles using colors already existing in the game.
4- Inserting new tiles with new colors.
 
1- Replacing Old Tiles Using The Same Colors
 
 
Easiest of all, go to the block editor in advance map, think about the tile you want to replace. You see that dropdown list that says "palette x" where x is a number. Well go through them one by one till you find one that shows your tile in the correct colors, then go to picture ---> save tilset (1 or 2 depending on where your tile is, if you don't understand, tilset 1 is the upper part of the tileset and 2 is the lower part, but you need to know that the tilset under the palette dropdown list is the TILESET, and the one which you choose tiles from in the main advance map window, I'll be calling that Blockset, and that's the strip on the left of the Block Editor window) Here's a pic:

Then Open the tileset in paint, go to the tile, use the eyedroper thing to use any color with in the pic, even if it isn't on the tile itself, and draw a new tile above the one you want to replace, go to the Block Editor, go to picture ----> load tileset (1 or 2 depending on which one you saved) and go to palettes ---> Write palette Changes To ROM. And there you go. But remeber, if your replacing the tile, you have to replace everything having to do with the tile, and only that, don't draw over andything else even if there is a black spot in the middle of the tile, which there usually is, keep it that way unless you're sure that it's part of the tile. OH, and if your tile has black spots, or a missing part....... that's cause you missed something or you used a color not originally in the tileset.

2- Replacing Old Tiles Using New Colors
 
 
OK a little more complicated.
This time, do the same as the old one, find the correct palette for your tile, save the tileset, open in paint, but this time, just to make the job easy, erase any tile not without something having to do with your tile, but you have to know that every tile is 16x16 pixels(which are those small cubes in paint, the smallest that can only be one color), and you delete all tiles with nothing to do with your tile, but even if a tile has a very small part of your tile, keep it. Remember, don't move the tiles around, just edit the parts having to do with your tiles, but don't be confused, usually black is the background color, so you can add a little on the sides to make the tile fatter or maybe thinner, but if all this doesn't fit what you want than you'll have to add new tiles, which is more complex, but easier to get what you want. I'll explain next lesson. Anyways, once your done, make sure that the overall colors of the image now is equal or less than 16 and make sure that you keep black as the background color, then save it and open in Infran Veiw. Here you have to index it. But How ??? BE PATIENT, WHAT'S WRONG WITH YOU GUYS ??? OK, here's how you index images. Go to image ---> decrease color depth. Choose 16 colors. Hit ok. Indexing complete. Again go to image ---> palette ---> export palette. Save it somewhere. Save the image. Go to the Block Editor, and in the drop down list of palettes, go through them one by one till you find one that is not needed, as in if you chooses this palette and no tiles in the tileset under it have there correct colors, this is an unused palette. Find it, choose it, go to palette ---> load current palette from file and choose your palette that you just exported. Now save the tileset in which your tile exists, open in paints, and paste the tiles you drew, and place them where they are supposed to be, in other words, where they were before you editted them. Then go to Block Editor and load the tileset, go to the palette, now you have to learn how to move tiles from the tileset to the blockset. You should know that each 16x16 tile is devided into four 8x8 tiles. Now you have to move each 8x8 tile from the tileset to the block set. You'll know what i mean once you try this. It's kinda hard to explain. I'll try anyway. You choose the 8x8 tile by clicking it in the tileset. You can also X flip and Y flip the 8x8 tiles, you can choose the entire 16x16 tile by holding control then holding the right mouse button and dragging the mouse over the tile and release the mouse button before the control button then release the control button. Now you can place an entire 16x16 tile, but you can't X flip nor Y flip the 16x16 tile. Once you choose what you want to use, click the tile ine the block set at the left, and a 32x16 tile should show above the palette drop down list. The 16x16 tile on the left is the background it shows instead of the black parts of the tile. That's why i told you to keep the black black. HAHA . Anyways the 16x16 tile on the right is the tile above the background. Now the black color will be transparent and you'll be able to see the background where the black is. Oh and before going to another tile you have to hit save so that the changes take place and you'll see the difference. But you have to know that the background color isn't always black. It's the first color in the palette. To veiw the palette go to palette --> show palette editor. But don't change anything or you'll mess up the tiles. So if the background transparency doesn't work, save the tileset and open the tileset in paint and look for a tile with the background color you checked for and use the eyedropper thingy, and take that color and fill the background of your tiles with that color. Then load it back to the Block Editor and go to palette ---> write palette changes to ROM. It should work.

3- Inserting New Tiles Using Colors Already Existing In The Game
 
 
Ok here all you have to do is follow these steps. It should be easy seeing that you should already understand tile inserting:
- Go To the Block Editor, look for the palette you want colors from, save the tileset 2.
- Open in paint.
- Keep the background the same, and draw a tile in the lower part of the tileset but use only the colors present in the tileset.
- Remember the 16x16 rule.
- Move the tiles and place them just under the last tile, as in, at the beginning of that part of the tileset where there's only the background color. Here:

- If you want to add more tiles put either just under the Tiles you just inserted, or just next to them. But you'll understand this once you start moving the 8x8 tiles from the tileset to the blockset.
- Ok now load the tileset into the Block Editor, go to the palette you had just been using, and do the step where you move the 8x8 tiles or whatever method you want to use and move the tiles from the tileset to the black part of the blockset. OH and don't forget to put the background.
DONE !!!

4- Inserting New Tiles With New Colors
 
 
Again just follow these steps and it should work:
- Draw the tile foollowing the 16x16 law.
- Open in infran veiw and index and export palette but make sure that the tiles have 16 or less colors.
- Save the image.
- Go to the block editor.
- Look for an empty palette(as in not used)
- Go to palette ---> load current palette from file.
- Choose the palette you exported earlier.
- Save tileset 2.
- Copy the tiles you drew and paste them right under the end of the last tile...... you should know why by now. If you don't try it. If it works, then you did it right. But if it happens all wrong or it's too hard to move them to the block set, you'll know why I want you to put them in that place.
- Load the tileset to the block editor.
- Go to your palette.
- Move the tiles to the block set.
It should work now !!!!!
If this is too hard to understand, read Cello's tutorial on tile inserting, it has much more images.

 
OH and here's a list of TileSet combos, which I'm not sure for what game they are:
 
0+1=Littleroot/Oldale
0+2=Rustboro/route 104
0+3=Dewford/Battle Tower
0+4=Slateport/Slateport Beach
0+5=TrickHouse/Desert/Some flowers
0+6=Lavaridge/Mt.Chimney
0+7=Fallabor/MeteorFalls/Contest Halls.
0+8=Fortree/TheWeatherInstitute
0+9=Lilycove
0+10=Mossdeep(inc.Rockets)
0+11=Evergrande City
0+12=Pacifidlog/Sky Pillar
0+13=Sootopolis/CaveOfOrigin(entrance+groundon/kyogre fighting grounds outside)
0+14=Battlefrontier
0+15=more Battlefrontier
0+16=???
0+17=Marts/DepartmentStore
0+18=Pokecentre(all floors)
0+19=Caves(all types)
0+20=Pokemon School
0+21=Devon Corp(presidents office)lux furniture
0+22=???
0+23=More meteor falls (good stuff)
0+24=Slateport Museum
0+25=Union Room/Record-MixingRoom
0+26=Slateport SodaPop Shop (on beach)
0+27=Florist on route 104
0+28=Daycare centre
0+29=Slateport Building Docks (generators etc)
0+30=CycleShop/New Mauville
0+31=Moss Cave
0+32=???-Includes quite cool cave bits
0+33=SecretBase/Fortree??
0+34=SeeAbove
0+35=???-Includes quite cool cave bits (like as if you're in space/metal cave)
0+36=More Secret Base-I think
0+37=Brown version of 35
0+38=Inside of truck
0+39=Strange Floor symbols
0+40=ContestHall
0+41=Lilycove Art Museum
0+42=Inside your house
0+43=Prof.Lab
0+44=Underwater
0+45=Petalburg Gym (mats-look like saffron dojo)(gym5)
0+46=Ice floors (sootopolis gym-but can be used for caves...)(gym8)
0+47=More house-like bits
0+48=Game Corner
0+49=Roxanne's Gym (gym1)
0+50=Brawly's Gym (gym2)
0+51=Watson's Gym (gym3)
0+52=Cool warpy things (Flannery's gym (gym4)
0+53=TrickHouse-direction editors
0+54=Fortree gym-probably-(gym6)
0+55=Twins gym (gym7)-mossdeep
0+56=abandoned ship-some good stuff here for ship maps and suchlike
0+57=???
0+58=Elite4+champion
0+59=GameCornerCOllection place (think so)-good stuff for cinema map,red carpet etc.
0+60=Battle Castle or Hall. need confirmation
0+61=more frontier crap
0+62=and some more
0+63=Battle Pike (definitely)
0+64=Battle Something-the place which is in a garden...
0+65=Battle Pyramid -some good stuff here-fire and stuff
0+66=More cave stuff-basically 19 but with colour variations. good stuff here too-ice panels
0+67=??? some odd waiting area
0+68=Slateport/Aqua hideout-submarine area (inc doors)
0+69=Trainer Hill(all floors) good stuff here.
0+70=more good cave stuff additions to set 66
0+71=Battlefrontier record place.i think
0+72=inside of contest halls
0+73=some more house bits
0+74=more union room stuff
7+23=Meteor Falls stuff- in centre of set has red craters- good for fire area???

 
AND as my sweat rather mentally ill friend r0bert once told me, or rather told me to tell you:
 


 
PART 5 : OW INSERTING
 
 
OK, Guys, go have lunch or dinner or whatever and come back fresh and excited to learn. Really long part here.
 
Ok. Here we're gonna learn how to insert overworld sprites or at least replace the ones already in the game with custom ones. OverWorld Sprites, OWs for short, are those little person shapes walking around the map and you can interact with. Like your shape when you're walking around, like the shape of mewtwo when you see him in the cave. Like trainers scaterred all around maps and stuff. YOU SHOULD UNDERSTAND BY NOW. WHAT'S WRONG WITH YOU. YOU KNOW THOSE SMALL THINGS ARE CALLED OWs. OK for this you need NSE. Download it and I'll explain the following topics:
 
•Drawing
•Imports and Exports
•Palette Editing
•Resizing a sprite
 
First open your rom.
 
DRAWING
 
 
Simple, Move through the index to find the OW you want to edit. Click anywhere on the OW and that part in the red box should appear in the canvas. Got to option, grid, canvas, if it isn't already there, cause the grid is important. Choose any color from the palette and start drawing. OH and just as an explanation, the frames are the different forms that this OW takes like looking upwards, walking left BLA BLA BLA. You have to edit those too to fit your OW so that it's a complete OW.
 
IMPORT AND EXPORT / palette EDITTING
 
 
Yeah i'm gonna do both together. First to export, choose the OW and frame and go to file ---> export ---> export bitmap. You can now edit the OW in MS paint, Then to import hit file ---> import ---> import bitmap, and choose the OW. OK Importing and Exporting Done, but why did i do both together. Cause when you draw an OW in MS paint
You can use any colors you want(less than 16) but you'll have to Edit the palette in NSE to fit the colors you used. And you have to do this before importing. How. Well go to edit palette. Now remember, the first color doesn't appear in the game. It's the background color. Transparent. So first off, choose the eyedrop tool in paint choose the background color and go to edit colors. Now hit define custom colors and look at the three boxes labled red, green, and blue. copy those numbers and back to NSE and in the palette editor, click on the first color, and type the same numbers as before in the red,green,and blue boxes and choose add to custom colors and choose it from custom colors and hit ok. The first color you move has to be the background, then you have to move all other colors present in the OW to NSE but they don't have to be in any order. Let each color replace a color that was present in the old palette, untill you're done. Then you can safely import the image.
 
RESIZING OW SPRITES
 
 
Easy again. Go to edit ---> preferances. If the preferance button is gray it means you can't edit this OW's preferances. Ok now you see where it says indexes, change that to "All" and change the width and height and hit save, but the width and height have to be a multiple of 8. Vwalla.
OK we're done with OW editting and we'll get to sprite editting. But if you want more info, read link12552's tutorial on NSE, it is his program after all.
 


 
 
PART 6 : INSERTING NEW POKEMON
 
 
Here I'll teach you an easy 5 step way to insert fakemons or any other 4th generation or fifth generation pokemon.
 
Follow the following step:
 
1- Draw your pokemon or get its sprite and reduse the size of the image to 64 width and 64 hight. You can do this by going to "attributes" in paint, or by pressing Ctrl+A to select the entire image then hit the right mouse button and hit strech and skew in older MS paint and strech the image to 64 width 64 hight, or by again pressing ctrl+A and the right mouse button and hitting resize and enter 64 width and 64 hight in new MS panit like in widows 7. Oh and if the latter doesn't work, you know if you enter the width and the hight automatically changes, just see the one which is different from 64 and calculate how much difference there is between that number and 64 and then go expand the work area manually to fit 64 64. Remember to set a background color that isn't used in the sprite itself.
 
2- (DON'T DO THIS STEP IF YOUR SPRITE IS INDEXED....WHICH IS IN MOST CASES)Save and open the image in infran veiw, hit image ---> decrease color depth, choose 16 colors and hit OK, then again hit image ---> palette ---> edit palette. Now check if the first color to the left is the background of your image, if it is, skip to step 3, if not conitnue here. Now double click the first color to the left and you should see three boxes labelled red, green , and blue. Write down these numbers. Now click cancel and look for the background color between the colors, ad when you find it, double click it and also write down the red blue and green, now replace these red blue and green with the ones you wrote down before and click add to custom colors and choose the color from the custom colors table on the left and hit OK. Now double click the first color to the left and type in the red blu and green you wrote down from the back ground color and hit add to custom colors and choose the color from the custom colors table on the left, and hit OK. If this worked, then the two colors should be switched.
 
3- (IF YOUR SPRITE IS INDEXED...DPN'T DO THIS TOO)Go to file save as and save it somewhere. Now i know it looks weird but don't worry. Now open the original one, not the one you saved in infranveiw, and press ctrl+A then ctrl+c or just copy the whole image. Now close this and open the one you saved in infran veiw and hit ctrl+V or just paste it above the old one. Now hit Save.
 
4- Open Advanced Pokemon Sprite Editor. Open your rom by clicking file open, but not before you choose the rom you're working on in the list next to File. Now once you've chosen the rom and opened it, Choose the pokemon you want to replace with the new. Yeah you kinda have to replace and old pokemon. But you do have 25 free spaces. so you can add 25 new pokemon without replacing old ones, those are from numbers 252 till 276. They look like question marks and can be replaced by pokemon sprites. Now once you've chosen the one you want to edit, hit edit and hit import under the sprite you want to edit. Just edit the ones above and once you've imported them all, and they are by the way sprite, shiny sprite, back sprite, shiny back sprite. So replace them and hit update sprite palette, and if one of the sprites you inserted has wrong colors hit synchorize palettes and if an error appears close it with the X button in the top right corner of that window( the error window not the Pokemon sprite editor window), now if any sprites are weird, import them again then hit update sprite palette then synchorize palettes only if there still is something wrong with them. But remember that if you want to import a new back sprite or any other for any pokemon, you have to do steps 1 2 and 3 again for that sprite. I repeat, any sprite inserted in this program has to have gone through steps 1 2 and 3. So if you want to replace the four sprites for any pokemon you have to repeat the first three steps for each sprite. The back sprite, the shiny back sprite, the sprite, and the shiny sprite. Now hit write to rom.....then find free space......the copy the offset into the box and hit ok.........
 
5- Open YAPE and load your rom and go to the pokemon that was replaced by yours, now you should now, the pokemon is replaced but your here to edit all other things, so change it's name and type and stats and attacks..... Read the YAPE tutorial to know how to do that.
 

 
 
PART 7 : INSERTING NEW PEOPLE SPRITES
 
 
Do the following steps:
 
1- Draw the person making sure that it has width 80 and hight 80 and save it and do the same as steps 2 and 3 in the previous part.
 
2- Go to UNLZ and open the rom and look for the person sprite you want to edit by clicking next and previous. The sprites I am referring to are the sprites of people that appear once you get in a battle.
Now hit import and choose the image, of course the one that went through the steps 2 and 3 of the previous part. Now hit write to rom and make sure "Expot Image" and "Auto Abort if new data is bigger" are checked and press ok. But it gave an error, well theres a hex number made of letters and numbers there, here it is
 

 
memorize that number and in the hex editor in XSE, you know the calculator on the right, choose hex, type in the number, then choose decimal and memorize that number and go to FSF and open the rom and type in the number where it says needed bytes and hit search and then copy after the offset appears, which is that number in the box under search. Now go to UNLZ gba and again hit write to rom and in the image offset box replace that offset with the offset you copied earlier and make sure that at the beginning of the offset you type in as many zeros as you can, it's most likely one or too , but right before the offset younvhace to type in zeros ok so keep pressing zeros until it can't take any more. When you're done the offset should be 8 digits and/or letters. And make sure only "Expot Image" and "Auto Abort if new data is bigger" are checked. Now hit ok and if a window appears saying something changed hit ok again. Now even if this doesn't happen click write to rom again but this time make sure you have only checked "Export palette" and ""Auto Abort if new data is bigger". Click ok and you're done. TEST IT. If it doesn't work you either followed the steps wrong, or the steps are wrong.
 
 
PART 8 : ADVANCE MAP EVENTS
 
 
OK here I'll explain what goes on in the event tab in advance map.
There are four types of events here:
 
1- Warp
2- SignPost
3- Person Event
4- Scripts
 
OK to choose the type of event you want go to the drop down list on the right and choose the event.
 
And to add an event, at the bottom left there soyld be a title saying amount of event and under it, there is the number of each event, as in how many of each event exists, and if you want to add one, raise the value of the one you want to add and click change events, and the event should appear in the top left corner of the mapNow I'll explain every event alone, but you should know that if you want to edit a specific event click it on the map once in the event tab. Oh and press ctrl+Z to switch between event veiw and sprite veiw during witch you will see the sprites of the person events. But remember that only person events can be seen in sprite veiw mode and all can be seen in event veiw mode. OK here I'll give you a pic of each events veiw and explain each one:
 
 
1-WARP
 
 

-ok the X Y positions is where the warp is on the map, don't touch this, just move the tile itself around the map and this wil automatically change itself to fit where the tile is.
-The unknown is well unknown. Just keep it the way it is.
-The to warp number is the number of the waro this warp will take you. Lets say you want the warp to take you to pallet town. Well you have to define which warp in pallet town this warp takes you too. Now to know that warp's number, go to the destination map and click on the warp that you want to arrive at, and under the event type drop down liast, there should be something that says (No.) well thats the number you want, type that into your warps "to warp number" box.
-The map bank and map are the map bank and map numbers of the map you want to arrive at once you go to this warp, Oh and always know that a warp will only work if you place it on a door or something that is supposed to warp. This has to do with the Behavior Byte of the door tile. I don't have to explain those so i won't. Just go to the block editor and look at the list of behavior bytes in the drop down list, or in both and you'll know what i mean. Thats all for warps.

2-SIGNPOSTS
 
 

- you know what the X Y positions are.
- talking level is at what height you can talk to this sign post. you should know about heights from the movement permissions lesson.
-the signpost type means whether its a script, as in does an event or says something that requires you to script. I'll get to that later. But it can also be a hidden item, and if it is a new dropdown list asking what item it is will appear. Now fill that in. Or it could be a secret base , but only for RSE (Ruby Sapphire Emerald for newbies).
-The offset is well, only for scripting matters so i'll get to that in the scripting lesson.
 
3-PERSON EVENT
 
 

-person event no. well we'll call that the people number from now on and it's just used as an ID for it during scripting but you'll understand that in the next and last part of the tutorial which is maybe as big as the whole tutorial so far.
-the picture no. is the OW to use for this person event.
-the unknwon is again unknown, don't touch this.
-the X Y position is known.
-unknown is unknown, don't touch.
-movement type is how this person moves.
-movement is unknown to me for some reason but i doubt it's important. Just keep 0 or experiment.
-unknown is again unknown, don't touch.
-trainer box. Check this and a new trainer will be added to the game and this person is know a trainer and will approach for a battle once you stand in front of him, but it won't work untill you edit the trainer in the trainer editor, A-Trainer.
-unknown is unknown and leave it.
-veiw radius is only important if you checked the trainer box, and its obviously how far ahead the trainer sees.
-the offset and Person ID are for scripting, so leave them for now.
-unknown again, leave it.
 
4-SCRIPTS
 
 

ok a script is a tile that activates an event if stepped on.
-you know what X Y position is.
-unknown isn't unknown this time, this has to be 0003 or the script won't work.
-var number has to be 4050 for the script to work.
-var value and unknown aren't important, just leave them alone.
-offset is for scripting, so I'll explain in the next sector.


 
PART 9 : SCRIPTING
 
 
OK people, I'll start giving lessons according to the the following contents table:
 
1- Intro
2- Description
3- Messages and Locks
4- Items
5- Pokemon Giving
6- Movement
7- Flags
8- Variables
9- Warps
10- Money and Coins
11- Pokepic
12- Specials
13- Songs
14- Sprites
15- Trainer Battles
16- Wild Battles
17- Weather
18- Marts
19- Buffers
20- Setting Tiles
21- Doors
22- Randoms
23- Closing Word
 
1- INTRO
 
OK guys, in this tutorial I'll teach you all about scripting. This is the biggest lesson in the entire tutorial, and it will turn you into an expert at scripting, and you have to know that this tutorial will teach you everything about scripting from scratch and you don't have to have any prior knowledge what so ever.
 
2- DESCRIPTION
 
 
OK, here I'll explain what scripting is and what each script needs to work. First off, scripting is a lot like programming, it's a list of commands, except it has a defined number of commands that make the ROM do specific things like give the hero a pokemon or make an OW move, or start a wild battle, or even change the weather. Now each command, or at least most have parameters. But what are parameters. Well parameters are numbers that the script requires to be placed after it in order for it to work. For example, lets say you use the givepokemon command, well it's parameters are the pokemons number, level, and item to hold, and three buffers. The first three tell the command what pokemon to give and so on, the last three called buffers are there for unknow reasons and should always stay 0x0. But wait, why does it say 0x0 not just 0. Well the "0x" defines a parameter, so each and every parameter used has to have a 0x before the number itself. This is so the game knows that this is a parameter and not part of the command itself. So if the number that has to be placed in the parameters is 5, then it should be written 0x5. Here are commands necessary for almost every script:
 
- #dynamic 0x
- #org @start
- end
 
OK the #dynamic teels the ROM the offset of this script, so instead of . Type in the offset of this script. I'll explain what an offset is. I'll use almost the same comparison used in the original XSE guide. Imagine the ROM as a book, and scripts as paragraphs, and commands as words. Now lets say you read a very good paragraph and told a friend to read it. Well how would you tell that person which paragraph to read. You would tell hime the page number and paragraph number. That's what an offset is. It's an adress for the script to tell the ROM what script to go to once a person event or anything else is activated. To find an offset, you need FSF. Open it and open the ROM and hit search and copy, then come to XSE and type #dyamic 0x. Now if you pressed copy after search in FSF, all you have to do is paste the offset where it says
"". Now we're done. Oh and if you want another offset but don't want to close FSF then open it again, just hit find next and hit copy and paste it for the next script.
 
#org @start is used to start the script. So always start the script with:
 
 
#dynamic 0x
 
#org @start

 
Yes it's better to have a line between these two commands, but don't put a line between any other commands. OH an there are other uses for #org. But I'll get to those is the messages section.
end is to end the script. If you son't use this at the end of a script, the game will go on to other offsets and crash. So use it.
The general composition of a script is:
 
 
#dynamic 0x
 
#org @start
command1
command2
command3 bla bla bla
end

 
of course command 1, 2, and 3 being substituted by real commands.
One more thing, humans use the numerical system right?? Well XSE uses the hexadecimal system which is used to represent number using the 10 digits and the letters A B C D E F. So instead of counting 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 in the numerical system, we count 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B in the hexadecimal system. Now all numbers used in XSE are in the hexadecimal system, so to convert number from the original form to the hex form, use the calcuator on the right and choose decimal, type in the number, then choose hex and it should be converted, and Vice Versa. So lets say we want to use the give pokemon command and give chikorita, which has a number 152, and we want it level 20, and we want it to hold a berry which by the way has a number lets say 1(yeah items are represented by numbers, I'll give you a list of all items and their numbers later). Well first we change the numbers into hex. 152 in hex is 98, 20 in hex is 14, and 1 in hex is still 1. So the command would look like this:
 
 
givepokemon 0x98 0x14 0x1 0x0 0x0 0x0

Again the last three numbers are buffers and should stay 0.
Anyways, one more thing, once you've finished the script, hit open and open the rom, then hit compile, which are both on the tools bar, and then hit copy on the small window that appears, close that window, go to Advance Map and paste the offset in the offset box of the event you want it for. Save and it should work. Here are the Open and Compile button:
 

 

3- MESSAGES AND LOCKS
 
 
OK there are a couple commands for you to learn here:
 
lock
release
lockall
releaseall
facplayer
msgbox
compare
if
 
The first five have no parameters, the lock command locks the player and the person who he is talking to, lockall locks everyone in the map. release releases the player and the person talked to if the lock command has been used, releaseall releases eveyone on the map if the lockall command has been used. faceplayer makes the person you are talking to face you. msgbox makes a message appear on the screen, containing the words or letters you want it to contain. It is written the following way:
 
msgbox @ 0x
 
Ok, you're probably wondering, WHAT??? I'll explain. 0x is the type of message that appears. It can range from 0x2 till 0x6:
 
 
-0x2 This is used for any person's message. It does the lock, faceplayer, and release commands by itself. So if you use this message type, you don't have to put the lock command nor the faceplayer command nor the release command, cause it locks the player, makes the person you are talking to face you, and then releases the player after the script is done. Sweat huh.
 
-0x3 Ok this type is used for signs. It's a message box that appears once you look in its direction. So its for signs. This type does not have a lock, facplayer, and release effect like the previous one, but it's better to not use them cause it's not supposed to lock you.
 
-0x4 This is a normal message, except it doesn't close. The command closeonkeypress must be used after this to make the a button close it. But why would this type be used. Well, lets say you want the game to give you a pokemon. Well isn't the message"player obtained a pokemon" supposed to stay open. Well you use this message box to make that message appear, and you use the type 0x4 making it unclosable. After it you use the closeonkeypress command, but between the two you play the song using a special command, so the box is unclosable till the song is done. There are other uses, but you'll only understand them later on during the advanced part of the tutorial. This message does not have a lock, faceplayer, and release effect by itself.
 
-0x5 This is the yes/no message box. If you use this, a yes no box will appear with the message. But to use this type effectively, you have to know how to make the game do 2 defferent things if the player chooses yes or no. To do this, you have to use two new commands. I'll only tell you how to use them but i won't deeply explain them till the variables section. 0x800D is a variable. Some commands assign numbers to variables. Once a number is assigned to a varaible, the variable is now equal to it. The message of type 0x5 assigns the value one to the variable 0x800D if the player's descision is yes, and the value 0 to the same variable if the player's answer is no. The command compare checks if a certain value is assigned to a certain variable. It is used the following way:
 
compare 0x 0x
The is 800D in this case, and the can be any value, but in this case it can only be 0 or 1 cause those are the only numbers that the message command assigns to the variable 800D. So if the is 1, you're checking for the yes answer, and if it is 0, you're checking for the no answer. OK you know how to check, but how to make it do something else if the answer is yes or no. Here comes in the if command. Right after the compare command, use this command in the following way:
 
if 0x goto @pointer
 
OK the can be 0 or 1. 0 is if the previous command turned out negative, and 1 is if the previous command came out positive, and if the condition is fulfilled, the game will go to another pointer, and if not the game will go on with this script. Read on and you'll know what a pointer is. This message does not have a lock, faceplayer, and release effect by itself.
 
-0x6 This is a normal message box. It's not like a sign message, it isn't a yes no message, and it closes woth the key press. It's the normal message box. This message does not have a lock, faceplayer, and release effect by itself, so if you don't want the player to be able to move, and the guy to face you, and to be able to walk after the script, use them.
 

But just so you know, these commands don't have to be used just on people events. You can use them in the middle of the script on a script tile, so once you step on that tile, and once the script reaches the message command, the message will appear. You'll understand later.
NOW lets get to the pointer. A pointer can also be a parameter of a command. Some commands need pointers. But what is a pointer. The message you want the msgbox command to chow has to be somewhere, so the pointer parametr does just that. In the command, instead of @pointer, write anything you want instead of the pointer, but no two pointers in the game can be the same. So start from 1 and move on till the end of the game. You can use letters too. Also there can be no spaces. So "@super cat" and "@no people" won't work. But @1 and @jojo and @smart and @1001 will work.
 
But how to type in the text. Well after the commands are done, you leave a line after them, then on the next line, tpye in #org @pointer. @pointer being the pointer used in the msgbox command. Then hit enter and and go to tools ---> text adjuster, or just hit ctrl+T, and type in thetext you want in the upper box, hit convert then insert, then close the text adjuster. WHY ?? Because you see how when you hit insert an = sign appears and after it the text and there's a \n or \ or \p. Well you could type those in your self, but the text adjuster will always do a better job. These signs are for moving on to another line. Otherwise the text would go outside the text box and the game would crash.\n simply goes to the next line. \l does the same only if \n was used before it. \p makes the text go on to a new box entirely. Now if you used two msgbox commands in the same script, then you leave a line after the first #org @pointer and do the same as the first, but you use the second msgbox command's pointer. So a script with one msgbox command would look like.
 
 
#dynamic 0x
 
#org @start
lock
faceplayer
msgbox @1 0x6
release
end
 
#org @1
= Hey dude. How are you?\nI would love to see you\lagain.\pCOOL!!!
 

And one with two msgbox commands would look like:
 
 
#dynamic 0x
 
#org @start
lock
faceplayer
msgbox @1 0x6
msgbox @2 0x6
release
end
 
#org @1
= Hey dude. How are you?\nI would love to see you\lagain.\pCOOL!!!
 
#org @2
= Cool HUH?????????????\n????????????????????\l???????????

Oh and you could also replace lock and release with lockall and releaseall, and if you substitute the 0x6 message type with 0x2, the lock, faceplayer, and release commands, don't have to be used. And if you use 0x4, use closeonkeypress for it to close. OH and a pointer in the type 0x5 of a message is the same. It takes the game to the pointer except this time the pointer isn't a message its simply another script with different commands. Same way, after the first script but before the message pointers, type in #org @pointer where the pointer is the one in the if command, and after the #org @pointer, start putting in the commands you want the script to do if it somes to this pointer. But don't forget to place the end command at the end of this script too. Here's how a script with a yes no message box looks like:
 
 
#dynamic 0x
 
#org @start
lock
faceplayer
msgbox @1 0x5
compare 0x800D 0x1
if 0x1 goto @2
msgbox @3 0x6
release
end
 
#org @2
message @4 0x6
release
end
 
#org @1
= Hey are you ASH???
 
#org @3
= OH ok.
 
#org @4
= Sweat.

Oh and you can change the 0x1 in the compare command to 0x0 to make it check for the no answer and if the answer was no, it'll go to the pointer mensioned in the if command, or you can leave the 0x1 in the compare command and change the 0x1 in the if command to 0x0, and thus if the answer was yes, it goes on with the script and goes on to the pointer if the answer was no. Or you can change both to 0x0, and if the answer was no, it goes to the pointer. Remember it's best to keep all script before the message pointers, like the above command, where the #org @2 is before the #org @1 and @3 and @4. Oh and to know what it does, in the above script, the player is asked "Hey are you ASH???" and if he answer's yes, the game goes to the pointer @2 and the message "Sweat." appears and if he answers no, the game continues with the script and the message "OH ok." appears.
 
Ok there are a lot of more stuff.
 
Ok here I'll give you a couple codes. Put this at the beginning of the message, and its effect will take place:
USE THIS COLOR TABLE.
Don't read it now. Wait till you read the other stuff.
..........................................................................
 
Ruby/Sapphire
[transp_rs] 0
[darkgrey_rs] 1
[red_rs] 2
[lightgreen_rs] 3
[blue_rs] 4
[yellow_rs] 5
[cyan_rs] 6
[magenta_rs] 7
[grey_rs] 8
[black_rs] 9
[black2_rs] A
[lightgrey_rs] B
[white_rs] C
[skyblue_rs] D
[darkskyblue_rs] E
[white2_rs] F
 
Fire Red/LeafGreen
[white_fr] 0
[white2_fr] 1
[black_fr] 2
[grey_fr] 3
[red_fr] 4
[orange_fr] 5
[green_fr] 6
[lightgreen_fr] 7
[blue_fr] 8
[lightblue_fr] 9
[white3_fr] A
[lightblue2_fr] B
[cyan_fr] C
[lightblue3_fr] D
[navyblue_fr] E
[darknavyblue_fr] F
 
Emerald
[white_em] 0
[white2_em] 1
[darkgrey_em] 2
[grey_em] 3
[red_em] 4
[orange_em] 5
[green_em] 6
[lightgreen_em] 7
[blue_em] 8
[lightblue_em] 9
[white3_em] A
[white4_em] B
[white5_em] C
[limegreen_em] D
[aqua_em] E
[navy_em] F

OR FOR TRAINER BATTLE TEXT, same use as any other code except these colors only work for trainer battle messages, you'll get what I mean once we reach trainer battle section. Again don't read these now.
 
Ruby/Sapphire
[black_rst] 0
[white_rst] 1
[red_rst] 2
[navy_rst] 3
[lightnavy_rst] 4
[white2_rst] 5
[darkpurple_rst] 6
[lightpurple_rst] 7
[darknavy_rst] 8
[darkgrey_rst] 9
[grey_rst] A
[darkbronze_rst] B
[bronze_rst] C
[darkred_rst] D
[purple_rst] E
[transp_rst] F
 
Fire Red/Leaf Green
[darknavy_frt] 0
[white_frt] 1
[red_frt] 2
[navy_frt] 3
[lightnavy_frt] 4
[white_frt] 5
[purple2_frt] 6
[grey_frt] 7
[darkpurple_frt] 8
[black_frt] 9
[magenta_frt] A
[white2_frt] B
[magenta2_frt] C
[gold_frt] D
[lightgold_frt] E
[darknavy2_frt] F
 
Emerald
[transp_emt] 0
[white_emt] 1
[red_emt] 2
[darknavy_emt] 3
[navy_emt] 4
[white2_emt] 5
[grey_emt] 6
[lightgrey_emt] 7
[darknavy2_emt] 8
[darkgrey_emt] 9
[lightgrey_emt] A
[brown_emt] B
[lightbrown_emt] C
[darkred_emt] D
[purple_emt] E
[transp2_emt] F
 

 
TEXT COLOR EDIT
\c\h01\h0x
x can be one of the above colors(Not Trainer Battle Colors except if it is a trainer battle message).
Use the numbers not the words.
 
BACKGROUND COLOR EDIT
\c\h02\h0x
x can be one of the above colors(Not Trainer Battle Colors except if it is a trainer battle message).
This only fills in behind the text not the entir text box.
SHADOW COLOR EDIT
 
\c\h03\h0x
x can be one of the above colors(Not Trainer Battle Colors except if it is a trainer battle message)
Isn't really visible.
 
BOTH THE TEXT AND BACKGROUN COLOR EDIT
\c\h04\h0x\h0y
x for text.
y for backgroung.
x and y can be one of the above colors(Not Trainer Battle Colors except if it is a trainer battle message).
 
TEXT SIZE
\c\h06\h0x
x can be 0 or 1
0 for small
1 and above for normal.
 
DELAY TEXT
\c\h08\h0x
As x increases so does the delay interval.
 
WAIT FOR KEYPRESS
\c\h09
Makes the text a little delayed before it appears.
 
MOVE TEXT TO RIGHT
\c\h0D\h0x
As x increases so does the movement to the right.
 
PLAY TONE
\c\h10\hxx\hyy
OK how to use this. First go to advance map and look for the song you want to play during this message. The hex should appear on the right. Song hex is yyxx so we flip them and put them in a code shape and putt xx first then yy in the code. Consider the hex of the song to be 12A3. The the code would be \c\h10\hA3\h12
The songs are: (I think the first two are FR and LG and the second 2 are R and S and the final one is Emerald)
 
 
 
RUBY/SAPPHIRE
 
015E=Littleroot Town Test
015F=Gold/Silver - Route 38
0160=Wild Pokemon Defeat
0161=Wild Pokemon Defeat w/Intro
0162=Gym Leader Defeat
0163=Acquired Badge
0164=Crystal - Pokémon Center
0165=Gold/Silver - Saffron City
0166=Crystal - Battle with Legendary Dogs
0167=Route Theme 1
0168=Route Theme 2
0169=Route Theme 3
016A=Petalburg City
016B=Oldale Town, Lavaridge Town
016C=Gym
016D=Surfing
016E=Caves & Darkness(Rusturf Tunnel, Granite Cave, Petalburg Woods, Jagged Pass, Fiery Path, Scorched Slab)
016F=Level Up
0170=Pokemon Healed
0171=Big Victory
0172=Acquired Item
0173=Pokemon Caught
0174=Got TM/HM
0175=Lilycove Museum
0176=Route Theme 4
0177=Slateport Museum(Oceanic Museum)
0178=Evolve Intro
0179=Evolving
017A=Unknown Victory 1
017B=Tuber Encounter
017C=Boy Encounter
017D=A Far-away Place (Shipwreck-Abandoned Ship)
017E=Fortree City
017F=Birch's Lab
0180=Battle Tower
0181=Swimmer Ecounter
0183=Got a Berry
0184=Unknown Victory 2
0185=Unknown Victory 3
0186=Unknown Victory 4
0187=Pay No Attention!
0188=Unknown Victory 1
0189=Beauty Contest 1
018A=Beauty Contest 2
018B=Beauty Contest 3
018C=Beauty Contest 4
018D=Ship Ecounter
018E=Verdanturf Town
018F=Rustboro City, Mauville City, Mossdeep City
0190=Pokemon Center
0191=Route Theme 5
0192=Route Theme 6
0193=Bicycle Ride
0194=PokéMart
0195=Littleroot Town
0196=Sky Pillar, Mt.Chimney
0197=Girl Encounter
0198=Lilycove City
0199=The Sandy Desert
019A=Help Me! (Rescue Birch)
019B=Underwater Dive
019C=Trainer Defeat
019D=Title Screen
019E=Introduction
019F=May's Theme
01A0=Electric Encounter
01A1=Biker Encounter
01A2=Route Theme 7
01A3=Aqua Encounter
01A4=Show Me Around
01A5=Brendan's Theme
01A6=Evergrande City, Link-Zentrale
01A7=Psychic Encounter
01A8=Important Defeat
01A9=Riding the Cable Car
01AA=Game Corner
01AB=Dewford Town
01AC=Safari Zone
01AD=Path to Victory-Victory Road
01AE=Team Magma/Aqua Hideout
01AF=Sailing the Sea (MS Tide)
01B0=Mt.Pyre, Shoal Cave, New Mauville
01B1=Slateport City
01B2=The Fog of Mt. Pyre
01B3=Pokémon Trainer School
01B4=You're the Champ!
01B5=Lavaridge Town, Fallarbor Town
01B6=Desert Ruins, Island Cave, Ancient Tomb
01B7=Important Defeat 2
01B8=Beauty Contest
01B9=Magma Encounter
01BA=The Pokémon!
01BB=The Flood
01BC=The Drought
01BD=Sootopolis City
01BE=Berry Blending Results
01BF=Hall of Fame
01C0=You're Being Watched!
01C1=Kid Encounter
01C2=Elite Four Theme
01C3=Sailor Encounter
01C4=Beauty Contest Lobby (Pokemon Contest)
01C5=What's On TV?
01C6=Unknown Encounter
01C7=Ending Credits
01C8=The End!
01C9=Battle - Wild Pokémon
01CA=Battle - Aqua/Magma
01CB=Battle - Pokémon Trainer
01CC=Battle - Gym Leader
01CD=Battle - Champion Steven
01CE=Battle - Regirock, Regice and Registeel
01CF=Battle - Legendary Pokémon
01D0=Battle - Rival
01D1=Battle - Elite Four
01D2=Battle - Team Leader
01D3=Gold/Silver - Team Rocket (US Ruby Version Only)
 
FIRE RED/ LEAF GREEN(I THINK)
 
0100=Healing (RS)
0101=Level Up
0107=Evolution Start
0108=Evolution/Safari
0109=Battle 1
010A=Battle 2
010C=Fanfare 1
010D=Fanfare 2
010E=You Fail It!
010F=You Fail It Again!
0110=Follow Me
0111=Game Corner
0112=Evil Lurks
0113=Gym
0114=Jigglypuff's Song
0115=Introducion
0116=Pokemon Theme
0117=Cinnabar Island
0118=Lavender Town
0119=Healing
011A=Bicycle
011B=Encounter 1
011C=Encounter 2
011D=Encounter 3
011E=You're In The Hall Of Fame!
011F=Viridian Forest
0120=Mount Moon
0121=Abandoned Place
0122=End Credits
0123=Route Theme 1
0124=Route Theme 2 / Intro
0125=Route Theme 3
0126=Route Theme 4
0127=Indigo Plateau
0128=Battle 3
0129=Battle 4
012A=Battle 5
012B=Battle 6
012C=Pallet Town
012D=Oak's Lab
012E=Oak's Theme
012F=Pokémon Center
0130=SS Anne
0131=Surf's Up
0132=Pokémon Tower
0133=Silph Co.
0134=Cerulean City
0135=Celadon City
0136=Victory 1
0137=Victory 2
0138=Victory 3
0139=Vermillion City
013A=Viridian City
013B=Gary's Theme
013C=Gary's Theme (bis)
013D=Fanfare 3
013E=Fanfare 4
013F=You caught a Pokémon!
0140=Trainer Card Photo
0141=Gamefreak
0142=Victory 2 (bis)
0143=Intro Message 1
0144=Intro Message 2
0145=Intro Message 3
0146=Game Corner (+1)
0147=Game Corner (+2)
0148=Net Center
0149=Mystery Connection
014A=Game Corner (+3)
014B=Mount Ember
014C=Follow Me (alt)
014D=Water Labyrinth
014E=Tanoby Ruins
014F=Islands 1-3
0150=Islands 4-5
0151=Islands 6-7
0152=PokéFlute
0153=Battle - Deoxys
0154=Battle 5 (+1)
0155=Battle 5 (+2)
0156=Encounter 4
0157=Deoxys Encounter
0158=Trainer Tower
0159=Pallet Town (fame mix)
015A=Teachy TV
 
EMERALD(I THINK)
 
015E=Littleroot Town Test 'TETSUJI'
015F=GS - Route 38
0160=Wild Pokemon Defeat
0161=Wild Pokemon Defeat w/Intro
0162=Gym Leader Defeat
0163=Acquired Badge
0164=Crystal - Pokémon Center
0165=GS - Saffron City
0166=Crystal - Battle with Legendary Dogs
0167=Route Theme 1
0168=Route Theme 2
0169=Route Theme 3
016A=Petalburg City
016C=Gym
016D=Surfing
016F=Level Up
0170=Pokemon Healed
0171=Big Victory
0172=Acquired Item
0173=Pokemon Caught
0174=Got TM/HM
0175Lilycove Museum
0176=Route Theme 4
0177=Slateport Museum
0178=Evolve Intro
0179=Evolving
017A=Unknown Victory 1
017B=Tuber Encounter
017C=Boy Encounter
017D=A Far-away Place
017E=Fortree City
017F=Birch's Lab
0180=Battle Tower
0181=Swimmer Encounter
0182=Meteor Falls
0183=Got a Berry
0184=Unknown Victory 1
0185=Unknown Victory 3
0186=Unknown Victory 4
0187=Pay No Attention!
0188=Unknown Theme 1
0189=Beauty Contest Test 1
018A=Beauty Contest Test 2
018B=Beauty Contest Test 3
018C=Beauty Contest Test 4
018D=Ship Encounter
018E=Verdanturf Town
018F=Rustboro City
0190=Pokémon Center
0191=Route Theme 5
0192=Route Theme 6
0193=Bicycle Ride
0194=PokéMart
0195=Littleroot Town
0196=Sky Pillar
0197=Girl Encounter
0198=Lilycove City
0199=The Sandy Desert
019A=Help Me!
019B=Underwater Dive
019C=Trainer Defeat
019D=Title Screen
019E=Introduction
019F=May's Theme
01A0=Electric Encounter
01A1=Biker Encounter
01A2=Route Theme 7
01A3=Aqua Encounter
01A4=Show Me Around
01A5=Brendan's Theme
01A6=Evergrande City
01A7=Psychic Encounter
01A8=Important Defeat
01A9=Riding the Cable Car
01AA=Game Corner
01AB=Dewford Town
01AC=Safari Zone
01AD=Victory Road
01AE=Team Hideout
01AF=Sailing the Sea
01B0=Shoal Cave
01B1=Slateport City
01B2=The Fog of Mt. Pyre
01B3=Pokémon Trainer School
01B4=You're the Champ!
01B5=Lavaridge Town
01B6=Island Cave
01B7=Important 2 Defeat
01B8=Beauty Contest
01B9=Magma Encounter
01BA=The Pokémon!
01BB=The Flood
01BC=The Drought
01BD=Sootopolis City
01BE=Berry Blending Results
01BF=Hall of Fame
01C0=You're Being Watched!
01C1=Kid Encounter
01C2=Elite Four Theme
01C3=Sailor Encounter
01C4=Beauty Contest Lobby
01C5=What's On TV?
01C6=Unknown Encounter
01C7=Ending Credits
01C8=The End!
01C9=Battle Frontier
01CA=Battle Arena
01CB=Battle Point!
01CC=Registered Trainer
01CD=Battle Pyramid
01CE=Pyramid Top
01CF=Battle Palace
01D0=Rayquaza Enters
01D1=Battle Tower
01D2=Frontier Badge!
01D3=Dome Tournament
01D4=Battle Tube
01D5=Battle Factory
01D6=Battle - Legendary Pokémon
01D7=Battle - Frontier Brains
01D8=Battle - Mew
01D9=Battle Dome Lobby
01DA=Battle - Wild Pokémon
01DB=Battle - Aqua/Magma
01DC=Battle - Pokémon Trainer
01DD=Battle - Gym Leader
01DE=Battle - Champion Wallace
01DF=Battle - Regirock, Regice and Registeel
01E0=Battle - Legendary Pokémon
01E1=Battle - Rival
01E2=Battle - Elite Four
01E3=Battle - Team Leader
01E4=Follow Me
01E5=Game Corner
01E6=Evil Lurks
01E7=Gym(FRLG)
01E8=Jigglypuff's Song
01E9=Introduction (FRLG)
01EA=Pokémon Theme
01EB=Cinnabar Island
01EC=Lavender Town
01ED=Healing
01EE=Bicycle
01EF=Encounter 1
01F0=Encounter 2
01F1=Encounter 3
01F2=You're in the Hall Of Fame!
01F3=Viridian Forest
01F4=Mount Moon
01F5=Abandoned Place
01F6=End Credits (FRLG)
01F7=Route Theme 8
01F8=Route Theme 9 (FRLG Intro)
01F9=Route Theme 10
01FA=Route Theme 11
01FB=Indigo Plateau
01FC=Battle 3
01FD=Battle 4
01FE=Battle 5
01FF=Battle 6
0200=Pallet Town
0201=Oak's Lab
0202=Oak's Theme
0203=Pokémon Center
0204=SS Anne
0205=Surf's Up
0206=Pokémon Tower
0207=Silph Co.
0208=Cerulean City
0209=Celadon City
020A=Victory 1
020B=Victory 2
020C=Victory 3
020D=Vermillion City
020E=Viridian City
020F=Gary's Theme
0210=Gary's Theme (bis)
0211=Fanfare 3
0212=Fanfare 4
0213=You caught a Pokémon!
0214=Trainer Card Photo
0215=Gamefreak
0216=Victory 2 (bis)
0217=Intro Message 1
0218=Intro Message 2
0219=Intro Message 3
021A=Game Corner (+1)
021B=Game Corner (+2)
021C=Net Center
021D=Mystery Connection
021E=Game Corner (+3)
021F=Mount Ember
0220=Follow Me (alt)
0221=Sevii Island Paths
0222=Tanoby Ruins
0223=Islands 1-3
0224=Islands 4-5
0225=Islands 6-7
0226=PokéFlute
0227=Battle - Deoxys
0228=Battle 5 (+1)
0229=Battle 5 (+2)
022A=Encounter 4
022B=Deoxys Encounter
022C=Trainer Tower
022D=Pallet Town (fame mix)
022E=Teachy TV

CHANGE TO JAPANESE STYLE TEXT
\c\h15
It os bigger than ordinary text.
 
CHANGE TO WESTERN TEXT SYLE
\c\h16
It is typical text size.
 
PAUSE MUSIC
\c\h17
 
RESUME MUSIC
\c\h18
.................................................................
THESE SIGNS CAN ALSO BE USED
 
Universal Codes
\v\h01 - [player]
\v\h02 - [buffer1]
\v\h03 - [buffer2]
\v\h04 - [buffer3]
\v\h06 - [rival]
 
You can use either the code on the left or the words on the right, but you have to put the brackets.
 
 
Ruby & Sapphire & Emerald
\v\h07 - [game]
\v\h08 - [team]
\v\h09 - [otherteam]
\v\h0A - [teamleader]
\v\h0B - [otherteamleader]
\v\h0C - [legend]
\v\h0D - [otherlegend]
 
Again you could use any one of the codes or words.
 
Other Codes
Here are other XSE codes which can be used in a dialog script for the message to show special characters, for example, the horizontal ellipsis "...", the male and female glyph and so on.
 
 
[.] = ...
[$] = PokéYen
[m] = Male glyph
[f] = Female glyph
[Lv] = Lv.
[PK] = POKé
[MN] = MON
[PO] = PO
[Ke] = Ké
[BL] = BL
[OC] = OCK
[Po] = Po
[Ké] = ke
 
 
Here there are some extra codes, please note you need to use the code on the right side, since they're not really implemented into XSE. The bracketed codes on the left side are showed here just to understand their meaning. They've all been tested under FR/LG, therefore some of them may not be the same on the other games.
 
[BTN_A] \hF8\h00
[BTN_B] \hF8\h01
[BTN_L] \hF8\h02
[BRN_R] \hF8\h03
[BTN_START] \hF8\h04
[BTN_SEL] \hF8\h05
[DPAD_U] \hF8\h06
[DPAD_D] \hF8\h07
[DPAD_L] \hF8\h08
[DPAD_R] \hF8\h09
[DPAD_UD] \hF8\h0A
[DPAD_LR] \hF8\h0B
[DPAD] \hF8\h0C
[+] \hF9\04
[LV] \hF9\h05
[PP] \hF9\h06
[ID] \hF9\h07
[NO] \hF9\h08
_ \hF9\h09
[1] \hF9\h0A
[2] \hF9\h0B
[3] \hF9\h0C
[4] \hF9\h0D
[5] \hF9\h0E
[6] \hF9\h0F
[7] \hF9\h10
[8] \hF9\h11
[9] \hF9\h12
[DBLCIRCLE] \hF9\h15
[TRIANGLE] \hF9\h16
[CROSS] \hF9\h17
| \hF9\hD1
¯ \hF9\hD2
~ \hF9\hD3
[SML_LPAREN] \hF9\hD4
[SML_RPAREN] \hF9\hD5
[SIDE_U] \hF9\hD6
[L_EYE] \hF9\hD8
[R_EYE] \hF9\hD9
@ \hF9\hDA
[PLUS] \hF9\hDC
[MINUS] \hF9\hDD
[EQUAL] \hF9\hDE
[SPIRAL] \hF9\hDF
[TOUNGE] \hF9\hE0
[TRIANGLE2] \hF9\hE1
[BLKCIRCLE] \hF9\hE4
[BLKTRIANGLE] \hF9\hE5
[BLKSQUARE] \hF9\hE6
[BLKHEART] \hF9\hE7
[MOON] \hF9\hE8
[NOTE] \hF9\hE9
[POKEBALL] \hF9\hEA
[ELECTRIC] \hF9\hEB
[GRASS] \hF9\hEC
[FIRE] \hF9\hED
[WATER] \hF9\hEE
[L_HAND] \hF9\hEF
[R_HAND] \hF9\hF0
[FLOWER] \hF9\F1
[EYE] \hF9\hF2
[EYE2] \hF9\hF3
[#] \hF9\hF4
[Unhappy] \hF9\hF5
[Grin] \hF9\hF6
[|Unhappy] \hF9\hF7
[:o] \hF9\hF8
[^^] \hF9\hF9
[>Smile] \hF9\hFA
[D:] \hF9\hFB
['_'] \hF9\hFC
[8O] \hF9\hFD
[DUnhappy] \hF9\hFE
[LETS_GO] \hF9\hFF
 
 
HUH!!! But how to use these. Everything between the dotted lines is used at the beginning of the message, like so, imagine you want to have red text, type this into the text adjuster:
 
\c\h01\h04Hi there. How are you doing.
 
Remember to not leave a space between the code and the beginning of the message, and i don't think you can use two codes in the same message.
Now the other stuff. Lets say you want to place the players name in the message. But you don't know what the player's gonna name his character, so you use this:
 
Hi there \v\h01, how are you?
 
or you can use this:
 
Hi there [player], how are you?
 
Same for rival and other characters that you want to use. But again the last couple commands, only the code can be used, not what's in brackets. Sweat huh.

 
4- ITEMS
 
 
OK the new commands you have to learn here are:
 
additem
removeitem
checkitemroom
checkitem
addpcitem
checkpcitem
bufferitem
bufferitems (same as above but for plural)
bufferitems2
giveitem
giveitem2
giveitem3
 
additem adds a certain amount of a certain item to the player's bag.
Form: additem 0x 0x
Remember that they have to be in hex.
 
removeitem removes a certain amount of a certain item from the players bag.
Form: removeitem 0x 0x
In hex.
 
checkitemroom checks if the player has an enough room for a certain item in his bag.
Form: checkitemroom 0x 0x
Of course the quantity is how much to check for space. As in to check if the player has enough room for 5 potions for example. Also in hex. You'll learn how to use this command fully in the variables section. WHY ?? cause you know how to make the command check for the room, but not how to make it do two different things if the room exists or not. And again, like the message type 0x5(yes/no) the value 1 is assigned to the variable 0x800D if there is room, and you can use the compare and if commands on it. And the number 0 is assigned to the same variable if there isn't room.
 
checkitem checks if the player has a certain item in his bag.
Form: checkitem 0x 0x
Also in hex. You'll learn how to use this command fully in the variables section. And again, like the message type 0x5(yes/no) the value 1 is assigned to the variable 0x800D if the item is there, and you can use the compare and if commands on it. And the number 0 is assigned to the same variable if it isn't.
 
addpcitem adds a certain amount of a certain item to your pc.
Form: addpcitem 0x 0x
Also in hex.
 
checkpcitem checks for a certain amount of a certain item in the player's pc.
Form: checkpcitem 0x 0x
Also in hex. You'll learn how to use this command fully in the variables section. And again, like the message type 0x5(yes/no) the value 1 is assigned to the variable 0x800D if the item is in the pc, and you can use the compare and if commands on it. And the number 0 is assigned to the same variable if it isn't.
 
bufferitem makes an item's name be stored in a buffer.
Form: bufferitem 0x 0x
The buffer number ranges from 1 to3. Read the message part and you'll know that the [buffer1] or [buffer2] or [buffer3] is now that item's name depending on the number you used in the command.
So if the message has [buffer1] or [buffer2] or [buffer3], then it would say the item's name in game.
Also in hex.
 
bufferitems stores a plural of an item's name in a buffer.
Form: bufferitems 0x 0x 0x
Also hex. But this time, all the same expect the quntity. Lets say you use buffer 1 and the item potion and the quantity 5. Then [buffer1] would stand for "5 potions". This only works for FireRed and LeafGreen.
 
bufferitems2 is same as before but it's only for Emerald.
 
giveitem gives the player a certain amount of a certain item and displays the message "[player] obtained/found item". Yes it can either be obtained or found, depending on the type you choose.
Form: giveitem 0x 0x 0x
the message type can either be 0 for obtained, or 1 for found. Again in hex.
 
giveitem2 same as before but instead of showing a message it plays a certain song.
Form: giveitem2 0x 0x 0x
Again in hex. The is the number of the song to play.
 
giveitem3 gives a decoration and displays a message by itself.
Form: giveitem3 0x
Again in hex.
You can choose a song from the above list for the giveitem2 command. You have to change the amount and quantity and item number and decoration number to hex.
 
Here's a list of items:
 
 
Master Ball 1
Ultra Ball 2
Great Ball 3
Poké Ball 4
Safari Ball 5
Net Ball 6
Dive Ball 7
Nest Ball 8
Repeat Ball 9
Timer Ball 10
Luxury Ball 11
Premier Ball 12
Potion 13
Antidote 14
Burn Heal 15
Ice Heal 16
Awakening 17
Parlyz Heal 18
Full Restore 19
Max Potion 20
Hyper Potion 21
Super Potion 22
Full Heal 23
Revive 24
Max Revive 25
Fresh Water 26
Soda Pop 27
Lemonade 28
Moomoo Milk 29
Energypowder 30
Energy Root 31
Heal Powder 32
Revival Herb 33
Ether 34
Max Ether 35
Elixir 36
Max Elixir 37
Lava Cookie 38
Blue Flute 39
Yellow Flute 40
Red Flute 41
Black Flute 42
White Flute 43
Berry Juice 44
Sacred Ash 45
Shoal Salt 46
Shoal Shell 47
Red Shard 48
Blue Shard 49
Yellow Shard 50
Green Shard 51
HP Up 63
Protein 64
Iron 65
Carbos 66
Calcium 67
Rare Candy 68
PP Up 69
Zinc 70
PP Max 71
Guard Spec. 73
Dire Hit 74
X Attack 75
X Defend 76
X Speed 77
X Accuracy 78
X Special 79
Poké Doll 80
Fluffy Tail 81
Super Repel 83
Max Repel 84
Escape Rope 85
Repel 86
Sun Stone 93
Moon Stone 94
Fire Stone 95
Thunderstone 96
Water Stone 97
Leaf Stone 98
Tinymushroom 103
Big Mushroom 104
Pearl 106
Big Pearl 107
Stardust 108
Star Piece 109
Nugget 110
Heart Scale 111
Orange Mail 121
Harbor Mail 122
Glitter Mail 123
Mech Mail 124
Wood Mail 125
Wave Mail 126
Bead Mail 127
Shadow Mail 128
Tropic Mail 129
Dream Mail 130
Fab Mail 131
Retro Mail 132
Cheri Berry 133
Chesto Berry 134
Pecha Berry 135
Rawst Berry 136
Aspear Berry 137
Leppa Berry 138
Oran Berry 139
Persim Berry 140
Lum Berry 141
Sitrus Berry 142
Figy Berry 143
Wiki Berry 144
Mago Berry 145
Aguav Berry 146
Iapapa Berry 147
Razz Berry 148
Bluk Berry 149
Nanab Berry 150
Wepear Berry 151
Pinap Berry 152
Pomeg Berry 153
Kelpsy Berry 154
Qualot Berry 155
Hondew Berry 156
Grepa Berry 157
Tamato Berry 158
Cornn Berry 159
Magost Berry 160
Rabuta Berry 161
Nomel Berry 162
Spelon Berry 163
Pamtre Berry 164
Watmel Berry 165
Durin Berry 166
Belue Berry 167
Liechi Berry 168
Ganlon Berry 169
Salac Berry 170
Petaya Berry 171
Apicot Berry 172
Lansat Berry 173
Starf Berry 174
Enigma Berry 175
Brightpowder 179
White Herb 180
Macho Brace 181
Exp. Share 182
Quick Claw 183
Soothe Bell 184
Mental Herb 185
Choice Band 186
King's Rock 187
Silverpowder 188
Amulet Coin 189
Cleanse Tag 190
Soul Dew 191
Deepseatooth 192
Deepseascale 193
Smoke Ball 194
Everstone 195
Focus Band 196
Lucky Egg 197
Scope Lens 198
Metal Coat 199
Leftovers 200
Dragon Scale 201
Light Ball 202
Soft Sand 203
Hard Stone 204
Miracle Seed 205
Blackglasses 206
Black Belt 207
Magnet 208
Mystic Water 209
Sharp Beak 210
Poison Barb 211
Nevermeltice 212
Spell Tag 213
Twistedspoon 214
Charcoal 215
Dragon Fang 216
Silk Scarf 217
Up-grade 218
Shell Bell 219
Sea Incense 220
Lax Incense 221
Lucky Punch 222
Metal Powder 223
Thick Club 224
Stick 225
Red Scarf 254
Blue Scarf 255
Pink Scarf 256
Green Scarf 257
Yellow Scarf 258
Mach Bike 259
Coin Case 260
Itemfinder 261
Old Rod 262
Good Rod 263
Super Rod 264
S.S. Ticket 265
Contest Pass 266
Wailmer Pail 268
Devon Goods 269
Soot Sack 270
Basement Key 271
Acro Bike 272
PokéBlock Case 273
Letter 274
Eon Ticket 275
Red Orb 276
Blue Orb 277
Scanner 278
Go-goggles 279
Meteorite 280
Rm. 1 Key 281
Rm. 2 Key 282
Rm. 4 Key 283
Rm. 6 Key 284
Storage Key 285
Root Fossil 286
Claw Fossil 287
Devon Scope 288
TM01 289
TM02 290
TM03 291
TM04 292
TM05 293
TM06 294
TM07 295
TM08 296
TM09 297
TM10 298
TM11 299
TM12 300
TM13 301
TM14 302
TM15 303
TM16 304
TM17 305
TM18 306
TM19 307
TM20 308
TM21 309
TM22 310
TM23 311
TM24 312
TM25 313
TM26 314
TM27 315
TM28 316
TM29 317
TM30 318
TM31 319
TM32 320
TM33 321
TM34 322
TM35 323
TM36 324
TM37 325
TM38 326
TM39 327
TM40 328
TM41 329
TM42 330
TM43 331
TM44 332
TM45 333
TM46 334
TM47 335
TM48 336
TM49 337
TM50 338
HM01 339
HM02 340
HM03 341
HM04 342
HM05 343
HM06 344
HM07 345
HM08 346
Oak's Parcel 349
Poké Flute 350
Secret Key 351
Bike Voucher 352
Gold Teeth 353
Old Amber 354
Card Key 355
Lift Key 356
Helix Fossil 357
Dome Fossil 358
Silph Scope 359
Bicycle 360
Town Map 361
VS Seeker 362
Fame Checker 363
TM Case 364
Berry Pouch 365
Teachy TV 366
Tri-pass 367
Rainbow Pass 368
Tea 369
Mysticticket 370
Auroraticket 371
Powder Jar 372
Ruby 373
Sapphire 374
But please people, if you know an item doesn't exist in the game your hacking don't give it or you'll get yourself trouble. This list is for FR and LG.
 

 
Ok guys, were moving on to PEDRO12's Everything Tutorial part 2, cause there are too many characters here.

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 0x 0x 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 0x 0x 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
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 with a number from 1 to 6 and it'll check for that much pokemon.
Form: countpokemon
 
Here's a list of pokemon numbers:
 
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
 

 
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 @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
So the pointer to the movement looks like:
 
 
#org @pointer
#raw 0x
#raw 0x
#raw 0x
#raw 0x
#raw 0x
#raw 0x
#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 @pointer
applymovement 0x @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
#org @start
lock
faceplayer
msgbox @1 0x6
applymovement 0x @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
 
#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 (#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
 
#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
 

 
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
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
 
checkflag checks if a certain flag is set.
Form: checkflag 0x
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
 
#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 0x
 
addvar adds a certain value to the value assigned to a certain variable.
Form: addvar 0x 0x
 
subvar subtracts a certain value from the value assigned to a certain variable.
Form: subvar 0x 0x
 
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 0x
 
Now after this use "if 0x goto @pointer". The 0x 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 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 0x
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 0x<map> 0x 0x 0x</map>
<map>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.</map>
<map> </map>
<map>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.</map>
<map> </map>
<map>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.</map>
<map>Form: warphole 0x 0x</map>
<map> </map>

<map> </map>
<map>10- MONEY AND COINS</map>
<map> </map>
<map> </map>
<map>OK some money and coins commands:</map>
<map> </map>
<map>givemoney</map>
<map>paymoney</map>
<map>showmoney</map>
<map>hidemoney</map>
<map>updatemoney</map>
<map>checkmoney</map>
<map> </map>
<map>givemoney gives a certain amount of money.</map>
<map>Form: givemoney 0x 0x0</map>
<map> </map>
<map>paymoney makes the player pay a certain amount of money.</map>
<map>Form: paymoney 0 0x0</map>
<map> </map>
<map>showmoney shows a box with the amount of money the player has at certain coordiantes on the screen.</map>
<map>Form: showmoney 0x 0x 0x0</map>
<map> </map>
<map>hidemoney hides the shown money box at certain coordinates on the screen</map>
<map>Form: hidemoney 0x 0x</map>
<map> </map>
<map>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.</map>
<map>Form: updatemoney 0x 0x 0x0</map>
<map> </map>
<map>checkmoney checks if the player has a certain amount of money.</map>
<map>Form: checkmoney 0x 0x0</map>
<map>After this use the if command and the condition here can be the less than and greater than and that other stuff mentioned earlier.</map>
<map> </map>
<map>Coin commands:</map>
<map> </map>
<map>givecoins</map>
<map>removecoins</map>
<map>checkcoins</map>
<map>showcoins</map>
<map>hidecoins</map>
<map>updatecoins</map>
<map> </map>
<map>givecoins gives the player a certain amount of coins.</map>
<map>Form: givecoins 0x</map>
<map> </map>
<map>removecoins removes a certain amount of coins form the player's coincase.</map>
<map>Form: removecoins 0x</map>
<map> </map>
<map>checkcoins assigns the amount of money the player has to a certain variable.</map>
<map>Form: checkcoins 0x</map>
<map>After this use the compare and if commands to manipulate the effect of the command.</map>
<map>You should know how.</map>
<map> </map>
<map>showcoins and hidecoins and updatecoins do the same as they do in money commands.</map>
<map>Form: showcoins 0x 0x</map>
<map>Form: hidecoins 0x 0x</map>
<map>Form: updatecoins 0x 0x</map>
<map> </map>
<map>OK we're done. But remember all above amounts have to be in hex so convert, and happy money hacking.</map>
<map> </map>

<map> </map>
<map>11- POKEPIC</map>
<map> </map>
<map> </map>
<map>New commands:</map>
<map> </map>
<map>showpokepic</map>
<map>hidepokepic</map>
<map> </map>
<map>showpokepic shows the picture of a certain pokemon at certain coordinates on the screen.</map>
<map>Form: showpokepic 0x 0x 0x</map>
<map>All in hex.</map>
<map> </map>
<map>hidepokepic hides the picture shown.</map>
<map>Form: hidepokepic</map>
<map> </map>
<map>Pokepics section done.</map>
<map> </map>

<map> </map>
<map>12- SPECIALS</map>
<map> </map>
<map> </map>
<map>Easiest ever. Only one command.</map>
<map> </map>
<map>special</map>
<map> </map>
<map>This command activates a special event.</map>
<map>Form: special 0x</map>
<map>Replace the special number with one of the following numbers to activate its effect:</map>
<map> </map>
<map>R/S Specials</map>
<map>Ruby & Sapphire Specials List...</map>
<map> </map>
<map>0 = Heals Party Pokémon</map>
<map>2 = Warp sound + FadeBlack</map>
<map>3 = Hero Uses Last Used Warp</map>
<map>8 = Make new Secret Base/Enter Secret Base</map>
<map>9 = Come out of Coliseum</map>
<map>A = Come out of Coliseum</map>
<map>E = Hero Uses Secret Base PC</map>
<map>F = Something to do with registry in a secret base</map>
<map>11 = Something to do with Secret Base battling</map>
<map>18 = Move Player to X01 Y03</map>
<map>19 = Something to do with secret base battling</map>
<map>1A = Turning off PC</map>
<map>1B = Mixing Records</map>
<map>1F = checks whether game is linked</map>
<map>20 = Please wait followed by wild battle (Linkup) (VS in coliseum)</map>
<map>21 = "Please wait link stand by" (Link Feature)</map>
<map>22 = "Please wait link stand by" (Link Feature)</map>
<map>23 = Call Save Menu</map>
<map>29 = Select 3 Pokémon [maybe for Battle tower?]</map>
<map>2A = Black Screen</map>
<map>2B = Something to do with Berry Growth</map>
<map>2C = Opens up berry pocket (Used in berry blender script)</map>
<map>2D = Something to do with Planted berry (Used with CmdC3)</map>
<map>2E = Something to do with Berry Growth</map>
<map>2F = Something to do with Berry Growth</map>
<map>30 = Maybe activates the watered flag (used first, then special0x5E)</map>
<map>34 = Open Textbox (Stays Open)</map>
<map>35 = Open Textbox (Stays Open)</map>
<map>3B = Trainer battle</map>
<map>3C = Access Lanette's PC (BOX System)</map>
<map>5D = Call Save Menu which keeps looping.</map>
<map>5E = Watering of Berry (used first, then special0x5E)</map>
<map>5F = You fill your trainer's profile/interview</map>
<map>60 = Shows what you put for trainer's Profile/interview</map>
<map>67 = Strange Message with sound (could be Unown speech)</map>
<map>6C = Trainer Tales (Link Feature)</map>
<map>6D = Choose Tale</map>
<map>75 = Secret Base Decoration Item Menu</map>
<map>7C = Something to do with renaming</map>
<map>7D = Something to do with renaming</map>
<map>83 = Poké Slots In Use (Store Command) </map>
<map>8A = Crashes</map>
<map>8D = Displays the last message</map>
<map>8E = Used with Setmaptile to make it work</map>
<map>91 = setmaptile #206 at X8 YB</map>
<map>94 = Something to do with Timed events</map>
<map>98 = Cable Car Ride Cutscene</map>
<map>9A = Male Clock</map>
<map>9B = View Clock</map>
<map>9C = Choose Starters From Birch's Bag</map>
<map>9D = Wally Catching Ralts</map>
<map>9E = Nickname's first Pokémon in Party</map>
<map>9F = Choose a Pokémon in the party (For Nickname)</map>
<map>A1 = Starts Berry Blender</map>
<map>A2 = Slot game.</map>
<map>AF = Gabby and TV's "In serach of Trainers"</map>
<map>BC = Store a Pokémon For Day Care</map>
<map>BD = Take back Pokémon From Day Care</map>
<map>BE = Get Breeding Growth (store)</map>
<map>BF = Get Price</map>
<map>C0 = Something to do with Day Cay pay (store)</map>
<map>C2 = Egg hatch (1st Pokémon in party)</map>
<map>C4 = Battle results For The Coliseum</map>
<map>C6 = Something to do with DayCare cost</map>
<map>C8 = Move to the last sethealingplace/flightspot after some time (faint!!) (Fainted Event)</map>
<map>D0 = Opens PokéBlock case</map>
<map>D1 = Stores a random value to LASTRESULT (If the value matches mirage Island will show)</map>
<map>D4 = Used Before Special 0xF9/FA</map>
<map>D5 = Catch Pokémon tip, boxset 4 (use closeonkeypress)</map>
<map>D6 = tile change (in the middle of screen?)(For PC)</map>
<map>D7 = tile change (flower, in the middle of screen?)</map>
<map>D9 = Sets some sort of tiles</map>
<map>DA = Sets some sort of tiles</map>
<map>DB = Choose Pokémon then Fadescreen</map>
<map>DC = Opens the First Pokémon's Moves</map>
<map>E0 = Move tutoring For 1st Pokémon in Party</map>
<map>E3 = CheckBike (store command) 00 = nobike</map>
<map>E4 = Set Cycling Road Results (time, collisions)</map>
<map>E6 = First Pokémon Happy (StoreResult, 4 = Happy),</map>
<map>EC = Verse a high level trainer, level 100/Random Battle?</map>
<map>F1 = Restarts Game</map>
<map>F5 = choose 3 Pokémon(Battle tower) F6 = ?</map>
<map>F9 = Item Storage Mailbox Decoration</map>
<map>FA = Item Storage - No Decoration</map>
<map>FB = World Map</map>
<map>FE = Used for In-Game Trades - Trades 1st trade Pokémon "Makit" to 1st Pokémon in Party</map>
<map>103 = Berry Blender results</map>
<map>106 = PC (menu opens and disappears real fast)</map>
<map>107 = Hall of Fame, through PC (Will be corrupt if there's no data) (reads)</map>
<map>108 = Hoenn Pokédex diploma</map>
<map>10E = Boat sailing for a long time, like Fire Red's speed boat (+Return)</map>
<map>10F = Restarts</map>
<map>110 = Hall of Fame "Credits" (Saves data)</map>
<map>111 = Elevator animation<</map>
<map>112 = Displays Flutes</map>
<map>113 = Freezes The Screen/Camera</map>
<map>114 = Releases The Screen/Camera</map>
<map>119 = Groudon's Orb followed by earthquake</map>
<map>11B = Battel Tower Results</map>
<map>12C = Player Goes to last warp/flightspot used</map>
<map>12D = Makes special 0x9d work properly</map>
<map>130 = Is PC Box Full (store command) (0 = full)</map>
<map>131 = Earthquake for few seconds "Earthquake (stops)"</map>
<map>132 = Show Floors & Which Floor you're on</map>
<map>134 = CheckPokerus [0001 = Pokerus]</map>
<map>136 = Weird Quake</map>
<map>137 = Lava Battle/with Groudon</map>
<map>138 = Land Battle/with legendary</map>
<map>139 = Land Battle2/different song/battle with ledgendary - used with wildbattle</map>
<map>13B = Small screen shake</map>
<map>13D = Light/Flash</map>
<map>13E = Player uses the warp last used (no sound)</map>
<map>13F = falls in first warp of the first map</map>
<map>140 = Pokémon Image (UnLZ 199/200)</map>
<map>142 = Ecard battle Initiate (used in Levelscript at mossdeep, Oldman's house)</map>
<map>143 = Battle ?(perhaps used for wildbattle)</map>
<map>147 = Check Pokemon</map>
<map>14C = Turns Off Background/Map music</map>
<map>FR/LG Specials </map>
<map>Fire Red & Leaf Green Specials List...</map>
<map> </map>
<map>0 = Heal Party Pokémon</map>
<map>2 = Warp sound + Black Screen</map>
<map>3 = Walk to your room</map>
<map>20 = Weird Fight</map>
<map>21 = Link Communication Standby</map>
<map>22 = Link Communication Standby 2</map>
<map>23 = Call Save Menu</map>
<map>29 = Select 3 Pokémon for something</map>
<map>2A = Crashes</map>
<map>3B = Fight with Team Aqua's Leader</map>
<map>3C = Access BILL's PC</map>
<map>5D = Call Save Menu</map>
<map>5E = Edit "At the battle's start" profile</map>
<map>5F = Edit "At the battle's start" profile</map>
<map>60 = Displays "At the battle's start" text</map>
<map>9D = Old man catching a Weedle</map>
<map>9E = Nickname</map>
<map>9F = Choose 3 Pokémon</map>
<map>BC = Store a Pokémon</map>
<map>BD = Withdraw a stored Pokémon</map>
<map>C2 = Egg Hatch</map>
<map>C4 = Show Battle Results</map>
<map>C8 = Fainted Event</map>
<map>D6 = A Turned On PC Appears</map>
<map>D7 = A Turned Off PC Appears</map>
<map>DC = Shows Known Moves</map>
<map>DF = Crashes</map>
<map>E0 = Crashes</map>
<map>E1 = Crashes</map>
<map>E2 = Crashes</map>
<map>E3 = Crashes</map>
<map>E4 = Crashes</map>
<map>E5 = Crashes</map>
<map>E6 = Crashes</map>
<map>E7 = Crashes</map>
<map>E8 = Crashes</map>
<map>E9 = Crashes</map>
<map>107 = Reads Hall Of Fame Data</map>
<map>108 = Diplome For Completing Kanto Dex</map>
<map>10F = Crashes</map>
<map>110 = Saves Hall Of Fame Data</map>
<map>111 = Elevator</map>
<map>113 = Freezes The Camera</map>
<map>114 = Releases The Camera</map>
<map>132 = Select Floor (Elevator)</map>
<map>136 = Using Strength</map>
<map>137 = Starts Trainerbattle</map>
<map>138 = Starts Wild Battle</map>
<map>139 = Starts Wild Battle</map>
<map>13D = Warp</map>
<map>13E = Fall Through A Hole</map>
<map>143 = Starts Wild Battle</map>
<map>156 = Starts Battle Against Ghost</map>
<map>157 = Uses The Bicycle</map>
<map>15C = Crashes</map>
<map>161 = Activates Surfing Animation</map>
<map>163 = See in PokéDex</map>
<map>166 = Lets You Enter A Nickname</map>
<map>16B = Establishes A Connection</map>
<map>16C = Establishes A Connection</map>
<map>16D = Establishes A Connection</map>
<map>16E = Shows Wireless Connection Status</map>
<map>17B = Uses The Ms Aqua</map>
<map>186 = Crashes</map>
<map>18D = Learns A Move</map>
<map>18E = Battletower Lv50</map>
<map>191 = Departure Of MS Anne</map>
<map>195 = Shows Jump Records</map>
<map>19C = Shows Powder Counter</map>
<map>1A2 = Shows Berry Crush Rankings</map>
<map>1A5 = Plays Credits On The Current Map</map>
<map>1A6 = Shows Dodrio Berry Picking Stats</map>
<map>1AB = Moves The Deoxys-Triangle</map>
<map>1B2 = Displays A Cursor At The Left Top Corner</map>
<map>1B5 = Executes Weird Effects on Map Tiles</map>
<map>1B6 = Executes Weird Effects on Map Tiles</map>
<map>Sorry, don't have the emerald specials, but i think some are the same as ruby and sapphire specials.</map>
<map> </map>

<map> </map>
<map>13- SONGS</map>
<map> </map>
<map> </map>
<map>New commands: </map>
<map> </map>
<map>fanfare</map>
<map>waitfanfare</map>
<map>fadedefault</map>
<map> </map>
<map>fanfare plays a certain song.</map>
<map>Form: fanfare 0x</map>
<map>A list of song numbers is mentioned above in the messages section.</map>
<map> </map>
<map>waitfanfare waits for the song to play out before the script continues.</map>
<map>Form: waitfanfare</map>
<map> </map>
<map>fadedefault fades back to the original map's song.</map>
<map>Form: fadedefault</map>
<map> </map>
<map>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.</map>
<map> </map>
<map> </map>

<map> </map>
<map>14- SPRITES</map>
<map> </map>
<map> </map>
<map>New commands:</map>
<map> </map>
<map>hidesprite</map>
<map>showsprite</map>
<map>spriteinvisible</map>
<map>spritevisible</map>
<map> </map>
<map>hidesprite hides a certain sprite on the map.</map>
<map>Form: hidesprite 0x</map>
<map>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.</map>
<map> </map>
<map>showsprite shows a sprite hidden earlier with the previous command. </map>
<map>Form: showsprite 0x</map>
<map>For this to work you have to clear the flag you set to hide the sprite. </map>
<map> </map>
<map>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.</map>
<map>Form: spriteinvisible 0x 0x 0x</map>
<map> </map>
<map>Form: spritevisible 0x 0x 0x</map>
<map> </map>
<map>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.</map>
<map> </map>

<map> </map>
<map>15- TRAINER BATTLES</map>
<map> </map>
<map> </map>
<map>Ok new commands:</map>
<map> </map>
<map>trainerbattle</map>
<map>cleartrainerflag</map>
<map> </map>
<map>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.</map>
<map> </map>
<map>Form: trainerbattle 0x 0x 0x0 @pointer1 @pointer2</map>
<map> </map>
<map>Battle type can be 0 for normal trainer battle, 1 for official battle, 4 for double battle.</map>
<map> </map>
<map>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.</map>
<map> </map>
<map>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:</map>
<map> </map>
<map> </map>
<map>#dynamic 0x</map>
<map> </map>
<map>#org @start</map>
<map>trainerbattle 0x1 0x 0x0 @1 @2 @3</map>
<map>end</map>
<map> </map>
<map>#org @3</map>
<map>applymovement 0x3 @4</map>
<map>end</map>
<map> </map>
<map>#org @4</map>
<map>#raw 0x11</map>
<map>#raw 0x11</map>
<map>#raw 0xFE</map>
<map> </map>
<map>@org @1</map>
<map>= Hey there lets battle.</map>
<map> </map>
<map>#org @2</map>
<map>= You won.</map>
<map> </map>
<map>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.</map>
<map> </map>
<map>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.</map>
<map> </map>
<map>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.</map>
<map> </map>
<map>Form: cleartrainerflag 0x</map>
<map> </map>
<map>OK we're done with trainer battles.</map>
<map> </map>

<map> </map>
<map>16- WILD BATTLES</map>
<map> </map>
<map> </map>
<map>One new command:</map>
<map> </map>
<map>wildbattle</map>
<map> </map>
<map>It starts a wild battle.</map>
<map> </map>
<map>Form: wildbattle 0x 0x 0x</map>
<map>All in hex.</map>
<map> </map>
<map> </map>

<map> </map>
<map>17- WEATHER</map>
<map> </map>
<map> </map>
<map>Changes the weather of the present map. Three commands:</map>
<map> </map>
<map>setweather</map>
<map>resetweathjer</map>
<map>doweather</map>
<map> </map>
<map>setweather sets a certain weather to be activated by doweather.</map>
<map>Form: setweather 0x</map>
<map> </map>
<map>resetweather resets the maps original weather to be activated by doweather.</map>
<map>Form: resetweather</map>
<map> </map>
<map>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.</map>
<map>Form: doweather</map>
<map> </map>
<map>Sorry I don't have a list of weathers, but it should be easy to find. All have to be in hex.</map>
<map> </map>

<map> </map>
<map> </map>
<map>18- MARTS</map>
<map> </map>
<map> </map>
<map>One new command:</map>
<map> </map>
<map>pokemart</map>
<map> </map>
<map>This command starts a market event, you know, the buy, sell, and cancel choice thingy.</map>
<map>Form: pokemart @pointer</map>
<map>The pointer is to a list of items sold in the mart, and to edit the prices use the item editor.</map>
<map> </map>
<map>The pointer can be anywhere after the script similar to movement and message and any other type of pointer. Here's how it looks:</map>
<map> </map>
<map> </map>
<map>#org @pointer</map>
<map>#raw word 0x</map>
<map>#raw word 0x</map>
<map>#raw word 0x</map>
<map>#raw word 0x</map>
<map>#raw word 0x0</map>
<map> </map>
<map>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.</map>
<map> </map>

<map> </map>
<map>19- BUFFERS</map>
<map> </map>
<map> </map>
<map>Lots of buffer commands:</map>
<map> </map>
<map>bufferpokemon</map>
<map>bufferfirstpokemon</map>
<map>bufferitem</map>
<map>bufferattack</map>
<map> </map>
<map>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]</map>
<map>and 0x3 stands for [buffer3]. I don't know if there are any more buffers but try them.</map>
<map> </map>
<map>So the commands look like:</map>
<map> </map>
<map>bufferpokemon 0x 0x</map>
<map> </map>
<map>bufferfirstpokemon 0x</map>
<map> </map>
<map>bufferitem 0x 0x</map>
<map> </map>
<map>bufferattack 0x 0x</map>
<map> </map>
<map>OH and all the above have to be in hex.</map>
<map> </map>
<map>OK I haven't given you a list of attacks so here it is:</map>
<map> </map>
<map>NONE 0x0</map>
<map>POUND 0x1</map>
<map>KARATECHOP 0x2</map>
<map>DOUBLESLAP 0x3</map>
<map>COMETPUNCH 0x4</map>
<map>MEGAPUNCH 0x5</map>
<map>PAYDAY 0x6</map>
<map>FIREPUNCH 0x7</map>
<map>ICEPUNCH 0x8</map>
<map>THUNDERPUNCH 0x9</map>
<map>SCRATCH 0xA</map>
<map>VICEGRIP 0xB</map>
<map>GUILLOTINE 0xC</map>
<map>RAZORWIND 0xD</map>
<map>SWORDSDANCE 0xE</map>
<map>CUT 0xF</map>
<map>GUST 0x10</map>
<map>WINGATTACK 0x11</map>
<map>WHIRLWIND 0x12</map>
<map>FLY 0x13</map>
<map>BIND 0x14</map>
<map>SLAM 0x15</map>
<map>VINEWHIP 0x16</map>
<map>STOMP 0x17</map>
<map>DOUBLEKICK 0x18</map>
<map>MEGAKICK 0x19</map>
<map>JUMPKICK 0x1A</map>
<map>ROLLINGKICK 0x1B</map>
<map>SANDATTACK 0x1C</map>
<map>HEADBUTT 0x1D</map>
<map>HORNATTACK 0x1E</map>
<map>FURYATTACK 0x1F</map>
<map>HORNDRILL 0x20</map>
<map>TACKLE 0x21</map>
<map>BODYSLAM 0x22</map>
<map>WRAP 0x23</map>
<map>TAKEDOWN 0x24</map>
<map>THRASH 0x25</map>
<map>DOUBLEEDGE 0x26</map>
<map>TAILWHIP 0x27</map>
<map>POISONSTING 0x28</map>
<map>TWINEEDLE 0x29</map>
<map>PINMISSILE 0x2A</map>
<map>LEER 0x2B</map>
<map>BITE 0x2C</map>
<map>GROWL 0x2D</map>
<map>ROAR 0x2E</map>
<map>SING 0x2F</map>
<map>SUPERSONIC 0x30</map>
<map>SONICBOOM 0x31</map>
<map>DISABLE 0x32</map>
<map>ACID 0x33</map>
<map>EMBER 0x34</map>
<map>FLAMETHROWER 0x35</map>
<map>MIST 0x36</map>
<map>WATERGUN 0x37</map>
<map>HYDROPUMP 0x38</map>
<map>SURF 0x39</map>
<map>ICEBEAM 0x3A</map>
<map>BLIZZARD 0x3B</map>
<map>PSYBEAM 0x3C</map>
<map>BUBBLEBEAM 0x3D</map>
<map>AURORABEAM 0x3E</map>
<map>HYPERBEAM 0x3F</map>
<map>PECK 0x40</map>
<map>DRILLPECK 0x41</map>
<map>SUBMISSION 0x42</map>
<map>LOWKICK 0x43</map>
<map>COUNTER 0x44</map>
<map>SEISMICTOSS 0x45</map>
<map>STRENGTH 0x46</map>
<map>ABSORB 0x47</map>
<map>MEGADRAIN 0x48</map>
<map>LEECHSEED 0x49</map>
<map>GROWTH 0x4A</map>
<map>RAZORLEAF 0x4B</map>
<map>SOLARBEAM 0x4C</map>
<map>POISONPOWDER 0x4D</map>
<map>STUNSPORE 0x4E</map>
<map>SLEEPPOWDER 0x4F</map>
<map>PETALDANCE 0x50</map>
<map>STRINGSHOT 0x51</map>
<map>DRAGONRAGE 0x52</map>
<map>FIRESPIN 0x53</map>
<map>THUNDERSHOCK 0x54</map>
<map>THUNDERBOLT 0x55</map>
<map>THUNDERWAVE 0x56</map>
<map>THUNDER 0x57</map>
<map>ROCKTHROW 0x58</map>
<map>EARTHQUAKE 0x59</map>
<map>FISSURE 0x5A</map>
<map>DIG 0x5B</map>
<map>TOXIC 0x5C</map>
<map>CONFUSION 0x5D</map>
<map>PSYCHIC 0x5E</map>
<map>HYPNOSIS 0x5F</map>
<map>MEDITATE 0x60</map>
<map>AGILITY 0x61</map>
<map>QUICKATTACK 0x62</map>
<map>RAGE 0x63</map>
<map>TELEPORT 0x64</map>
<map>NIGHTSHADE 0x65</map>
<map>MIMIC 0x66</map>
<map>SCREECH 0x67</map>
<map>DOUBLETEAM 0x68</map>
<map>RECOVER 0x69</map>
<map>HARDEN 0x6A</map>
<map>MINIMIZE 0x6B</map>
<map>SMOKESCREEN 0x6C</map>
<map>CONFUSERAY 0x6D</map>
<map>WITHDRAW 0x6E</map>
<map>DEFENSECURL 0x6F</map>
<map>BARRIER 0x70</map>
<map>LIGHTSCREEN 0x71</map>
<map>HAZE 0x72</map>
<map>REFLECT 0x73</map>
<map>FOCUSENERGY 0x74</map>
<map>BIDE 0x75</map>
<map>METRONOME 0x76</map>
<map>MIRRORMOVE 0x77</map>
<map>SELFDESTRUCT 0x78</map>
<map>EGGBOMB 0x79</map>
<map>LICK 0x7A</map>
<map>SMOG 0x7B</map>
<map>SLUDGE 0x7C</map>
<map>BONECLUB 0x7D</map>
<map>FIREBLAST 0x7E</map>
<map>WATERFALL 0x7F</map>
<map>CLAMP 0x80</map>
<map>SWIFT 0x81</map>
<map>SKULLBASH 0x82</map>
<map>SPIKECANNON 0x83</map>
<map>CONSTRICT 0x84</map>
<map>AMNESIA 0x85</map>
<map>KINESIS 0x86</map>
<map>SOFTBOILED 0x87</map>
<map>HIJUMPKICK 0x88</map>
<map>GLARE 0x89</map>
<map>DREAMEATER 0x8A</map>
<map>POISONGAS 0x8B</map>
<map>BARRAGE 0x8C</map>
<map>LEECHLIFE 0x8D</map>
<map>LOVELYKISS 0x8E</map>
<map>SKYATTACK 0x8F</map>
<map>TRANSFORM 0x90</map>
<map>BUBBLE 0x91</map>
<map>DIZZYPUNCH 0x92</map>
<map>SPORE 0x93</map>
<map>FLASH 0x94</map>
<map>PSYWAVE 0x95</map>
<map>SPLASH 0x96</map>
<map>ACIDARMOR 0x97</map>
<map>CRABHAMMER 0x98</map>
<map>EXPLOSION 0x99</map>
<map>FURYSWIPES 0x9A</map>
<map>BONEMERANG 0x9B</map>
<map>REST 0x9C</map>
<map>ROCKSLIDE 0x9D</map>
<map>HYPERFANG 0x9E</map>
<map>SHARPEN 0x9F</map>
<map>CONVERSION 0xA0</map>
<map>TRIATTACK 0xA1</map>
<map>SUPERFANG 0xA2</map>
<map>SLASH 0xA3</map>
<map>SUBSTITUTE 0xA4</map>
<map>STRUGGLE 0xA5</map>
<map>SKETCH 0xA6</map>
<map>TRIPLEKICK 0xA7</map>
<map>THIEF 0xA8</map>
<map>SPIDERWEB 0xA9</map>
<map>MINDREADER 0xAA</map>
<map>NIGHTMARE 0xAB</map>
<map>FLAMEWHEEL 0xAC</map>
<map>SNORE 0xAD</map>
<map>CURSE 0xAE</map>
<map>FLAIL 0xAF</map>
<map>CONVERSION2 0xB0</map>
<map>AEROBLAST 0xB1</map>
<map>COTTONSPORE 0xB2</map>
<map>REVERSAL 0xB3</map>
<map>SPITE 0xB4</map>
<map>POWDERSNOW 0xB5</map>
<map>PROTECT 0xB6</map>
<map>MACHPUNCH 0xB7</map>
<map>SCARYFACE 0xB8</map>
<map>FAINTATTACK 0xB9</map>
<map>SWEETKISS 0xBA</map>
<map>BELLYDRUM 0xBB</map>
<map>SLUDGEBOMB 0xBC</map>
<map>MUDSLAP 0xBD</map>
<map>OCTAZOOKA 0xBE</map>
<map>SPIKES 0xBF</map>
<map>ZAPCANNON 0xC0</map>
<map>FORESIGHT 0xC1</map>
<map>DESTINYBOND 0xC2</map>
<map>PERISHSONG 0xC3</map>
<map>ICYWIND 0xC4</map>
<map>DETECT 0xC5</map>
<map>BONERUSH 0xC6</map>
<map>LOCKON 0xC7</map>
<map>OUTRAGE 0xC8</map>
<map>SANDSTORM 0xC9</map>
<map>GIGADRAIN 0xCA</map>
<map>ENDURE 0xCB</map>
<map>CHARM 0xCC</map>
<map>ROLLOUT 0xCD</map>
<map>FALSESWIPE 0xCE</map>
<map>SWAGGER 0xCF</map>
<map>MILKDRINK 0xD0</map>
<map>SPARK 0xD1</map>
<map>FURYCUTTER 0xD2</map>
<map>STEELWING 0xD3</map>
<map>MEANLOOK 0xD4</map>
<map>ATTRACT 0xD5</map>
<map>SLEEPTALK 0xD6</map>
<map>HEALBELL 0xD7</map>
<map>RETURN 0xD8</map>
<map>PRESENT 0xD9</map>
<map>FRUSTRATION 0xDA</map>
<map>SAFEGUARD 0xDB</map>
<map>PAINSPLIT 0xDC</map>
<map>SACREDFIRE 0xDD</map>
<map>MAGNITUDE 0xDE</map>
<map>DYNAMICPUNCH 0xDF</map>
<map>MEGAHORN 0xE0</map>
<map>DRAGONBREATH 0xE1</map>
<map>BATONPASS 0xE2</map>
<map>ENCORE 0xE3</map>
<map>PURSUIT 0xE4</map>
<map>RAPIDSPIN 0xE5</map>
<map>SWEETSCENT 0xE6</map>
<map>IRONTAIL 0xE7</map>
<map>METALCLAW 0xE8</map>
<map>VITALTHROW 0xE9</map>
<map>MORNINGSUN 0xEA</map>
<map>SYNTHESIS 0xEB</map>
<map>MOONLIGHT 0xEC</map>
<map>HIDDENPOWER 0xED</map>
<map>CROSSCHOP 0xEE</map>
<map>TWISTER 0xEF</map>
<map>RAINDANCE 0xF0</map>
<map>SUNNYDAY 0xF1</map>
<map>CRUNCH 0xF2</map>
<map>MIRRORCOAT 0xF3</map>
<map>PSYCHUP 0xF4</map>
<map>EXTREMESPEED 0xF5</map>
<map>ANCIENTPOWER 0xF6</map>
<map>SHADOWBALL 0xF7</map>
<map>FUTURESIGHT 0xF8</map>
<map>ROCKSMASH 0xF9</map>
<map>WHIRLPOOL 0xFA</map>
<map>BEATUP 0xFB</map>
<map>FAKEOUT 0xFC</map>
<map>UPROAR 0xFD</map>
<map>STOCKPILE 0xFE</map>
<map>SPITUP 0xFF</map>
<map>SWALLOW 0x100</map>
<map>HEATWAVE 0x101</map>
<map>HAIL 0x102</map>
<map>TORMENT 0x103</map>
<map>FLATTER 0x104</map>
<map>WILLOWISP 0x105</map>
<map>MEMENTO 0x106</map>
<map>FACADE 0x107</map>
<map>FOCUSPUNCH 0x108</map>
<map>SMELLINGSALT 0x109</map>
<map>FOLLOWME 0x10A</map>
<map>NATUREPOWER 0x10B</map>
<map>CHARGE 0x10C</map>
<map>TAUNT 0x10D</map>
<map>HELPINGHAND 0x10E</map>
<map>TRICK 0x10F</map>
<map>ROLEPLAY 0x110</map>
<map>WISH 0x111</map>
<map>ASSIST 0x112</map>
<map>INGRAIN 0x113</map>
<map>SUPERPOWER 0x114</map>
<map>MAGICCOAT 0x115</map>
<map>RECYCLE 0x116</map>
<map>REVENGE 0x117</map>
<map>BRICKBREAK 0x118</map>
<map>YAWN 0x119</map>
<map>KNOCKOFF 0x11A</map>
<map>ENDEAVOR 0x11B</map>
<map>ERUPTION 0x11C</map>
<map>SKILLSWAP 0x11D</map>
<map>IMPRISON 0x11E</map>
<map>REFRESH 0x11F</map>
<map>GRUDGE 0x120</map>
<map>SNATCH 0x121</map>
<map>SECRETPOWER 0x122</map>
<map>DIVE 0x123</map>
<map>ARMTHRUST 0x124</map>
<map>CAMOUFLAGE 0x125</map>
<map>TAILGLOW 0x126</map>
<map>LUSTERPURGE 0x127</map>
<map>MISTBALL 0x128</map>
<map>FEATHERDANCE 0x129</map>
<map>TEETERDANCE 0x12A</map>
<map>BLAZEKICK 0x12B</map>
<map>MUDSPORT 0x12C</map>
<map>ICEBALL 0x12D</map>
<map>NEEDLEARM 0x12E</map>
<map>SLACKOFF 0x12F</map>
<map>HYPERVOICE 0x130</map>
<map>POISONFANG 0x131</map>
<map>CRUSHCLAW 0x132</map>
<map>BLASTBURN 0x133</map>
<map>HYDROCANNON 0x134</map>
<map>METEORMASH 0x135</map>
<map>ASTONISH 0x136</map>
<map>WEATHERBALL 0x137</map>
<map>AROMATHERAPY 0x138</map>
<map>FAKETEARS 0x139</map>
<map>AIRCUTTER 0x13A</map>
<map>OVERHEAT 0x13B</map>
<map>ODORSLEUTH 0x13C</map>
<map>ROCKTOMB 0x13D</map>
<map>SILVERWIND 0x13E</map>
<map>METALSOUND 0x13F</map>
<map>GRASSWHISTLE 0x140</map>
<map>TICKLE 0x141</map>
<map>COSMICPOWER 0x142</map>
<map>WATERSPOUT 0x143</map>
<map>SIGNALBEAM 0x144</map>
<map>SHADOWPUNCH 0x145</map>
<map>EXTRASENSORY 0x146</map>
<map>SKYUPPERCUT 0x147</map>
<map>SANDTOMB 0x148</map>
<map>SHEERCOLD 0x149</map>
<map>MUDDYWATER 0x14A</map>
<map>BULLETSEED 0x14B</map>
<map>AERIALACE 0x14C</map>
<map>ICICLESPEAR 0x14D</map>
<map>IRONDEFENSE 0x14E</map>
<map>BLOCK 0x14F</map>
<map>HOWL 0x150</map>
<map>DRAGONCLAW 0x151</map>
<map>FRENZYPLANT 0x152</map>
<map>BULKUP 0x153</map>
<map>BOUNCE 0x154</map>
<map>MUDSHOT 0x155</map>
<map>POISONTAIL 0x156</map>
<map>COVET 0x157</map>
<map>VOLTTACKLE 0x158</map>
<map>MAGICALLEAF 0x159</map>
<map>WATERSPORT 0x15A</map>
<map>CALMMIND 0x15B</map>
<map>LEAFBLADE 0x15C</map>
<map>DRAGONDANCE 0x15D</map>
<map>ROCKBLAST 0x15E</map>
<map>SHOCKWAVE 0x15F</map>
<map>WATERPULSE 0x160</map>
<map>DOOMDESIRE 0x161</map>
<map>PSYCHOBOOST 0x162</map>
<map> </map>

<map> </map>
<map>20- SETTING TILES</map>
<map> </map>
<map> </map>
<map>Ok one new command:</map>
<map> </map>
<map>setmaptile 0x 0x 0x 0x</map>
<map> </map>
<map>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.</map>
<map> </map>
<map>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.</map>
<map> </map>

<map> </map>
<map>21- DOORS</map>
<map> </map>
<map> </map>
<map>New commands:</map>
<map> </map>
<map>setdooropened</map>
<map>setdoorclosed</map>
<map>doorchange</map>
<map> </map>
<map>OK the first two only need two parameters which are the X Y coordinates in order.</map>
<map> </map>
<map>doorchange has to be used after both these commands for there effects to take place.</map>
<map> </map>
<map>Form: setdooropened 0x 0x</map>
<map>Form: setdoorclosed 0x 0x</map>
<map>Form: doorchange</map>
<map>All in hex.</map>

<map> </map>
<map>22- RANDOMS</map>
<map> </map>
<map> </map>
<map>One new command:</map>
<map> </map>
<map>random 0x</map>
<map> </map>
<map>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.</map>

<map> </map>
<map>PART 10 : HEADER EVENTS</map>
<map> </map>
<map> </map>
<map>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:</map>
<map> </map>
<map>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:</map>
<map> </map>
<map>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.</map>
<map>Here's an image from advance map:</map>
<map></map>
<map> </map>
<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. </map>
<map> </map>
<map>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. </map>
<map> </map>
<map>4-Under tilesets you can change the tilesets of this map, then hit change tileset. </map>
<map> </map>
<map>5-Under Map Dimensions you can change the width and height of your map, and then hit change dimensions.</map>
<map> </map>
<map>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.</map>
<map> </map>
<map> </map>
<map>PART 11 : POC and Movement Editor Tutorial</map>
<map> </map>
<map>These tools were made by my deer friend ShadowMrk:</map>
<map> </map>
<map>Tool 1 POC (Palette Order Changer)</map>
<map> </map>
<map> </map>
<map>LINK: http://www.4shared.com/file/_qopsd4S/Palette_Editor.html</map>
<map> </map>
<map>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.</map>

<map> </map>
<map>Tool 2 Movement Editor</map>
<map> </map>
<map> </map>
<map>LINK: http://www.4shared.com/file/W8et3ajg/MOVEMENT_EDITOR.html</map>
<map> </map>
<map>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</map>
<map> </map>
<map>You can type</map>

<map> </map>
<map>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....</map>

<map> </map>
<map> </map>
<map>Here's the link to toolbox 2:</map>
<map>http://www.4shared.com/file/bLqMAT6q/TOOLBOX_2.html</map>
<map> </map>
<map>CLOSING WORD</map>
<map> </map>
<map>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.</map>

Mystery
I've actually made a hard copy of this thing .-. Been reading it.
moomooDerp
how do I make pokemon follow me again