Skip to main content

Overview

The Items API provides comprehensive data about Pokémon items including held items, evolution items, Mega Stones, Z-Crystals, and more.

Basic Usage

Get an Item

Retrieve item information using Dex.items.get():
const {Dex} = require('pokemon-showdown');

const leftovers = Dex.items.get('Leftovers');
console.log(leftovers.name); // 'Leftovers'
console.log(leftovers.num); // Item dex number
console.log(leftovers.gen); // Generation introduced
Item names are case-insensitive and whitespace is ignored.
// All of these work
Dex.items.get('leftovers');
Dex.items.get('Leftovers');
Dex.items.get('LEFTOVERS');
Dex.items.get('L e f t o v e r s');

Item Properties

const choiceBand = Dex.items.get('Choice Band');

console.log(choiceBand.name); // 'Choice Band'
console.log(choiceBand.num); // 220
console.log(choiceBand.gen); // 3
console.log(choiceBand.spritenum); // 68
console.log(choiceBand.isChoice); // true

Held Item Types

Type-Boosting Items

const flamePlate = Dex.items.get('Flame Plate');

console.log(flamePlate.onPlate); // 'Fire'
console.log(flamePlate.num); // 298
// Boosts Fire-type moves by 20%
// Changes Arceus to Fire-type

const splashPlate = Dex.items.get('Splash Plate');
console.log(splashPlate.onPlate); // 'Water'

Choice Items

const choiceBand = Dex.items.get('Choice Band');
console.log(choiceBand.isChoice); // true
// Boosts Attack by 50%, locks into one move

const choiceScarf = Dex.items.get('Choice Scarf');
console.log(choiceScarf.isChoice); // true  
// Boosts Speed by 50%, locks into one move

const choiceSpecs = Dex.items.get('Choice Specs');
console.log(choiceSpecs.isChoice); // true
// Boosts Special Attack by 50%, locks into one move

console.log(choiceBand.gen); // 3
console.log(choiceScarf.gen); // 4
console.log(choiceSpecs.gen); // 4

Berries

const sitrusBerry = Dex.items.get('Sitrus Berry');

console.log(sitrusBerry.isBerry); // true
console.log(sitrusBerry.naturalGift);
// { basePower: 80, type: 'Psychic' }
// Heals 1/4 max HP when below 50% HP

const oranBerry = Dex.items.get('Oran Berry');
console.log(oranBerry.isBerry); // true
// Heals 10 HP (not percentage-based)

Mega Stones

const venusaurite = Dex.items.get('Venusaurite');

console.log(venusaurite.megaStone);
// { 'Venusaur': 'Venusaur-Mega' }
console.log(venusaurite.itemUser); // ['Venusaur']
console.log(venusaurite.num); // 659
console.log(venusaurite.gen); // 6
console.log(venusaurite.isNonstandard); // 'Past'

const charizarditeX = Dex.items.get('Charizardite X');
console.log(charizarditeX.megaStone);
// { 'Charizard': 'Charizard-Mega-X' }

const charizarditeY = Dex.items.get('Charizardite Y');
console.log(charizarditeY.megaStone);
// { 'Charizard': 'Charizard-Mega-Y' }

Z-Crystals

const electriumZ = Dex.items.get('Electrium Z');

console.log(electriumZ.zMove); // true
console.log(electriumZ.zMoveType); // 'Electric'
console.log(electriumZ.onPlate); // 'Electric'
console.log(electriumZ.num); // 779
console.log(electriumZ.gen); // 7
console.log(electriumZ.isNonstandard); // 'Past'

const fightiniumZ = Dex.items.get('Fightinium Z');
console.log(fightiniumZ.zMoveType); // 'Fighting'

Evolution Items

const thunderStone = Dex.items.get('Thunder Stone');
console.log(thunderStone.num); // 83
console.log(thunderStone.gen); // 1
// Evolves Pikachu → Raichu

const duskStone = Dex.items.get('Dusk Stone');
console.log(duskStone.num); // 108
console.log(duskStone.gen); // 4
// Evolves Murkrow → Honchkrow, etc.

const ovalStone = Dex.items.get('Oval Stone');
console.log(ovalStone.num); // 110
// Evolves Happiny → Chansey when held + daytime level-up

Special Items

Utility Items

const lifeOrb = Dex.items.get('Life Orb');
console.log(lifeOrb.num); // 270
console.log(lifeOrb.gen); // 4
// Boosts moves by 30%, loses 10% HP per attack

const expertBelt = Dex.items.get('Expert Belt');
console.log(expertBelt.num); // 268
// Boosts super effective moves by 20%

Status Items

const flameOrb = Dex.items.get('Flame Orb');
console.log(flameOrb.num); // 273
console.log(flameOrb.gen); // 4
// Burns the holder after one turn

const toxicOrb = Dex.items.get('Toxic Orb');
console.log(toxicOrb.num); // 272
// Badly poisons the holder after one turn

const stickyBarb = Dex.items.get('Sticky Barb');
console.log(stickyBarb.num); // 288
// Damages holder, may transfer on contact

Forme-Changing Items

const griseousOrb = Dex.items.get('Griseous Orb');
console.log(griseousOrb.num); // 112
console.log(griseousOrb.itemUser); // ['Giratina']
// Changes Giratina to Origin Forme

const adamantOrb = Dex.items.get('Adamant Orb');
console.log(adamantOrb.itemUser); // ['Dialga']
// Boosts Dialga's Dragon/Steel moves

Generation-Specific Items

New Item Mechanics

// Gen 9 items
const boosterEnergy = Dex.items.get('Booster Energy');
console.log(boosterEnergy.num); // 1880
console.log(boosterEnergy.gen); // 9
// Activates Paradox abilities

const clearAmulet = Dex.items.get('Clear Amulet');
console.log(clearAmulet.num); // 1882
// Prevents stat lowering

const abilityShield = Dex.items.get('Ability Shield');
console.log(abilityShield.num); // 1881
console.log(abilityShield.ignoreKlutz); // true
// Protects ability from being changed

Past Generation Items

const gen1Dex = Dex.mod('gen1');
const gen1Items = gen1Dex.items.all();
console.log(gen1Items.length); // 0 (no held items in Gen 1)

const gen2Dex = Dex.mod('gen2');
const leftovers = gen2Dex.items.get('Leftovers');
console.log(leftovers.exists); // true
console.log(leftovers.gen); // 2

List All Items

Retrieve all item data:
const allItems = Dex.items.all();

console.log(allItems.length); // 2000+ items

// Filter to berries only
const berries = allItems.filter(i => i.isBerry && i.exists);

// Filter to Mega Stones
const megaStones = allItems.filter(i => 
  i.megaStone && i.exists
);

// Filter to current generation items
const currentItems = allItems.filter(i => 
  i.exists && !i.isNonstandard
);
The .all() method includes nonstandard items from past generations, unreleased items, and Pokéballs. Always check exists and isNonstandard properties.

Checking Item Existence

const leftovers = Dex.items.get('Leftovers');
console.log(leftovers.exists); // true
console.log(leftovers.isNonstandard); // null (standard)

const venusaurite = Dex.items.get('Venusaurite');
console.log(venusaurite.exists); // true
console.log(venusaurite.isNonstandard); // 'Past'

const fakeItem = Dex.items.get('Not Real Item');
console.log(fakeItem.exists); // false

Practical Examples

Find All Choice Items

const choiceItems = Dex.items.all()
  .filter(i => i.isChoice && i.exists)
  .map(i => i.name);

console.log(choiceItems);
// ['Choice Band', 'Choice Scarf', 'Choice Specs']

Get All Type Plates

const plates = Dex.items.all()
  .filter(i => i.onPlate && i.exists && !i.isNonstandard)
  .map(i => ({ name: i.name, type: i.onPlate }));

plates.forEach(plate => {
  console.log(`${plate.name}: ${plate.type} type`);
});

Find Berry by Type

function findBerriesByType(type) {
  return Dex.items.all()
    .filter(i => i.isBerry && i.exists)
    .filter(i => i.naturalGift?.type === type)
    .map(i => i.name);
}

const fireberries = findBerriesByType('Fire');
console.log('Fire-type Natural Gift berries:', fireberries);

Get Mega Stone for Species

function getMegaStone(speciesName) {
  const allItems = Dex.items.all();
  const megaStone = allItems.find(i => 
    i.megaStone && i.megaStone[speciesName]
  );
  
  if (megaStone) {
    return {
      stone: megaStone.name,
      forme: megaStone.megaStone[speciesName]
    };
  }
  return null;
}

const venusaurStone = getMegaStone('Venusaur');
console.log(venusaurStone);
// { stone: 'Venusaurite', forme: 'Venusaur-Mega' }

List All Fling Powers

const flingPowers = new Map();

Dex.items.all()
  .filter(i => i.fling && i.exists && !i.isNonstandard)
  .forEach(i => {
    const power = i.fling.basePower;
    if (!flingPowers.has(power)) {
      flingPowers.set(power, []);
    }
    flingPowers.get(power).push(i.name);
  });

for (const [power, items] of flingPowers) {
  console.log(`${power} BP: ${items.length} items`);
}

Species API

Find which Pokémon can use specific items

Moves API

Learn about moves that interact with items

Abilities API

Discover abilities that affect items

Formats Data

Check format-specific item restrictions

Build docs developers (and LLMs) love