• Stars
    star
    861
  • Rank 52,968 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created over 10 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Database project of box and inventory sprites from the Pokémon core series games

MIT license npm version Updated for

PokéSprite

This is a collection of the box sprites of every Pokémon from the main game series, and the sprites 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:

Pokésprite Gen 8 examples banner

These sprites can be used as individual files, or accessed programmatically using the included sprite database files.

Sprites 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), including the DLC, are included, as well as a number of unofficial sprites for Pokémon Legends: Arceus. Item sprites are available with Gen 8 style white outlines and without.

Directory Example Size Type Description
/pokemon‑gen7x /pokemon-gen7x/ example 68×56 Pokémon Gen 7 sprites, updated to Gen 8 size and contrast
/pokemon‑gen8 /pokemon-gen8/ example 68×56 Pokémon Gen 8 sprites (plus older Gen 7 sprites where needed)
/items /items/ example 32×32 Items Gen 3–8 inventory items
/items‑outline /items-outline/ example 32×32 Items Gen 3–8 inventory items with Sword/Shield style outline
/misc /misc/ example Varies Misc. Miscellaneous sprites from multiple gens

The item and miscellaneous sprites are separated by type in subdirectories (e.g. "berry", "evo-item", "valuable-item", "ribbon", 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.

See the Pokémon sprite overview page for a full list of sprites.

Data files

Developers who want to use these sprites programmatically might want to look at the /data/pokemon.json and /data/item-map.json files; the former contains a list of all Pokémon and their associated sprites, and the latter links all sprites 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": "riza-don",
    "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 name and slug objects contain the Pokémon's name in various languages, including a romanized version of the Japanese name. The jpn_ro item contains GAME FREAK's official rōmaji names that are mainly used in merchandise. For example, for カメール (Wartortle), the jpn slug is "kame-ru", while the jpn_ro slug is "kameil".

The forms object contains a list of all sprites pertaining to a Pokémon. It always contains at least a "$" (dollar sign) value, which means the regular form or default sprite. 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 sprite is available (e.g. Roselia—only for Gen 7 Pokémon)
has_female This Pokémon has visible gender differences (e.g. Unfezant)
has_unofficial_female_icon The female version of this Pokémon's sprite was custom made (e.g. Pikachu)

†: only applies to non-shiny sprites, as shiny sprites are always unofficial.

There are a few cases where a Pokémon's shiny design changed in an update. For example, Minior's shiny form was originally gray but became colorized with the release of Pokémon HOME. This project always uses the latest designs, with the old ones renamed to their gen of origin.

Inventory items list

Several files are available for processing the sprites for inventory items:

  • /data/item-map.json – a 1:1 map of item IDs and sprite files, e.g. "item_0017": "medicine/potion"
  • /data/item-unlinked.json – all inventory sprites not linked to an item ID—these are mostly duplicates (e.g. the Metal Coat sprite 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 sprites from previous gen games

See the inventory overview page for a list of items.

Miscellaneous sprites

For all other sprites that are neither Pokémon nor inventory items, see /data/misc.json. Notably, the ribbons can be found there. Each group of miscellaneous sprites has its own unique data format. See the miscellaneous overview page for all included images.

Sprite dimensions

Since Gen 8, the Pokémon box sprites have become 68×56 (up from 40×30 in Gen 7) to accommodate larger sprite 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 sprites next to each other (like several Gigantamax forms) the sprites themselves will overlap, but only a little.

The 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:

Sprite offset example

With this setup, the larger sprites are quite close together but not uncomfortably so, and the smaller sprites are not too far away from each other. There is some small overlap for the largest sprites (the special Gigantamax forms), but not excessively so, and in most cases it should be rare to see multiple Gigantamax forms next to one another since it's not a permanent form.

For a better example of what many adjacent sprites look like with this setup, see the banner image at the top of the readme, which also uses the same amount of spacing.

Related projects

Projects using PokéSprite:

If your project uses PokéSprite and you'd like to be added to this list, feel free to open an issue to request it.

Other Pokémon artwork related links:

License

The sprite images are © Nintendo/Creatures Inc./GAME FREAK Inc.

Everything else, and the programming code, is governed by the MIT license.

This project couldn't have been made without the help of numerous contributions from the community. See the contributors file for further information and full credits.

More Repositories

1

osx-folder-icons

Colorful folder icons for macOS to help you organize your projects
Shell
66
star
2

allegro-4.2.2-xc

Fork of Allegro 4.2.2 for cross compiling for DOS game development
C
50
star
3

pokesprite-spritesheet

Spritesheet of all Pokémon box sprites and inventory items
HTML
37
star
4

allegro-dos-example

Allegro example program for cross compilation for MS-DOS
Makefile
27
star
5

tune2tube

Quickly uploads an image/audio combination to Youtube
Python
25
star
6

pokeresources

Various Pokémon image resources
18
star
7

PokeDings

Webfont and SVG icons of special characters used in Pokémon nicknames
HTML
15
star
8

Easy3DS

A simple script for generating 3DS CIA files from RPG Maker 2000/2003 games using EasyRPG
Python
14
star
9

pokesprite-gen

Spritesheet generator for efficiently including PokéSprite images in websites
JavaScript
10
star
10

3ds-tpl

Template for developing 3DS games and applications in C
Makefile
9
star
11

spinda-spots

Proof of concept for displaying Spinda's spots on its box sprite
9
star
12

ceegee

Small C game for MSDOS for educational purposes
C
8
star
13

allegro-dos-test

Compilation test for Allegro 4.2.2 for target platform MS-DOS using DJGPP
C
8
star
14

bwpreview

Utility for generating preview images of StarCraft: Brood War and Remastered maps
JavaScript
8
star
15

country-flags

SVG and PNG country flags repository
Python
7
star
16

dada-shell-theme

My personal shell theme and prompt for Fish Shell
Shell
6
star
17

bnetdata

Utility for querying Battle.net information through the StarCraft internal program API
JavaScript
6
star
18

kanaconv

Converts hiragana and katakana to rōmaji according to Modified Hepburn transliteration rules.
Python
6
star
19

beethoven-op111-ly

Lilypond transcription of Beethoven's piano sonata Op.111
LilyPond
6
star
20

grunt-usage

Grunt plugin that writes usage information to the screen
JavaScript
5
star
21

dadafw

Dada Framework – General-purpose SCSS framework for web developers
CSS
5
star
22

ascr

Art Scraper - downloads artwork from websites for personal archiving
JavaScript
4
star
23

beethoven-op106-ly

Lilypond transcription of Beethoven's piano sonata Op.106
LilyPond
4
star
24

mdrscr

Simple scraper library for Mandarake search queries
JavaScript
4
star
25

screp-js

Pure Javascript version of screp, a StarCraft: Remastered replay file parser, compiled from the original Go version using GopherJS
JavaScript
4
star
26

h5bp-print-styles

HTML5 Boilerplate print styles
CSS
4
star
27

pokesprite-gen8-new-icons

Repo for tagging unknown Gen 8 icons for PokéSprite
3
star
28

babel-7-monorepo-example

Example of how to set up a monorepo with Babel 7, Eslint and Jest
Shell
3
star
29

bwtoolsdata

A collection of StarCraft data used to help interpret replay and map files
JavaScript
3
star
30

vgmpfdl

A simple command line script that downloads albums from VGMPF
JavaScript
3
star
31

pokeseen

Script that determines when each Pokémon was last seen in an episode of the TV show
JavaScript
3
star
32

liballeg.4.4.2-osx

Mac OS X build for Allegro (liballeg.4.4.2.dylib) plus tools and other binaries
C
2
star
33

GW2006

SMF 2.0.19 theme for Gaming World Forums based on a design from 2006
Twig
2
star
34

archivetube

A Youtube clone that uses the Internet Archive as storage backend
TSQL
2
star
35

directmvc

Basic MVC system with an advanced YAML-based routing engine and Django-style templating
PHP
1
star
36

cmd-tokenize

Library for converting terminal command strings into an easy to process format
JavaScript
1
star
37

pytpl

Template for developing Python applications or scripts
Python
1
star
38

scscrape

Simple Soundcloud set/playlist download script
JavaScript
1
star
39

webpack-css-extract-test

Test that highlights how images don't get deduped when using the ExtractTextPlugin with Webpack
JavaScript
1
star
40

zenkaku-string

String functions for handling East Asian wide characters in terminals
JavaScript
1
star
41

ly-ms

Lilypond source files for use in music engraving projects
LilyPond
1
star
42

screp-js-file

Pure Javascript version of screp, a StarCraft: Remastered replay file parser - local filesystem version
JavaScript
1
star
43

denormalize

Library for processing and extracting assets for the 3D/ADV engine
JavaScript
1
star
44

grx-2.4.9-xc

Copy of GRX 2.4.9 with instructions for cross-compiling
C
1
star
45

pager-js

Utility to back up HTML pages and all its linked resources as a single file
JavaScript
1
star
46

splitvod

A very simple single-file command-line tool that generates ffmpeg commands to create split-screen vods
JavaScript
1
star
47

msikma-lib-projects

Monorepo containing several JS libraries (some with CLI tool) and common code
HTML
1
star
48

normtextures

List of all textures from the MS-DOS game Normality (1996)
JavaScript
1
star
49

screptools

Library for working with StarCraft: Remastered replay and map files
JavaScript
1
star
50

create-dada-cli

CLI tool for quickly scaffolding new CLI tools in Node/JS
JavaScript
1
star
51

ekizo-dl

A script that downloads auction images from Mandarake
Python
1
star
52

cpl-hydrabot

Discord bot designed to help run the StarCraft CPL (Coach-Pupil League)
JavaScript
1
star
53

nslscore

Casting scoreboard app for NSL 6 (nOm Starleague 6)
JavaScript
1
star