A portable SQLite Pokémon database built for Max Potion, a Pokémon save file editor, and open to any third-party application.
Max Potion Database is a consolidated Pokémon knowledge base generated from multiple public data sources and normalized into a single SQLite database.
The project was created to provide a fast, offline, language-independent data layer for:
- Desktop applications
- Web APIs
- AI systems
- Research projects
- Companion applications
- PKHeX integrations
- Data analysis tools
The database is distributed as a single SQLite file:
pokemon.db
and can be consumed from any platform that supports SQLite.
Each release is tagged db-vS.AAAA.MM.R (for example db-v1.2026.11.0) and publishes
pokemon.db, pokemon.db.gz and pokemon.db.sha256 in the
Releases page.
| Part | Meaning |
|---|---|
S |
Schema version. Only changes when existing queries could break. |
AAAA.MM.R |
Data version: year, month and revision within the month. |
Within the same schema, updates are additive only (new rows, tables or nullable columns), so an
application written for schema S keeps working with every later release of that schema.
The version is stored in the Metadata table (SchemaVersion, DataVersion) and in PRAGMA user_version.
See VERSIONING.md for the full contract and RELEASING.md for the release steps.
Database File:
pokemon.db (~52 MB, ~16 MB compressed)
Row counts of every table in pokemon.db (kept in sync by scripts/check_docs.py --write-stats).
| Table | Records | Purpose |
|---|---|---|
Abilities |
371 | Ability names and descriptions |
EvolutionChains |
484 | Species-to-species evolution edges |
EvolutionConditions |
3,294 | Requirements of each evolution (level, item, trade...) |
FormEvolutionChains |
54 | Evolution edges that involve regional / alternate forms |
FormEvolutionConditions |
340 | Requirements of each form evolution |
FormGameAvailability |
276 | Forms that cannot be built / have their own encounter |
Games |
24 | Game identifiers (one per version pair) |
HiddenItems |
12 | Items the bag must not offer in a game |
ItemDescriptions |
12,738 | Item descriptions in 9 languages, with source |
ItemGameCodes |
9,801 | Which items exist in each game, save id and pouch |
ItemNames |
585 | Official item names PKHeX.Core does not provide |
Items |
2,515 | Item metadata (category, cost, fling) |
Learnsets |
681,289 | Moves each species can learn, per game and method |
MachineMoves |
2,026 | Move taught by each TM / TR / HM per game |
Metadata |
23 | Database version and per-dataset provenance |
Moves |
937 | Move metadata (type, power, accuracy, PP, effect) |
Species |
1,350 | Species and forms: base stats, growth, genus, egg groups |
SpeciesAbilities |
2,926 | Normal and hidden abilities per species |
SpeciesFlavorText |
20,314 | Pokédex entries per species, language and game |
SpeciesGameAvailability |
4,507 | Which species can be created in each game |
SpeciesTypes |
2,115 | Typing of each species (slot 1 / 2) |
TypeEffectiveness |
120 | Attack / defense type multipliers |
| Total (22 tables) | 746,101 |
max-potion-database
│
├── database
│ └── pokemon.db
│
├── resources
│ └── movesets_all_combined.json
│
├── scripts
│ ├── set_version.py
│ ├── validate_db.py
│ ├── check_docs.py
│ └── gen_erd.py
│
├── docs
│ ├── SCHEMA_REFERENCE.md
│ ├── POKEMON_DB_REFERENCE.md
│ ├── DATA_SOURCES.md
│ └── ERD.png
│
├── CHANGELOG.md
├── CONTRIBUTING.md
├── ROADMAP.md
├── VERSIONING.md
├── RELEASING.md
├── LICENCE
└── README.md
Table: Species
Stores Pokémon species metadata and base stats.
Includes:
- Physical characteristics
- Growth rate
- Capture rate
- Base experience
- Gender rate
- Base battle statistics
- Genus (English / Spanish), habitat, colour, shape and egg groups
- The single Gen 1 Special stat (
BaseSpecialGen1) - Alternate and regional forms as extra rows (
SpeciesId > 10000)
Table: SpeciesTypes
Stores primary and secondary typings.
Example:
Bulbasaur
├─ Grass
└─ Poison
Table: SpeciesAbilities
Stores normal and hidden abilities.
Table: Moves
Stores move metadata.
Includes:
- Type
- Power
- Accuracy
- PP
- Priority
- Target
- Effect descriptions
Table: Abilities
Stores ability metadata and descriptions.
Table: Items
Stores item metadata.
Includes:
- Category
- Cost
- Fling data
- Descriptions (legacy English; see
ItemDescriptionsfor localized text)
Table: ItemDescriptions
Item descriptions per language (9 languages) with source and verification status.
Table: MachineMoves
The move taught by each TM/HM/TR in each game.
Table: TypeEffectiveness
Stores battle effectiveness multipliers.
Example:
Fire → Grass = 2.0
Electric → Ground = 0.0
Water → Fire = 2.0
Table: Games
Stores supported game identifiers.
Examples:
redgreen
yellow
emerald
platinum
blackwhite
scarletviolet
Table: Learnsets
Stores move acquisition information per game.
Supports:
- Level-up moves
- TM/HM moves
- Tutor moves
- Egg moves
- Event moves
- Evolution moves
Row count: see Dataset Statistics.
Table: EvolutionChains
Stores evolutionary relationships.
Example:
Bulbasaur
└─ Ivysaur
└─ Venusaur
Table: EvolutionConditions
Stores evolution requirements.
Examples:
Level
Item
Trade
Friendship
Time of Day
Known Move
Location
Weather
Tables: FormEvolutionChains, FormEvolutionConditions
Evolution edges that involve a form (Alolan, Galarian, Hisuian and Paldean forms, Burmy cloaks,
Meowstic, ...). EvolutionChains keeps one edge per species and cannot tell "Slowbro of Galar" from
"Slowbro"; these tables can. Same structure and condition vocabulary as the species tables.
Table: SpeciesFlavorText
Pokédex entries, one row per species, language and game version (English and Spanish). Forms have no entries of their own: use the base species.
Table: SpeciesGameAvailability
Which species can be created in each game that restricts its Pokédex (Let's Go, Sword/Shield,
Legends: Arceus, Scarlet/Violet, Legends: Z-A). Each row has a Status: native, present_illegal,
transfer_only, dlc or uncreatable.
Table: FormGameAvailability
Per-game exceptions for forms: uncreatable (no legal build) and own_encounter (hidden from the form
selector but obtainable through its own legal encounter).
Table: ItemGameCodes
Which items exist in each game, their raw id inside the save file and the bag pouch they belong to.
Table: ItemNames
Official item names in 9 languages for objects that PKHeX.Core does not name (Legends: Z-A), with source, source URL and a confidence level.
Hidden Items
Table: HiddenItems
Items an editor should not offer in a given game (for example TMs that exist in the item table but teach no move).
Table: Metadata
Database version (SchemaVersion, DataVersion, BuildDate, Generator) and one <Dataset>Version /
<Dataset>Source pair per dataset that was added or revised after the first build.
The following resource is intentionally distributed outside the SQLite database:
movesets_all_combined.json
Reason:
- Large file size
- Independent update cycle
- Competitive data changes frequently
- Optional consumption by client applications
Applications may load this resource separately when advanced moveset recommendations are required.
- Portable
- Offline-first
- SQLite-native
- Language independent
- Fast local queries
- Easy integration
- Stable identifiers
- Minimal duplication
This database is generated using:
Exxeguttor.DataBuilder
which transforms and normalizes Pokémon data into a relational SQLite structure.
Additional documentation can be found in:
docs/
Including:
- SCHEMA_REFERENCE.md (every table and column)
- POKEMON_DB_REFERENCE.md
- DATA_SOURCES.md
- ERD.png (all tables; regenerate with
python3 scripts/gen_erd.py)
Run python3 scripts/check_docs.py to verify that the documentation covers every table, column and
Metadata key of the database.
This database may be used in:
- Personal projects
- Open source software
- Commercial software
- Research projects
- Educational tools
- AI systems
subject to the terms of the MIT License.
Pokémon and all related names, characters, species, moves, abilities, items, games, trademarks, and intellectual property are owned by Nintendo, Game Freak, and The Pokémon Company.
Max Potion Database is an independent project and is not affiliated with, endorsed by, or sponsored by Nintendo, Game Freak, The Pokémon Company, or the PKHeX project.
MIT License
See the LICENCE file for details.