This article describes how Pokémon work in-game, including how individual Pokémon are defined and other general information relating to them.
- For how a Pokémon species is defined. This is different to defining individual Pokémon in-game, which is what this article is about.
- For how to change something about a particular Pokémon.
- For how to add, remove, count and choose Pokémon.
- For how to make a Pokémon shiny, and how shininess works.
- For how to give a Pokémon multiple forms, including gender differences.
- For how to make Shadow Pokémon and manipulate them, as well as purification.
- For how Pokémon eggs work.
A Pokémon's attributes
Each individual Pokémon in the game has a number of attributes. Together, these attributes define that specific Pokémon. The term "
poke" in the examples below should be replaced with the Pokémon to be modified (e.g.
$Trainer.party is the first Pokémon in the player's party).
| ||The Pokemon's species.|
| ||The Pokemon's nickname. If blank, is the Pokémon's species name instead.|
| || The Pokémon's current level. Depends on the attribute "|
| || The Pokémon's Experience Points. The attribute "|
| || The Pokemon's first and second types. Depends on the first/second types as defined for the Pokémon's species in the PBS file "pokemon.txt" (or in the script section PokemonMultipleForms if the Pokémon has an alternate form).
If the Pokémon only has one type, then "
| || The ID number of the Pokemon's ability. Depends on the attribute "|
| ||If defined, forces the Pokémon's ability to be the first natural (0), second natural (1) or hidden (2) ability available to its species. It is not possible to give the Pokémon any ability other than those defined in the PBS file "pokemon.txt" for its species.|
| || The Pokémon's gender. Is either 0 (male), 1 (female) or 2 (genderless). Depends on the attribute "|
| ||If defined, forces the Pokémon to be male (0) or female (1). It cannot be set to a gender that the Pokémon cannot have.|
| || The Pokemon's nature. Depends on the attribute "|
| ||If defined, forces the Pokémon's nature to be the value of this attribute.|
| || Whether the Pokémon is shiny or not. Depends on the attribute "|
| ||If defined, forces the Pokémon to be shiny (true) or not (false).|
| ||The Pokémon's form. 0 is the default form, and Pokémon with form 0 are as defined in the PBS file "pokemon.txt".|
| ||The Pokémon's current HP.|
| || In order:
All of these are calculated depending on the Pokémon's species, level, IVs, EVs and nature.
| ||The Pokémon's happiness. Is a number between 0 and 255 inclusive.|
| || The Pokémon's status. One of:
| || Is 0, except if the Pokémon is:
| || Used for Pokémon eggs. The number of steps until the egg hatches. If it is 0, it is a Pokémon. The script |
This is the only way in which eggs are different to Pokémon.
| || An array of up to 4 moves that the Pokémon knows. Each move has the following attributes:
In addition, the following two attributes cannot be changed, but are still useful:
| ||A number representing the type of Poké Ball that the Pokémon is in. The list of Poké Balls and their corresponding numbers is in the script section PokémonBalls. Is 0 by default, i.e. a regular Poké Ball.|
| || The Pokémon's held item. Is the internal number of that item, which is the same as |
| || If the Pokémon's item is not a mail item, this attribute is "|
| || An array of the Effort Values this Pokémon has, in the order:
These can each be between 0 and 255 inclusive. They are all 0 when the Pokémon is created.
| || An array of the Individual Values this Pokémon has, in the order:
These can each be between 0 and 31 inclusive. They are randomly set when the Pokémon is created.
| || Is a number between 0 and 255 which describes the Pokérus infection state of this Pokémon. It contains both the strain of the virus, and the remaining infection time in days. As a rough explanation:
| ||Another Pokémon which has been fused with this Pokémon (or nil if there is none). It is a Pokémon itself. Currently only used by Kyurem, to record a fused Reshiram or Zekrom.|
| || The Pokémon's contest stats.
They currently do nothing in Essentials (except "
| ||The Pokémon's markings. The binary version of this number indicates which markings the Pokémon has.|
| ||An array of the Pokémon's ribbons. Each element of the array is either TRUE (has that particular ribbon) or FALSE (doesn't have that particular ribbon).|
| || The Pokémon's personal ID number. A 32-bit number (i.e. a number between 0 and 4,294,967,295), which is randomly generated when the Pokémon is created. The last two octets of the binary version of the ID number (a number between 0 and 65535) is displayed in a Pokémon summary screen, and is given by |
| || The Pokémon's original trainer's ID number (a 32-bit number), name and gender respectively. The last two octets of the binary version of the ID number (a number between 0 and 65535) is displayed on the Trainer card and in Pokémon summary screens. Gender is either 0 (male), 1 (female), 2 (mixed) or 3 (unknown), and only used to colour in some text in a Pokémon summary screen.
| || The method, map ID and Level at which the Pokémon was obtained, and the map the Pokémon hatched from an egg on. "obtainMode" is either "nil", "0" (met), "1" (egg received), "2" (traded) or "4" (fateful encounter).
These three attributes are all set when the Pokémon is generated, and again (except for "obtainMode") when an egg hatches.
| || If this is a string of text, that text will be shown instead of the name of the "obtainMap" in the Summary screens.
Any egg obtained from the Day Care will have this set to "Day-Care Couple".
| || The Pokémon's language. Is one of the following:
Pokémon that the player catches will have the same language as the player.
There are also two functions that affect Pokémon, as follows:
|Function||What it does|
| ||Fully heals the Pokémon. Restores the HP to full, the status to normal, and the PP of all moves to full.|
| || Recalculates the Pokémon's stats (total HP, Attack, Defense, etc.).
Used when creating a Pokémon or egg, when an egg hatches, when a Pokémon's level/species/nature/gender/shininess changes, when an EV-modifying item is used, and when a Pokémon's form changes.
The level limit is defined in the script section Settings, and is a variable called
MAXLEVEL (default 100).
In the script section PBExperience is a large array containing all the "Exp per level" numbers for each growth rate. These numbers only go up to level 100. If the level limit is increased, then the "Exp per level" numbers for levels above 100 are calculated by formulae instead of being looked up in the array. These calculations are written in the def
self.pbGetExpInternal. There are different calculations depending on which growth rate the Pokémon's species has.
Pokérus is a virus that can rarely be contracted by a Pokémon. While it is infected, a Pokémon will receive more EVs from battle than usual. A Pokémon will be infectious for a while after contracting Pokérus, but will still receive the effect of it forever after.
The attribute which records a Pokémon's Pokérus is described above. It works the same as in the official games.
Only wild Pokémon or eggs from the Day Care may be generated with Pokérus. The chance of this is defined in the script section Settings, and is a variable called
POKERUSCHANCE (default 3).
After any battle, an uninfected Pokémon in the player's party will have a 33% chance of catching Pokérus from each infected Pokémon next to it.