Pokémon Generation
Pokémon are complex creatures. There are dozens of ways they can be customized and configured for battling or spawning.
Pokémon can be generated using generation strings, which are a series of options separated by semicolons. For instance, pikachu;level 25;male would generate a mal, level 25 Pikachu. If given to the &battle trigger, a battle with this wild Pokémon would be initiated. If given to the &mon trigger, the Pokémon would be given directly to the player.
These strings are also used in the battle simulator.
Pokémon Identification
The first option in the generation string should be an identification string. This string identifies the exact Pokémon, stored in some Dex on Pokéngine, that should be generated. The format is:
pokemon,pokedex,form
Here are some simple examples:
pikachu— No Dex given, so uses the lowest ID first (Nintendo, not Aristos).
pikachu,nintendo— Explicitly uses Pikachu from the Nintendo Dex.
pikachu,aristos— Explicitly uses Pikachu from the Aristos Dex.
25,1,0— Dev ID for Pikachu from the Nintendo Dex.
57,46,0— Dev ID for Pikachu from the Aristos Dex.
If you are unsure what string to use, hover over a Pokémon’s dex number on its Dex page, and use the “Dev ID.”
Pokémon Generation Options
The following options can be placed after the identification string, in any order. All options should be separated by semicolons.
- uid
uid id
Set the Pokémon’s unique identifier. Can be any 32-bit, unsigned integer, or an integer between 0 and 4,294,967,295.
- level
- lv
- l
level levels lv levels l levels
Set the Pokémon’s level. Can be a single number, multiple comma-separated values, or a range of values. Use
sameif initiating a trade and you want the new Pokémon to be the same level as the traded Pokémon.Examplespikachu;level 5 pikachu;level 5,10,15 pikachu;level 5-15 pikachu;level same
- happiness
- friendship
- w
happiness value friendship value w value
Set the Pokémon’s happiness/friendship value. Should be between 0 and 255, inclusive.
- egg
- y
egg steps y steps
Set the Pokémon as an egg with the given number of steps required to hatch.
- ivs
- i
ivs iv_values i iv_values
Set the Pokémon’s IV values.
Examplespikachu;ivs 31,0,31,31,31,31
- evs
- e
evs ev_values e ev_values
Set the Pokémon’s EV values.
Examplespikachu;evs 252,0,0,252,0,4
- shiny
- s
shiny [value] s [value]
Set the Pokémon as shiny or not. Use
?for a random chance of shiny. Usenoor0for shiny locked. Any other value, or no value at all, sets the Pokémon as shiny.
- caught
- c
caught caught_string c caught_string
Set the Pokémon’s caught data. Caught strings are another type of string that must be formatted. Every option must appear continuously.
@[time]— Set the time when caughtby[player_id]— Set the player who caught the Pokémonin[item_id]— Set the PokéBall the Pokémon was caught inon[map_id]— Set where the Pokémon was caughtlv[level]— Set what level the Pokémon was caught atExamplescaught @1604587291by2560in1on1328lv60
Here is a complex example of a Pokémon generation string:
pikachu,aristos;level 25;male;shiny;name PikaPika;moves 344,231,85,98;item everstone;caught in16
This string represents a Pikachu from the Aristos Dex. It is male, level 25, and shiny. It is named “PikaPika.” It has the moves Volt Tackle, Iron Tail, Thunderbolt, and Quick Attack. It is holding an everstone, and it is caught in a Cherish Ball.