- For how to define a Pokémon species, see Defining a species.
- For how to change a property of an individual Pokémon, see Editing a Pokémon.
- For adding, removing, counting and choosing Pokémon, see Manipulating Pokémon.
- For Pokémon before they're hatched, see Eggs.
This page describes how Pokémon work in-game. This includes the properties an individual Pokémon has, along with other general information about them.
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 "pkmn
" in the examples below should be replaced with the Pokémon to be modified (e.g. $Trainer.party[0]
is the first Pokémon in the player's party) - see Manipulating Pokémon for ways to refer to individual Pokémon.
Attribute | Description |
---|---|
species
|
The Pokemon's species. |
name
|
The Pokemon's nickname. If blank, is the Pokémon's species name instead. |
level
|
The Pokémon's current level. Depends on the attribute "exp ".
|
exp
|
The Pokémon's Experience Points. The attribute "level " depends on this.
|
type1
|
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 "pokemonforms.txt".
If the Pokémon only has one type, then " |
ability
|
The ID number of the Pokemon's ability. Depends on the attribute "abilityflag " if defined, or the attribute "personalid " if not.
|
abilityflag
|
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 (or "pokemonforms.txt" for its species and form). |
gender
|
The Pokémon's gender. Is either 0 (male), 1 (female) or 2 (genderless). Depends on the attribute "genderflag " if defined, or the attribute "personalID " if not.
|
genderflag
|
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. |
nature
|
The Pokémon's nature. Depends on the attribute "natureflag " if defined, or the attribute "personalID " if not.
|
natureflag
|
If defined, forces the Pokémon's nature to be the value of this attribute. |
isShiny?
|
Whether the Pokémon is shiny or not. Depends on the attribute "personalID ".
|
shinyflag
|
If defined, forces the Pokémon to be shiny (true) or not (false). |
form
|
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". See Forms for more information. |
hp
|
The Pokémon's current HP. |
totalhp
|
In order:
All of these are calculated depending on the Pokémon's species, level, IVs, EVs and nature. |
happiness
|
The Pokémon's happiness. Is a number between 0 and 255 inclusive. |
status
|
The Pokémon's status. One of:
|
statusCount
|
Is 0, except if the Pokémon is:
|
eggsteps
|
Used for Pokémon eggs. The number of steps until the egg hatches. If it is 0, it is a Pokémon. The code pkmn.egg? will return whether pkmn is an egg (it is if "eggsteps " is a positive number).
This is the only way in which eggs are different to Pokémon. |
moves
|
An array of 4 move slots that the Pokémon has. Each move slot has the following attributes:
|
ballused
|
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 PItem_PokeBalls. Is 0 by default, i.e. a regular Poké Ball. |
item
|
The Pokémon's held item. Is the internal number of that item, which is the same as PBItems::ORANBERRY (or similar).
|
mail
|
If the Pokémon's item is not a mail item, this attribute is nil . If it is a mail item, then this attribute is an array of several attributes:
|
ev
|
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. |
iv
|
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. |
pokerus
|
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:
|
fused
|
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.
|
beauty
|
The Pokémon's contest stats.
They currently do nothing in Essentials (except for " |
markings
|
The Pokémon's markings. The binary version of this number indicates which markings the Pokémon has. |
ribbons
|
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). |
personalID
|
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 pkmn.publicID .
Determines the Pokémon's gender, ability, nature and shininess. It also determines where Spinda's spots are, and is used in the evolution methods "Silcoon" and "Cascoon". |
trainerID
|
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 in a Pokémon summary screen. "otgender " is either 0 (male), 1 (female), 2 (mixed) or 3 (unknown), and is only used to colour in some text in a Pokémon summary screen.
Use |
obtainMode
|
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).
The first three of these attributes are set when the Pokémon is generated, and again (except for "
|
obtainText
|
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". |
language
|
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 |
---|---|
pkmn.heal
|
Fully heals the Pokémon. Restores the HP to full, the status to normal, and the PP of all moves to full. |
pkmn.calcStats
|
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. |
Level limit
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 def self.pbGetExpInternal
. There are different calculations depending on which growth rate the Pokémon's species has.
Pokérus
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.