This will be a full walkthrough of the process of creating a new game from the unedited Pokémon Essentials package. In order to stay in familiar territory, we will be replicating Pokémon Fire Red. Much of the content in the existing package is already very close to Fire Red, which makes the whole process very easy.

This is not a rapid process. Even with all of the tools provided by Pokémon Essentials, the process of creating a new game will take time and patience.

Step 0: Delete Existing Assets

Pokémon Essentials comes with a collection of existing assets which will need to be partially removed in order to create our new game. Much of the content is common between multiple games (items, sprites, tiles, etc.) and can be left in place and reused.

Here is what we will remove:

  • Example maps (excluding the Intro map and the maps in "Lappet Town", which are similar enough to Pallet town that we will go ahead and reuse them)
  • Trainers (Not trainer types. We'll use a lot of the existing ones.) - Open PBS/trainers.txt and delete the contents.
  • Game-specific switches. These are all of switches starting from switch 33 that do not have a series of dashes for their name. If you forget this step, it won't cause any trouble.

Step 1: Configure Settings

Edit game.ini. Find the line that reads "Title=Pokemon Essentials", and change it to whatever you want to call your name. In our case, we'll change it to "Title=Pokemon Essentials - Essentially Red".

Open the Settings script in RMXP.

General Game Settings

Since we're going for a Gen 3 replica, set the general settings as shown below. If you want your game to feel more like Gen 5, go ahead and leave these as they are.

POISONINFIELD         = true
INFINITETMS           = false

Badge Settings

Fire Red only uses the original 5 HMs, so we're going to have to adjust the badge settings a bit. We'll set the badge number for non-existing HMs to 9, since there is no 9th badge.

BADGEFORCUT            = 2
BADGEFORFLASH          = 1
BADGEFORSURF           = 6
BADGEFORFLY            = 3
BADGEFORDIVE           = 9

Other Settings

There are a handful of other settings to change.

INITIALMONEY = 5000 #I Think?
RoamingAreas = {}
RoamingSpecies = [] #We will update this later, if we get that far
REGIONMAPEXTRAS = [] #Sevii islands will go in here eventually.

Step 2: Introduction

Main article: Game intro

If you want to write a custom introduction, now is the time to do so. Pokémon Essentials comes with an introduction that matches Fire Red, so we'll skip this step.

If you want to change the options for player characters, check out these Tutorials:

  • Tutorial:Altering_Player_Character_Sprites
  • Tutorial:Adding more player characters
  • Tutorial:More_player_characters_options_at_game_start

Your Rival

I'll write this later once I figure out how to actually do it. HighTechnocrat (talk) 15:14, May 7, 2013 (UTC)


Tutorial: Rival

After having the player choose their name, have the image of the player fade out and the one of the rival fade in using move picture commands and such; Several examples of making the pictures fade are shown when the professor fades in and out.  You must have a picture of the rival, Blue in this case, already in the pictures folder.  Remember all sprites in RPGMakerXP must be double their normal size.  Have Oak say, "\bThis is my grandson. He has been your rival since you both were babies." The '\b' is to make the text blue, so it is optional if you do not want text being colored.  To open up the rival naming screen use either of these scripts:

pbSet(12,pbEnterText("Rival's name?",1,7))
pbSet(12,pbEnterText("Rival's name?",1,7,"Blue"))

The second one will have a name pre-typed that is able to be edited if the player wishes.  This will assign the rival name to variable 12.  Whenever referring to the rival in text, use \v[12] to refer to them.  Do not use \v[12] in battle names.  Have the professor say:

Text:\bThat's right!\nI remember now!

Text:\bHis name is \v[12]!

Make sure to have the player's intro sprite reappear depending on gender chosen.  One choice is to enable a self switch when the gender is chosen on each branch and have a conditional branch depending on that self switch.  Make sure not to use self switch A.

Videomixer (talk) 01:28, June 5, 2013 (UTC)

Step 3: Mapping Pallet Town

Since we kept the "Lappet Town" map, we can use it as a base. It is very similar to the original Pallet Town map, with a few things added/removed. For this step, we will make use of the included Tilesets, and base our content on what is listed on the Bulbapedia Fire Red walkthrough. Open RMXP, and switch to the Lappet Town map if it is not already selected.

Maps have 3 tileset layers, and one layer for events. You can switch between layers by pressing F5, F6, and F7 for the tileset layers, and F8 for the events layer. Alternatively, you can click on the layer buttons in the toolbar at the top of the RMXP window.

Resizing and Repositioning the Map

Lappet Town is slightly too small for Pallet Town. In order to keep players from seeing a black void at the left edge of the map, we will need to expand the tree border along the left side. To do this, we will first need to resize and reposition the existing map content. To resize the map, right click on "Lappet Town" in the lower left pane of RMXP and select "Map Properties". Rename the map to "Pallet Town" and increase the width to 36. This will add a 4 tile border to the right side of the map.

Repositioning all of the map contents is somewhat difficult.Switch to layer 1 by clicking the button in the toolbar, or by pressing F5. In the toolbar, look for the icons which look like a Pencil, a yellow rectangle, a yellow oval, a paint bucket, and a dotted rectangle. Select the dotted rectangle to enter "Select" mode. Press Ctrl+A to select the entire map, then copy the map by pressing Ctrl+C or right-clicking and selecting "Copy". Scroll horizontally until the four tiles at the far left of the map are at least partially off the screen. Press Ctrl+P to paste. Double-check that the pasted content exactly lines up with the right edge of the map; there should be 4 trees between the end of the map and the walkable area. If you made a mistake, press Ctrl+Z to undo, and try again. This is somewhat difficult, so it may take several tries.

Note that this will move all of your tiles, but will not move events. Switch to the event layer and drag-and-drop all of the events back into place. This is important so that we will continue to have working doors.

Layer 1

Layer 1 is the ground, trees, flowers, and walls. Things that the player walks on, but can't really interact with. When you select this layer, you should see everything in other layers become transparent.

The Lappet Town map has a path going off to the west of town which we would like to remove. In the left section of the RMXP window you will see a large section filled with the Tilesets. Scroll down a bit and locate the trees which resemble the trees around the outside of town. Click and drag from the upper left corner of the tree image to form a rectable which includes the two identical trees side-by-side. When you move the cursor into the edit window, a white-bordered box will appear in the same shape and size as your selected area. Click to place the tiles so that they match the pattern of trees around the edge of the map. If you make a mistake, you can press Ctrl+Z to undo, or click Edit -> Undo in the menu bar. You can also right-click (and drag) to select tiles on the map to select them for placing elsewhere. This is helpful for duplicating trees and path sections.

After placing the trees, there will still be a remnant of the path in the light grass tiles. Scroll back to the top of the tilesets, and find the tile which matches the edge pattern used along the left side of the town. It is roughly in the middle (horizontally) of the tileset. There is also a small portion of light grass extending to the South of the map which doesn't match Pallet town. Remove it by replacing it with grass tiles similar to how we handled the other path. There are several grass tiles with slightly different patterns, but I won't go into detail on which tiles to use because it is very boring.

Once this is done, compare your map to the picture on the Bulbapedia Fire Red walkthrough page for Pallet Town.

Layer 2

Layer 2 is buildings, signs, and other objects which block the players movement, and can sometimes be interacted with. When you select this layer, tiles in layer 1 will become dark, while tiles in layer 3 will become transparent. The buildings, mailboxes, and fences will become bright.

The only thing that Lappet Town is missing to become Pallet Town is a few signs. Check the Bulbapedia page for the positions of these signs. In the tileset panel, scroll down past the caves and rocks and such until you see a bunch of single objects (Pokéball, Pokédex, cuttable tree, etc.). Find the standing wooden sign which matches the one to the lower left of the flower patch, and click it to select it. Click on the map to place it. Then select the grey sign with red text which attaches to the fences. Click on the fence where the two remaining signs go to overwrite the fence tiles.

Because we don't want to worry about what is to the South right now (route 21), copy the fence along the very bottom of the map by right-clicking one of the tiles, then extend the fence until it reaches the edge of the water. You can do this all at once by clicking and dragging. If you make a mistake, pressing Undo will undo the entire click and drag operation.

Layer 3

Layer 3 is the "foreground"; things which the player can see between their sprite and the screen.

For Pallet town, this will only include the tops of a couple of trees along the bottom edge, which should already be in place. Just to be thorough, we should remove the extra treetops on the left side of the map which are leftover from Lappet town. In the Tilesets pane, click the empty white tile at the very upper left corner, and click on the floating treetops to overwrite them with empty space.

If you want to place floating treetops in the future, find the standing tree on a white background adjacent to the paired trees which we used earlier for the town border. Select the top two tiles of the tree, and click to place them so that they line up with the other trees.


Events are short scripts that handle things like "warping" between maps, conversations, trainer battles, finding items, and all of the other fun stuff that you can interact with in the game.

Pallet Town has a lot of scripts which we will need to add. For the time being, let's focus on the three signs, two mailboxes, and the two people in the town. They will require some simple scripting, but nothing too horrible. We will approach them in order of complexity, and learn as we go.

There is also one person already standing adjacent to your house who is a leftover from Lappet Town.

Sign 1

Sign script

To the upper right of the flower patch. Reads "PALLET TOWN\nShades of your journey await!"

To place the script, double-click on the sign in RMXP. This will open a blank script window. In the very upper left corner, name the script "PalletTown_sign1". In the large empty pane labeled "List of Event Commands:", double-click on the first empty line which starts with "@>". Every script command will start with "@>". When you double-click on a command line, it will open a pop-up titled "Event Commands". This pop-up has three tabs of commands of various types. On tab 1, the very first command is "Show Text...". Click "Show Text" and another popup will appear, prompting you for text input.

For more information, see Messages.

Sign 2

Sign 2 uses two consecutive dialog boxes instead of just displaying all of its text in one dialog box. To do this, use two "Show Text" commands. The first should read "TRAINER TIPS", and the second should read "Press START to open the menu!".

Sign 2 also has some interaction with the "Sign Enthusiast". Add a "Control Switches" command, and choose the first empty switch. If you cleared the game-specific switches, this should be switch 33. Name it "Pleased Sign Enthusiast", and set it to ON.

Sign 3

Duplicate the process in Sign 1, and make the text read "OAK POKeMON RESEARCH LAB".


The mailboxes display your name and your rival's name. To do this, we will need to use the special character \PN for the player's name, and \v[12] for the rival's name. Note that the intro will need to be updated in order to set the rival's name. If you do not, \v[12] will return a 0.

Mr. Technology

The fat man standing below Professor Oak's lab walks around randomly, and you can talk to him. This will require slightly more than just a "Show Text" command. To make this easier, click and drag the man standing next the player's house, and place him below Professor Oak's lab. He should be two spaces to the left of the sign for Oak's lab, on the first square below the fence.

Right click the event space, and select "Edit Event" to open the event editor window. On the left side of the window you will see a picture of the man from the front. If you wish to change this graphic, double-click it to open the list of images in the Graphics/Characters folder. To the right of the graphic is a section called "Autonomous Movement". Set the type to "Random", and leave the Speed and Frequency at 3.

The man also has two existing "Show Text" commands. The man's text should be in blue, so we will use the \c[2] special character to change the text color in each message. Edit them the same way you made the signs. The man's first "Show Text" should say "\c[2]Technology is incredible!" and the second should say "\c[2]You can now store and recall items and POKeMON as data via a PC.".

Sign Enthusiast

This girl really likes signs. She is standing in the space just below the sign at the lower left of the flower patch (sign 2). She has three separate conversation events, which will make her good practice with switches.

Create a new event titled "Pallet Town - Sign Enthusiast". Set the graphic to trchar042, and select the sprite facing upward. The first event page will have the following commands:

  • Show Text: Hm...\nIs that right...
  • Show Text: "Oh!\nLook, look!"
  • Set Event Location: This Event,(010,015),Right
  • Control Self Switch: A =ON

Create a second event page. Check the checkbox labeled "Self Switch" and set the dropdown menu to A. This will cause this event page to execute after the previous event page ran and set the Self Switch A to ON. Add a Show Text command: "Read it, read it!"

Create a third event page; this one will require two switches to activate. Check the checkbox labeled "Self Switch" and set the dropdown menu to A. Check the top checkbox labeled "switch", and set the switch to "033: Pleased Sign Enthusiast". Add a Show Text command: "Signs are useful, aren't they?"

Step 4: Player's House

Looking at this map may seem a little bit strange; there are two seperate areas on the same map! This is generally okay to do for small buildings and houses, but try not to make it a habit. The two sections are separated enough that the player cannot see the other section of the map when pressed against the edge of their current section of the map.

Front Door

The script for the house's front door will need a slight tweak because we repositioned Pallet Town to add a thicker tree border. The fourth line of the scrip uses a "Transfer Player" command. Edit this command. Under "Direct Appointment", click the option and a map of Pallet Town will open. Click on the front door of the player's house.


Step 5: Daisy's House

Daisy is your rival's sister, and since your rival is a child, she owns the house. I'm not certain why your rival's name is on the mailbox instead of Daisy's, but I'm also not sure why your name is on your mailbox instead of your mother's.

Front Door

Do the same stuff that we did to edit the front door at the player's house, but set the destination to Daisy's front door.


Step 6: Oak's Lab

This section only includes the boring, static scripts which exist in Oak's lab. We will tackle the complicated scripts for getting your first pokemon later once we have a better grasp of the simple scripts used for less complex events.


I'm not sure why this girl is here, or who she is.

  • Graphic: NPC 08, facing downard
  • Autonomous Movement: random, slow, slow
  • Commands
    • Show Text: PROF. OAK may not look like much, but he's the
      authority on POKeMON.
    • Show Text: Many POKeMON TRAINERS hold him in high regard.

Professor Oak's Aides

The two aides stand in place and say the exact same thing.

  • Grahic: TRChar028 (facing left or right depending on the aide)
  • Commands:
    • Show Text: I study POKeMON as PROF. OAK's AIDE.

Front Door

Do the same stuff that we did to edit the front door at the player's house, but set the destination to the lab's front door.


When the player first enters the lab, there will be two Pokédexes on a desk at the rear of the lab.

If I remember correctly, these are given to both the player and his rival after the player performs several tasks, including the retrieval of a package for Professor Oak from the next town.

To make these disappear from the desk after they are given to the player and his rival, simply make Professor Oak walk over to them, obscuring them from view, as if he was picking them up in order to give them to the aforementioned duo, then set the pokédexes' Self Switch A (or another if you wish) to ON.

This means that you would have to create a new page in each of the Pokédexes' events sections, giveing them two in total. The first would have the event's graphic to be that of a Pokédex, and the second (with Self Switch A being ON) having a blank graphic.

Step 7: Acquiring Your First Pokémon

Step 8: Mapping Route 101

Route 101 will be our first new map. In the lower left panel of the RMXP window you will find the list of maps. Right click in the panel, and click "New Map". Name it "Route 101". Set the width to 36, and the height to 42. I STRONGLY recommend working from the upper left corner of the map. If you need to expand the dimensions of the map, the extra space will be added at the bottom right edge of the map. If you then need to shift the whole map in any direction, see "Resizing and Repositioning the Map" in the section above.

Along the left and right side of the map, there is a border of trees like the ones bordering Pallet Town. The border should be 4 trees thick in order to keep the player from seeing the black void underneath the tiles. Along the bottom, add one row of trees. Even though there will be a fence just above the trees, you still need to place the tops of the trees as though the player could walk behind them. This will allow us to place our fence in layer 2. Don't forget that the very bottom row of tiles should be treetops so that the tops of the trees from the Pallet Town map look natural.

Fill in the rest of the map to match the existing map based on the map on Bulbapedia. You will need to fill in the tops of some of the trees so that the player can walk behind them. Use the tree in the tileset with a white background, and place the top two rows of tiles in layer 3 (not just the top row of tiles, like you would for trees which the player can walk behind).

Freestanding Trees

Route 101 (and several other routes) have rows of single trees. To place these trees, place grass tiles in layer 1, and use the tree tile with the transparent (white) background in layer 2. If you want the player to be able to walk behind the tops of the trees, place the top row of tiles in layer 3.


Flower tiles can be placed in layer 1 in place of a grass tile; they will animate automatically.


Ledge tiles are placed in layer 2. On route 101, you will have grass or path tiles in layer 1. The ledge tiles are just below the rock/cave tiles, and are easy to miss among the other rock stuff. When you place the ledge tiles properly, they will automatically be set up so that players can jump from them in one direction.

Pokémart Rep

A man from the Pokémart is on route 101 and will give the player a free potion.

Firstly, there must be some text added to the events page that is attached to the Pokémart Rep. Using '\b' before the text makes it blue, which is the colour (or color for non-Europeans) for male speakers.

Next, the command Kernel.pbReceiveItem(PBItems::POTION) should be used. This command gives the player a potion, which you can see at the end of the command, as POTION is the relevant internal name for the item to be given.

Giving the Player More Items

Any remaining text can be added afterwards using more ShowText commands, as well as any other desired commands such as:

  • Removing items from the player's possession using the command $PokemonBag.pbDeleteItem(PBItems::POTION,5) which in this case would remove five potions if the player had them
  • Giving the player a Pokémon using the command pbAddPokemon(:PIKACHU,20) which in this case would give them a level 20 Pikachu

Connecting Maps

Use the External Editor. Open "Visual Editor" and drag the Route 101 map into place so that the path lines up with the path leading north from Pallet Town. Because the two maps are the same width, they should also line up along the edges. Not all maps will work this way, so it is often easier to align them based on walkable paths or trees.

Step 9: Viridian City

The tiles for Viridian City should be fairly straightforward based on what we have learned in the previous sections. There are a couple of new tricks to learn which are detailed below

Cuttable Trees

In the space you want your cuttable tree create an event with the graphic set to "Object tree 1" graphic. (set it to the top left tile). In the commands, put this:

 ​@>Set Move Route: This event
                  : $>Turn Down
@>Conditional Branch: Script: Kernel::pbCut
@Set Move Route: This event
:              : $>Wait: 2 frame(s)
:              : $>Turn Left
:              : $>Wait: 2 frame(s)
:              : $>Turn Right
:              : $>Wait: 2 frame(s)
:              : $>Turn Up
:              : $>Wait: 2 frame(s)
@>Wait for Move's Completion
@>Script: pbEraseThisEvent
: Branch End

Note: In debug mode (when it's open in RPG Maker XP), it will use cut, regardless of if you have a Pokémon with cut. It should be fine when run by the game.exe.

Door Transitions

See Map Transfers for information regarding doors and other transitional events.

Grumpy Old Man

Create an event for the passed out old man. Place him next to the house, in the middle of the path. His event page should only have a text command "I absolutely forbid you to go through here! This is private property!" The second page should be blank except for a condition that a switch is on. Name the switch "Received Pokedex" or something like that.

Create another event next to the old man. Set the trigger to player touch. The event page for it should look like this:

​@>Text: \bI absolutely forbid you to go through here!
:     : This is private property!
@>Set Move Route: Player
                : $>Move Down
@>Wait for Move's Completion

Step 10: Viridian City Pokémon Center

Pokémon Centers have the same layout in every town. After adding the tiles and scripting the PC and the nurse, you may want to make a generic copy of the Pokémon center so that you can paste it later for other towns before adding local NPCs.

See Poké Center for information regarding the scripts for the PC and the nurse at the counter, as well as other information if you need it.

Step 11: Viridian City Pokémart

Pokémarts have the same layout in every town. After adding the tiles, you may want to make a generic copy of the pokemart so that you can paste it later for other towns before adding local NPCs.


At first, the shopkeeper will have some dialogue due to the package that needs to be delivered to Professor Oak. This is done using ShowText commands that will not appear after the delivery of Professor Oak's package. This can be done by setting a Global Switch after the professor thanks the player for his package.

After this, you can use the regular scripts for the Shopkeeper, which you can find on the Poké Mart page.