| data | ||
| docs | ||
| icons | ||
| items | ||
| items-outline | ||
| pokemon-gen7x | ||
| pokemon-gen8 | ||
| resources | ||
| scripts | ||
| .gitignore | ||
| license.md | ||
| package.json | ||
| readme.md | ||
| updates.md | ||
PokéSprite
This is a collection of the box sprites of every Pokémon from the main game series, and the icons for every collectable and bag item. Also included are custom shiny versions of the box sprites that are not available in-game.
Some examples of the sprites:
These icons can be used as individual files, or accessed programmatically using the included icon database files.
Icons and metadata
This project contains both Pokémon box sprites and item sprites. For Pokémon, both the old style sprites from Pokémon Sun/Moon (Gen 7) and the new style sprites from Pokémon Sword/Shield (Gen 8) are included. Item sprites are available with Gen 8 style white outlines and without.
The item icons are separated by type in subdirectories (e.g. "berry", "evo-item", "valuable-item", etc).
Previous generations of games (Gen 1–2 and Gen 3–4) had their own collections of sprites, but these are not included in this project. The original 40×30 Pokémon sprites from Gen 6–7 are kept for legacy purposes in the /icons directory.
Data files
Developers who want to use these sprites programmatically might want to look at the /data/dex.json and /data/items.json files; the former contains a list of all Pokémon and their associated icons, and the latter links all icons in the repo to their internal IDs used in-game.
Pokémon sprite list
Each entry in the dex.json file contains the following data (example):
// ...
{
"idx": "006",
"name": {
"eng": "Charizard",
"jpn": "リザードン",
"jpn_ro": "Lizardon"
},
"slug": {
"eng": "charizard",
"jpn": "lizardon",
"jpn_ro": "lizardon"
},
"gen-7": {
"forms": {
"$": {
"has_female": false,
"has_right": false
},
"mega-x": {
"has_female": false,
"has_right": false
},
"mega-y": {
"has_female": false,
"has_right": false
}
}
},
"gen-8": {
"forms": {
"$": {
"is_prev_gen_icon": false
},
"gmax": {
"is_prev_gen_icon": false
},
"mega-x": {
"is_prev_gen_icon": true
},
"mega-y": {
"is_prev_gen_icon": true
}
}
}
},
// ...
The jpn_ro item in the name and slug objects refers to the official romanization of the Pokémon's name, rather than a Hepburn transliteration. For example, アーボック is "Arbok", rather than "Ābokku".
The forms object contains a list of all icons pertaining to a Pokémon. It always contains at least a "$" (dollar sign) value, which means the regular form or default icon. Each form object can contain the following details:
| Key | Meaning |
|---|---|
is_alias_of |
This form uses the sprite of another form and does not have its own image |
is_unofficial_icon |
This sprite is not a verbatim original and has been edited in some way (e.g. Pumpkaboo and Gourgeist)† |
is_unofficial_legacy_icon |
As above, but only for the smaller legacy 40×30 sprites (only used for Melmetal) |
is_prev_gen_icon |
This sprite is actually from an earlier generation |
has_right |
A unique right-facing icon is available (e.g. Roselia—only for Gen 7 Pokémon) |
has_female |
A unique female icon is available (e.g. Unfezant) |
†: only applies to non-shiny sprites, as shiny sprites are always unofficial.
Inventory items list
Several files are available for processing the icons for inventory items:
/data/item-map.json– a 1:1 map of item IDs and icon files, e.g."item_0017": "medicine/potion"/data/item-unlinked.json– all inventory icons not linked to an item ID—these are mostly duplicates (e.g. the Metal Coat icon is in both "hold-item" and "evo-item", and so one goes unused) and legacy files/data/item-legacy.json– a list of old item icons from previous gen games
Sprite dimensions
Since Gen 8, the Pokémon box sprites have become 68×56 (up from 40×30 in Gen 7) to accommodate larger icon designs.
Most Pokémon did not get a new sprite as of Gen 8, meaning their old sprite was padded to the new size. Sprites were padded from below, with one extra pixel of space on the bottom (see left).
Since most Pokémon take up a very small amount of pixels of the allotted space, they'll look far more spaced apart than in Gen 7 if they're displayed adjacent to each other. This effect is especially noticeable for not-fully-evolved Pokémon.
To somewhat mitigate this, the sprites can be made to overlap each other. In nearly all cases, only the empty space around the sprite will overlap—if there are multiple large icons next to each other (like several Gigantamax forms) the sprites themselves will overlap, but only a little.
My recommended overlap is -24px left and -16px top, which is a compromise between bringing the smaller sprites closer together and not letting the larger sprites overlap. Here's an example of what that looks like:
![]()
In this example, the larger sprites are quite close together, but not uncomfortably so, and the smaller sprites are not too far away from each other. The banner at the top of the page also uses this same amount of spacing.
TODO: example
Related projects
If your project uses PokéSprite and you'd like to be added to this list, feel free to open an issue.
- PKHeX – Pokémon save file editor
- PikaSprite – a different interface for PokéSprite icons
- Many Google Sheets used by Pokémon traders
License
The source icons are © Nintendo/Creatures Inc./GAME FREAK Inc.
Everything else, and the programming code, is governed by the MIT license.