Skip to main content

Overview

Pokémon Essentials BES is built on top of RPG Maker XP, leveraging its powerful map editor and event system while extending it with Pokémon-specific functionality.
You’ll need RPG Maker XP to edit maps and events. The Editor.exe file opens your project in RPG Maker XP.

RPG Maker XP Components

Map Editor

Visual editor for creating game world layouts

Event System

Scripted events for NPCs, items, and cutscenes

Database

Stores animations, variables, and switches

Script Editor

Built-in Ruby script editor (F11)

Opening the Editor

To open your project in RPG Maker XP:
1

Launch Editor

Double-click Editor.exe or open the project file in RPG Maker XP
2

Wait for Loading

The editor loads all game data and maps
3

Start Editing

You can now edit maps, events, and database entries
Don’t run multiple instances of the editor - this can corrupt your project!

Map Editor

The map editor is where you design your game world:

Map Layers

RPG Maker XP uses three tile layers:
Layer System
Layer 3 (Top)    - Roofs, overhead objects
Layer 2 (Middle) - Walls, furniture
Layer 1 (Base)   - Ground, floors
Event Layer      - NPCs, signs, triggers

Map Properties

Determines which tiles are available:
  • Outdoor tilesets for routes and towns
  • Indoor tilesets for buildings
  • Cave tilesets for dungeons
Background music that plays on this map:
  • Set from Audio/BGM/ folder
  • Can be overridden by events
Random encounter configuration:
  • Enemy troop selection
  • Encounter rate (steps between encounters)
  • Note: Essentials uses PBS/encounters.txt instead
Width and height in tiles:
  • Can be resized from map properties
  • Larger maps use more memory

Map Tools

ToolHotkeyPurpose
PenPDraw single tiles
RectangleRFill rectangular areas
FillFFlood fill areas
EventEPlace/edit events

Event System

Events are the core of RPG Maker’s interactivity:

Event Structure

Event Anatomy
Event
├── Name (optional)
├── Position (X, Y)
├── Graphic (sprite)
├── Priority (Above/Normal/Below character)
├── Trigger (Action button, Player touch, etc.)
└── Pages
    ├── Conditions (switches, variables)
    └── Commands (event commands)

Event Triggers

Triggers when player presses the action key (Enter/Z)
  • Used for: NPCs, signs, items
  • Most common trigger type

Common Event Commands

Dialog and Messages

Event Commands
@>Text: "Hello! Welcome to the Pokémon Center!"
@>Show Choices: Yes/No
@>Conditional Branch: If Yes
  @>Text: "Let me heal your Pokémon!"

Movement

Event Commands
@>Set Move Route: Player
  @>Move Up
  @>Move Right
  @>Wait: 20 frames

Control Flow

Event Commands
@>Control Switches: [0001: Defeated Gym Leader] = ON
@>Control Variables: [0001: Badge Count] += 1
@>Conditional Branch: Switch [0001: Defeated Gym Leader] == ON

Essentials Integration

Script Calls in Events

Essentials extends RPG Maker with custom script calls:

Give Pokémon

Event Script Call
pbAddPokemon(:PIKACHU, 5)

Start Wild Battle

Event Script Call
pbWildBattle(:ZAPDOS, 50)

Give Item

Event Script Call
pbReceiveItem(:POTION, 5)

Trainer Battle

Event Script Call
pbTrainerBattle(:RIVAL, "Blue")
Script calls go in the “Script” event command, accessed by pressing the @> button and selecting Script.

Essentials-Specific Events

Common event patterns in Pokémon games:
pbSet(1,$Trainer.name)
Kernel.pbMessage(_("Welcome to the Pokémon Center!"))
pbMessage(_("We'll heal your Pokémon to perfect health!"))
pbMessage(_("Please wait a moment."))
pbFadeOutIn(99999) {
  for i in $Trainer.party
    i.heal
  end
}
pbMessage(_("Thank you for waiting! Your Pokémon are fully healed!"))
pbTrainerBattle(:YOUNGSTER,"Joey","You're strong!",false,1)
if pbTrainerDefeated?(:YOUNGSTER,"Joey",1)
  pbMessage(_("That was a great battle!"))
  pbSet(100,true)  # Set switch that battle was won
end
pbChoosePokemon(1,3)
if pbGet(1)>=0
  pbAddPokemon(pbGet(1),5)
  pbMessage(_("You chose #{PBSpecies.getName(pbGet(1))}!"))
end
if pbHasSpecies?(:PIKACHU)
  pbMessage(_("Oh, you have a Pikachu!"))
else
  pbMessage(_("I love Pikachu!"))
end

Database Integration

Variables and Switches

Essentials uses RPG Maker’s variables and switches:
Common Variables
Variable 1: Temporary storage
Variable 2: Badge count
Variable 3: Money
Variable 4: Pokédex count

Switch 1: Has Pokédex
Switch 2: Can use Fly
Switch 3: Defeated Elite Four
Document your switches and variables! Create a list of what each ID is used for.

Common Events

Reusable event logic:
  • Common Event 1: Level up party
  • Common Event 2: Heal party
  • Common Event 3: Item obtain fanfare
Call from other events:
Event Command
@>Call Common Event: [001: Heal Party]

Animations

Move animations are stored in the database:
Animation System
Database → Animations
├── Animation 1: Cut
├── Animation 2: Fly
└── Animation 100: Custom move animation

PBS/move2anim.txt maps moves to animations:
CUT,1
FLY,2

Map Metadata

Essentials extends map properties via PBS/metadata.txt:
metadata.txt Example
[001]  # Map ID
Outdoor=true
Bicycle=true
BattleBack=field
WildBattleBGM=Battle wild.ogg
Environment=Grass
This controls:
  • Day/night tinting
  • Battle backgrounds
  • Available HM moves
  • Weather effects
  • Encounter types

Testing from Editor

RPG Maker XP includes testing features:

Test Play (F12)

Starts the game from the current map:
  • Player appears at cursor position
  • All switches/variables at default
  • Fast testing of specific maps

Battle Test

Test individual battles:
  • Configure test party
  • Set enemy troops
  • Test battle mechanics
F12 reset is disabled in Essentials BES. Use Alt+F4 to close test play.

Workflow Tips

1

Plan Your Maps

Sketch out map layouts before opening the editor
2

Build in Layers

Complete base layer, then add details and events
3

Test Frequently

Use Test Play to verify events work correctly
4

Organize Events

Name events clearly for easy identification
5

Backup Regularly

Save and backup your maps frequently

Common Pitfalls

Avoid these common mistakes:
Autorun without exit condition - Freezes the game
Forgetting priorities - Events appear below/above player incorrectly
Missing event pages - Events don’t respond to game state
Overlapping events - Multiple events on same tile conflict
Not testing - Bugs discovered too late

Advanced Integration

Custom Tilesets

Create custom tilesets:
  1. Design tileset graphic (256px width)
  2. Import to Graphics/Tilesets/
  3. Configure passability in database
  4. Assign to map

Parallax Mapping

Create detailed maps with parallax:
  1. Draw full map as single image
  2. Place in Graphics/Panoramas/
  3. Set as map panorama
  4. Use empty tileset for events

Dynamic Events

Create events that change based on game state:
Event Pages
Page 1: Before gym battle (show trainer)
Page 2: After gym battle (show empty space)
  Condition: Switch [Defeated Gym Leader] = ON

Next Steps

Creating Maps

Step-by-step map creation guide

Custom Events

Writing event scripts for Essentials

PBS Metadata

Configure map properties

Game Structure

Understanding file organization

Build docs developers (and LLMs) love