Essentials Docs Wiki

Professor Oak offers a choice of three Pokémon.

This page describes the scenario in which the player chooses a starter Pokémon. Specifically, it describes the classic method of choosing a starter, i.e. picking a Poké Ball from a table.

The choosing area

Firstly, you will need to create a location where the player will choose their starter. This may be a Pokémon Lab, or it may be somewhere else. For convenience, it should be an enclosed place with restricted entrances (e.g. indoor places can only be exited via a door).

The introductory text that explains the player is about to choose a starter is just normal text. However, at the end of this text (when the player has to choose a starter), you should set a Game Switch (3 by default) to ON. This Switch shows that the player is in the middle of making their choice, and shouldn't be allowed to leave.

Place blank events around the choosing location, such that it is impossible for the player to leave without stepping on one. Each event will have two pages:

  1. The first page is completely empty.
  2. The second page has no graphic, triggers upon Player Touch, and depends on Game Switch 3 being ON. It should display a message like "Wait, you haven't chosen a Pokémon yet!", turn the player around and make them step back towards the choosing area.

The Professor's event should also have a page that depends on Game Switch 3 being ON, which displays text like: "Which Pokémon will you choose?"

The Poké Balls

The Poké Ball events themselves will each need 3 separate pages (in the following order):

  1. The first simply displays a message like: "This ball contains a Pokémon caught by the Professor."
  2. The second depends on Game Switch 3 being ON. It asks whether the player wants the Pokémon within, and gives it to them if so (see below).
  3. The third depends on the event's Self Switch A being ON. It is a blank page (even the graphic).

The second page should have commands that look something like this:

@>Text: Oak: So, you want Bulbasaur, the grass Pokémon?
@>Show Choices: Yes, No
 : When [Yes]
  @>Script: pbAddPokemon(:BULBASAUR,5)
  @>Control Switches: [0003: Choosing starter] = OFF
  @>Control Variables: [0007: Starter choice] = 1
  @>Control: Self Switch: A =ON
 : When [No]
  @>Text: Oak: Choose carefully!
 : Branch End

The highlighted parts (and the text) will vary between each Poké Ball. The numbers of the Game Switch and Game Variable may also be different depending on your game.

Game Variable 7 records which starter the player chose. Typically, the number recorded is either 1 (the Grass starter), 2 (the Fire starter) or 3 (the Water starter). This information can be used later on in the game, such as to decide which version of a rival to battle. If this number has been set at all (i.e. is not 0), that means the player has chosen a starter (useful for automatically continuing afterwards).

Game Switch 3 will need to be turned OFF again, now that the player has chosen a starter. Doing so will "deactivate" the events all around the choosing area that prevent the player from leaving.

The event's Self Switch A also needs to be set. This makes that particular Poké Ball event show a different page, which is blank (i.e. the Poké Ball has been taken and is no longer there).

Automatically continuing afterwards

You may want to have things happen automatically as soon as you pick a starter (such as making the rival go to pick a different starter).

Create an event page somewhere (preferably in a new event all on its own) that has the Autorun trigger, and make it depend on Game Variable 7 being greater than 0. When the player chooses a starter, this Variable will be made greater than 0, so this event page will then immediately run.

You will use basic RMXP eventing to make things happen now, which is not explained on this wiki as there are many guides to it online. If you want different things to happen depending on the starter the player chose (e.g. the rival goes to a different Poké Ball and picks it up), then have two Conditional Branches arranged as follows:

@>Conditional Branch: Variable [0007: Starter choice] == 1   - (Player chose the Grass starter)
  @> The rival goes to the Fire starter and picks it up
 : Else
  @>Conditional Branch: Variable [0007: Starter choice] == 2 - (Player chose the Fire starter)
    @> The rival goes to the Water starter and picks it up
   : Else                                                    - (Player chose the Water starter)
    @> The rival goes to the Grass starter and picks it up
   : Branch End
 : Branch End

Again, the highlighted parts are to be filled in by basic RMXP eventing.

At the end of the Autorun page, you should set that event's Self Switch A to ON, and include another page in that event which depends on its Self Switch A being ON. That second page will be blank. This makes sure that the automatic continuing only happens once.


  • You could make a special scene for choosing a starter Pokémon, like in the newer games, rather than the above. This can be done with a single event and event commands (rather than scripts) if you're clever.
  • You can modify the chosen Pokémon in some way by using standard modifying code (e.g. give it a special move/good IVs/etc.).
  • Why stick to same old formula of choosing from three starters that form a Grass/Fire/Water effectiveness triangle?