Essentials Docs Wiki
For the Shadow type used by Shadow Pokémon, see Shadow Pokémon.

This page describes how elemental types are defined. Each Pokémon has either one or two types, and all moves have one type.

Defining an elemental type

A type begins with its definition. This means that it is listed in the PBS file "types.txt", so that it can be recognised by the game as a type.

PBS file "types.txt"

The PBS file "types.txt" lists all the defined types in the game. Each section in this file is one separate type, where a section begins with a line containing an ID in square brackets and ends when the next section begins. Each line in a section is one separate piece of information about that type.

Aside from the ID line, every line in a section follows the format:


where XXX is a property and YYY is the value or values associated with it (the spaces are optional). For example:

Name = Normal
IconPosition = 0
Weaknesses = FIGHTING
Immunities = GHOST
Name = Dark
IconPosition = 17
IsSpecialType = true
Resistances = GHOST,DARK
Immunities = PSYCHIC

All pieces of information are optional, but will have default values if they are not defined. The order of the lines does not matter, except for the ID line in square brackets which must be first.

Data Description Default value
[ID] This is how the scripts refer to the type. Each type must have a different ID. Typically this is the same as the type's name, but written in all capital letters and with no spaces or special characters. In the scripts, the ID is used as a symbol (i.e. with a colon in front of it, e.g. :NORMAL). The ID is never seen by the player.

This line must come first in a section, because, as mentioned above, this line defines when a new section begins.

Name The name of this type, as seen by the player. "Unnamed"
IconPosition Is a number that determines which icon to use to represent this type. See below for a list of graphics that use this number. A value of 0 means the top icon in these graphics, 1 means the second icon, and so on.

This value is also used by Hidden Power when determining its type.

IsSpecialType Is either true or false. If true, moves of this type will use the special stats for damage calculation. If false or undefined, they will use the physical stats.

This only applies if the setting MOVE_CATEGORY_PER_MOVE is false, though, which is only the case in the Gen 3 and older games. If that setting is true (as in Gen 4 and later), each move individually determines whether it is physical or special.

IsPseudoType Is either true or false. If true, this type is a pseudotype, i.e. not a "proper" type. The ??? type is an example of a pseudotype. If false or undefined, this type will NOT be a pseudotype.

No Pokémon should have a pseudotype as one of its elemental types. Pseudotypes cannot be searched for in the Pokédex, the move "Conversion" and the ability "Color Change" cannot change a Pokémon's type to a pseudotype, and so on.

Flags Comma-separated labels applied to the species which can be used to make it behave differently. There are no existing flags. none
Weaknesses A comma-separated list of the IDs of all the elemental types that will inflict double damage (i.e. are super effective) against a Pokémon of this type. none
Resistances A comma-separated list of the IDs of all the elemental types that will inflict half damage (i.e. are not very effective) against a Pokémon of this type. none
Immunities A comma-separated list of the IDs of all the elemental types that cannot inflict any damage on a Pokémon of this type. none

Note that the "???" type should be defined just like any other type. By default, it is the only pseudotype.

Effects of types

Certain types have special effects. For example, Fire-type Pokémon cannot be burned, Ice-type Pokémon cannot be frozen, Flying-type Pokémon are considered to be airborne (making them usually immune to Ground-type moves), and so on. These effects are all coded in the scripts, and are not defined in "types.txt".

Type icons and graphics

Each elemental type requires a number of graphics corresponding to it. The graphics are as follows:

  • Type icon - In the "Graphics/Pictures" folder, called "types.png".
  • Pokédex type icon - In the "Graphics/Pictures/Pokedex" folder, called "icon_types.png".
  • Move box - In the "Graphics/Pictures/Battle" folder, called "cursor_fight.png". Includes both a non-highlighted and a highlighted version of each type's box, side by side.

The order of each icon/box in these files is the same. A type's "IconPosition" value determines which icon/box in these graphics to use - 0 is the one at the top, 1 is the next one down, and so on.

The dimensions of each icon/box cannot be changed except by changing every script in which those graphics are used.