This page describes the Debug mode available in Essentials.
What is Debug mode?
Debugging refers to playing a game with the aim of making sure everything works properly in it, and finding and fixing any problems that may arise before the game is made publicly available.
To help with this, games will often have a Debug mode, which is a mode only accessible by the game's developers. This mode provides additional commands and options that allow the developers to play through the game more easily and see what is going on behind the scenes. These commands can include the ability to modify Pokémon stats, warp to maps, and change game variables.
Essentials has a Debug mode.
Enabling Debug mode
A game run from RPG Maker XP (rather than run by itself) is automatically in Debug mode. The Debug mode can be also toggled on and off by setting the variable
$DEBUG to TRUE or FALSE respectively.
The term "playtest" is used to refer to playing a game in Debug mode.
Gameplay changes in Debug mode
Debug mode changes a number of features in the game, and enables several more options. These changes are:
- Upon starting the game, it may compile data in the PBS files if the game detects they have been updated.
- The splash and title screens are skipped, and the Continue/New Game screen is shown straight away.
- The Continue/New Game screen contains a "Debug" option which opens a limited form of the Debug menu described below.
- The Pause menu contains an extra option: "Debug". This opens the main Debug menu. See below for details.
- This Debug menu can also be accessed by pressing "F9".
- Pressing "F7" will open the debug console.
- In the Party screen and the Pokémon storage screen, the interact menu for Pokémon/eggs contains an extra option: "Debug". This opens a menu with debugging commands that apply to that Pokémon. See below for details.
- In the Bag, the interact menu for items contains an extra option: "Make Mystery Gift". This lets the player create a Mystery Gift containing that item.
- The player can throw away important items such as Key Items.
- Pokémon can forget HM moves.
- The player can use any field moves at any time, even without the required Badge.
- If the field move can be used by interacting with something in the overworld (e.g. a small tree for "Cut", water for "Surf"), then the player can use that move even if none of their Pokémon knows it.
- Field moves that can only be used by selecting it from a Pokémon's menu in the Party screen (e.g. "Teleport", "Sweet Scent", "Fly") still need to be known by a Pokémon in order to select it in the first place. Badge requirements are ignored for these, though.
- Holding Ctrl while moving around lets the player pass over every tile regardless of passability.
- Holding Ctrl while using the Poké Radar will ignore its low battery.
- Holding Ctrl while using Fly will let the player go to all possible Fly destinations, including ones that haven't yet been visited (note that the unvisited locations will not be marked as Fly destinations).
- In the Mining mini-game, holding Ctrl while hitting with either tool will not lower the wall's durability.
There are some other debug features too, mainly additional messages that are displayed when errors occur.
- Holding Ctrl while moving around prevents wild Pokémon battles from occurring.
- Holding Ctrl while attempting to begin a trainer battle will skip that battle and treat it as a win for the player.
- Holding Ctrl when opening the "Fight" menu will cause the Mega Evolution option to be accessible (if the Pokémon has a Mega form), regardless of whether the player has a Mega Ring item or whether they have already Mega Evolved in this battle. The Pokémon must still hold the appropriate item required for its Mega Evolution, though.
- Holding Ctrl while using an attack will guarantee that the attack's additional effect occurs (if it has one).
- Holding Ctrl while throwing a Poké Ball to catch a Pokémon will guarantee that the capture is successful.
- Holding Ctrl while using the "Run" command will allow certain escape, even if the player shouldn't be able to flee. This also applies to trainer battles, in which case, the player can choose whether to treat the battle as a win or a loss for them.
The Debug menu has two levels of options. An option with "
..." at the end of its name opens a sub-menu. Debug features are grouped together for easier navigation.
The Debug menu features are as follows:
|Field options...||Warp to Map||Transfers the player to a random passable spot on a chosen map.|
|Refresh Map||Makes all events on the current map refresh themselves and recheck their page conditions.|
|Switches||Displays a list of all defined Game Switches and allows them to be modified.|
|Variables||Displays a list of all defined Game Variables and allows them to be modified.|
|Use PC||Boots up a PC, from which the Pokémon storage and the player's PC can be accessed.|
|Toggle Storage Wallpapers||Lists all special box wallpapers for Pokémon storage and allows them to be locked and unlocked.|
|Day Care||Displays the Pokémon currently deposited in the Day Care and allows them to be deposited/withdrawn and to force the generation of an egg.|
|Use Relic Stone||Uses the Relic Stone to purify a chosen Shadow Pokémon.|
|Use Purify Chamber||Opens the Purify Chamber to purify Shadow Pokémon.|
|Battle options...||Test Wild Battle||Starts a battle with a wild Pokémon of a chosen species and level.|
|Test Double Wild Battle||Starts a double battle with two wild Pokémon of chosen species and levels.|
|Test Trainer Battle||Starts a single battle with a chosen Pokémon trainer.|
|Test Double Trainer Battle||Starts a double battle with two separate chosen Pokémon trainers.|
|Toggle Battle Logging||Sets whether the game will log various useful messages in battle. This log is recorded in "debuglog.txt" in the "data" folder.|
|Reset Map's Trainers||Resets the Self Switches of all trainer events on the current map.|
|Ready All Phone Rematches||All trainers registered in the phone are set to be awaiting their next rematch.|
|Roaming Pokémon||Displays information on all defined roaming Pokémon, including whether they are roaming and where, and allows roaming status to be changed. Also allows the locations of each roaming Pokémon to be changed.|
|Item options...||Add Item||Adds a chosen number of a chosen item to the player's Bag.|
|Fill Bag||Adds a chosen number of every item to the player's Bag.|
|Empty Bag||Removes all items from the Bag.|
|Pokémon options...||Add Pokémon||Gives the player a Pokémon of a chosen species and level. It will be sent to the PC if the player's party is full. The player is the original owner.|
|Give Demo Party||Fills the player's party with a set of predefined Pokémon.|
|Heal Party||Fully heals all Pokémon in the player's party.|
|Quick Hatch||Makes all eggs in the player's party require only one more step to hatch.|
|Fill Storage Boxes||Fills all Pokémon storage boxes with one Pokémon of each species, all at level 50. All forms of all these species will also be marked as seen.|
|Clear Storage Boxes||Removes all Pokémon from the Pokémon storage.|
|Access Pokémon Storage||Opens the Pokémon storage screen.|
|Player options...||Set Badges||Lists the first 24 Gym Badges and allows the player's ownership of each one to be toggled. Note that the Badges are only called "Badge 1", etc. and that you don't need to have all of them in your game.|
|Set Money||Sets the player's money to a chosen value.|
|Set Coins||Sets the player's Coins to a chosen value.|
|Toggle Running Shoes||Sets whether the player owns a pair of running shoes.|
|Toggle Pokégear||Sets whether the player owns a Pokégear.|
|Toggle Pokédex and Dexes||Sets whether the player owns a Pokédex and which Regional Dexes/National Dex have been unlocked.|
|Set Player Character||Sets the player's character (i.e. a choice of the players listed in the global metadata).|
|Set Player Outfit||Sets the player's outfit number.|
|Set Player Name||Renames the player.|
|Randomise Player ID||Randomises the player's ID.|
|Information editors...||Edit Metadata||Allows each map's metadata to be defined, as well as the global metadata.|
|Edit Map Connections||Lets the user visually connect maps together.|
|Edit Terrain Tags||Allows the terrain tags of each tile in each tileset to be defined. This feature is necessary because of the terrain tag limit set by RPG Maker XP.|
|Edit Wild Encounters||Allows the Pokémon encounters for each map to be modified.|
|Edit Trainer Types||Allows the details of each trainer type to be edited.|
|Edit Individual Trainers||Allows the details of individual trainers and their Pokémon to be edited.|
|Edit Items||Allows the data of items to be edited.|
|Edit Pokémon||Allows the data of Pokémon species to be edited.|
|Edit Regional Dexes||A simpler way of creating and modifying the defined Regional Dexes.|
|Edit Pokémon Sprite Positions||A visual way to position Pokémon sprites in battle.|
|Auto-Position All Sprites||Automatically changes the positioning coordinates of all Pokémon sprites at once, to position them in roughly the right place. Can be used as a starting point.|
|Battle Animation Editor||Opens the Animation Editor to create and edit move animations and some other animations used in battle.|
|Import All Battle Animations||Reads all animation data in the "Animations" folder and adds it to the game.|
|Export All Battle Animations||Creates data files for each separate animation and puts them in the "Animations" folder. Note that the Animation Editor allows individual animations to be exported; this feature is a bulk exporter.|
|Other options...||Manage Mystery Gifts||Edits the contents of the master Mystery Gift file, and creates Gift files for uploading.|
|Extract Text||Extracts all text in the game for localisation.|
|Compile Text||Compiles a text file into a localised format.|
|Compile Data||Compiles all data from the PBS files.|
|Debug Console||Opens the Debug console. This is useful when debugging the game's scripts. To send text to the console, call |
When accessed from the Continue/New Game screen, only the "Information editors..." and "Other options..." sub-menus are accessible. This is because the other sub-menus relate to in-game information which doesn't exist yet (because a save file has not been started or loaded).
Most of the options are self-explanatory, and often display information related to the selected option (e.g. the Pokémon's Hidden Power when "Set IVs" is selected).
An option with "
..." at the end of its name opens a sub-menu with more options in it.
The options in the Pokémon Debug menu are as follows
|HP/Status...||Allows you to set the Pokémon's HP and status condition. You can also make it fainted or heal it completely. You can also edit its Pokérus information.|
|Level/stats...||Lets you sets the Pokémon's level and/or Exp amount (the latter can only set values that lie within the current level). You can also edit the Pokémon's EVs, IVs, randomise its personal ID, set its happiness value and change its contest stats.|
|Moves...||Allows you to change the Pokémon's moveset. You can teach any Pokémon (except Shadow Pokémon) any move, even ones the Pokémon couldn't otherwise learn. You can also make it forget a move (even the last known move), and reset the Pokémon's moveset to what it would have by default. Each move's PP amount and PP Up value can be edited. Finally, the Pokémon's current moveset can be recorded as its initial moveset (for Move Relearner purposes).|
|Set ability||Allows you to change the Pokémon's ability. You can only choose from the abilities available to that Pokémon (including hidden abilities). This overrides the ability it would have naturally, and you can also remove the ability override.|
|Set nature||Allows you to change the Pokémon's nature. This overrides the nature it would have naturally, and you can also remove the nature override.|
|Set gender||Allows you to change the Pokémon's gender. You cannot make a Pokémon a gender it couldn't naturally be (e.g. male Chansey). This overrides the gender it would have naturally, and you can also remove the gender override.|
|Species/form...||Allows you to change the Pokémon's species, e.g. Pikachu, Charmander, Diglett. Also allows you to change the Pokémon's form; note that you can only choose from the forms defined in the PBS files "pokemon.txt" and "pokemonforms.txt". If the species has a "getForm" proc (which determines the Pokémon's form automatically), you can also apply an override to force the chosen form despite the "getForm" proc. You can also remove this override.|
|Cosmetic info...||Lets you set the Pokémon's shininess (via overriding what it would naturally be), the type of Poké Ball it is held in, the ribbons it has, its nickname, and information about the original trainer.|
|Set Egg||Allows you to convert the Pokémon between an egg and a Pokémon. A warning message will appear if the Pokémon couldn't naturally be an egg, but this doesn't prevent it from becoming one. You can also change an egg's remaining steps to 1.|
|Shadow Pkmn...||Allows you to turn the Pokémon into a Shadow Pokémon. You can also change its heart gauge value if it is one. You still have to use a Purify Chamber or Purification Stone to completely remove the Shadow status.|
|Mystery Gift||Allows you to create a Mystery Gift containing the Pokémon. You can set the name and ID of the gift, and set the Pokémon's obtain text. The gift will be added to the "MysteryGiftMaster.txt" file.|
|Duplicate||Duplicates the Pokémon. If the party is full, the duplicate will be stored in the PC.|
|Delete||Deletes the Pokémon. This is irreversible.|