Dex is a library for getting information about Pokémon, moves, items, abilities, natures, stats, etc.
By default, Dex gets information about the latest games (currently Pokémon Sword and Shield), but Dex.mod can be used to get information about other games.
const {Dex} = require('pokemon-showdown');
const tackle = Dex.moves.get('Tackle');
console.log(tackle.basePower); // prints 40
The Dex API gives access to a lot of nonstandard data (from other games, from CAP, unreleased things, etc). You often want to filter it out before using it.
For details, see sim/NONSTANDARD.md.
Nonstandard things will still have exists: true, but things we don’t have information for at all (for instance, if you typo) will have exists: false.
isNonstandard will be null for normal things.
const {Dex} = require('pokemon-showdown');
const frobnicate = Dex.moves.get('frobnicate');
console.log(frobnicate.exists); // prints false
console.log(frobnicate.isNonstandard); // prints 'Custom'
const tomohawk = Dex.species.get('tomohawk');
console.log(tomohawk.exists); // prints true
console.log(tomohawk.isNonstandard); // prints 'CAP'
const pikachu = Dex.species.get('pikachu');
console.log(pikachu.exists); // prints true
console.log(pikachu.isNonstandard); // prints null
Dex.modDex.mod(modName: string): ModdedDex
Dex by itself is an object for getting latest-generation information. To get information about another generation, replace Dex with Dex.mod(modName). For instance, to get information about Pokémon Yellow, replace Dex with Dex.mod('gen1').
In the rest of this page, dex will refer to any instance of ModdedDex, either Dex or the return value of Dex.mod.
const {Dex} = require('pokemon-showdown');
const tackle = Dex.mod('gen1').moves.get('Tackle');
console.log(tackle.basePower); // prints 35
Return values have not been stabilized yet. Use the TypeScript definitions if you’d like, but you should probably pin a specific dependency version.
dex: ModdedDexRemember: dex refers to either Dex or Dex.mod(modID).
dex.moves.get(moveName: string): Move
moveName can have any capitalization or whitespace. This includes nonstandard information.dex.moves.all(): Move[]
dex.species.get(speciesName: string): Species
Gets information about a Pokémon species or forme. speciesName can have any capitalization or whitespace. This includes nonstandard information.
Forme information is documented in data/FORMES.md
dex.species.all(): Species[]
dex.abilities.get(abilitysName: string): Ability
abilitysName can have any capitalization or whitespace. This includes nonstandard information.dex.abilities.all(): Ability[]
dex.items.get(itemName: string): Item
itemName can have any capitalization or whitespace. This includes nonstandard information.dex.items.all(): Item[]