Pokemon Save Structure (X/Y)
Pokémon in the games Pokémon X and Y are stored in a new 232 byte structure (for the box data only). Party Pokémon hold 28 bytes of additional data for overworld and battle values. We recommend using the pkx extension for decrypted 232-byte box data and 260-byte party data structures.
Checksum / Block Shuffling / Encryption
There have been some changes compared to the Generation 4 and Generation 5 structures. First, the LCRNG to decrypt the structure's blocks is now seeded with the encryption key at the beginning of the pkx file. Second, the blocks are now 56 bytes instead of the previous 32. However, the way the blocks are shuffled based on the PID did not change. That said, the shuffling algorithm now uses the encryption key at the beginning of the pkx instead of the PID.
Unencrypted bytes (0x0-0x7)
Offset | Contents |
---|---|
0x00-0x03 | Pkx encryption key |
0x04-0x05 | Sanity Placeholder |
0x06-0x07 | Checksum |
Encrypted bytes
Block A (0x8-0x3F)
Offset | Contents |
---|---|
0x08-0x09 | National Pokédex ID |
0x0A-0x0B | Held Item |
0x0C-0x0D | OT ID |
0x0E-0x0F | OT Secret ID |
0x10-0x13 | Experience points |
0x14 | Ability |
0x15 | Ability number |
0x16-0x17 | Unknown |
0x18-0x1B | Personality value (Also known as the PID) |
0x1C | Nature |
0x1D | Bit 0 - Fateful Encounter Flag Bit 1 - Female Bit 2 - Genderless Bit 3-7 - Alternate Forms |
0x1E | HP Effort Value |
0x1F | Attack Effort Value |
0x20 | Defense Effort Value |
0x21 | Speed Effort Value |
0x22 | SP Attack Effort Value |
0x23 | SP Defense Effort Value |
0x24 | Contest Stat: Cool |
0x25 | Contest Stat: Beauty |
0x26 | Contest Stat: Cute |
0x27 | Contest Stat: Smart |
0x28 | Contest Stat: Tough |
0x29 | Contest Stat: Sheen |
0x2A | Markings |
0x2B | Pokérus |
0x2C-0x2F | (Secret) Super Training Gold Medal Flags |
0x30-0x34 | Ribbons |
0x35-0x37 | Unused |
0x38 | Contest Memory Ribbon [Count] |
0x39 | Battle Memory Ribbon [Count] |
0x3A-0x3F | Unused |
Block B (0x40-0x77)
Offset | Contents |
---|---|
0x40-0x57 | Nickname |
0x58-0x59 | Unused |
0x5A-0x5B | Move 1 ID |
0x5C-0x5D | Move 2 ID |
0x5E-0x5F | Move 3 ID |
0x60-0x61 | Move 4 ID |
0x62 | Move 1 Current PP |
0x63 | Move 2 Current PP |
0x64 | Move 3 Current PP |
0x65 | Move 4 Current PP |
0x66-0x69 | Move PP Ups |
0x6A-0x6B | Move 1 ID at hatching |
0x6C-0x6D | Move 2 ID at hatching |
0x6E-0x6F | Move 3 ID at hatching |
0x70-0x71 | Move 4 ID at hatching |
0x72 | "Secret" Super Training Flag 00 - Missions Unavailable |
0x73 | Unused |
0x74-0x77 | Bits 0-29 - Individual Values HP ( [0-31] << 0 ) |
Block C (0x78-0xAF)
This block is dedicated to the history/memory of the Pokémon.
Offset | Contents |
---|---|
0x78-0x8F | Latest NotOT Handler Updates Every Trade |
0x90-0x91 | Unused |
0x92 | NotOT Gender 0 - Male 1 - Female |
0x93 | Visited the Pokémon Bank |
0x94-0x95 | Geolocation 1 - (Region,Country) |
0x96-0x97 | Geolocation 2 - (Region,Country) |
0x98-0x99 | Geolocation 3 - (Region,Country) |
0x9A-0x9B | Geolocation 4 - (Region,Country) |
0x9C-0x9D | Geolocation 5 - (Region,Country) |
0x9E-0x9F | Unused |
0xA0-0xA1 | Unused |
0xA2 | NotOT Friendship |
0xA3 | NotOT Affection |
0xA4 | NotOT Memory TextBank |
0xA5 | NotOT Memory TextLine |
0xA6 | NotOT Memory Feeling |
0xA7 | Unused |
0xA8-0xA9 | NotOT Memory TextVar |
0xAA-0xAB | Unused |
0xAC-0xAD | Unused |
0xAE | Fullness |
0xAF | Enjoyment |
Block D (0xB0-0xE7)
Offset | Contents |
---|---|
0xB0-0xC7 | OT Name |
0xC8-0xC9 | Unused |
0xCA | OT Friendship |
0xCB | OT Affection |
0xCC | OT Memory TextFile |
0xCD | OT Memory TextLine |
0xCE-0xCF | OT Memory TextVar |
0xD0 | OT Memory Feeling |
0xD1-0xD3 | Date Egg Received |
0xD4-0xD6 | Date Met |
0xD7 | Unknown / unused |
0xD8-0xD9 | Egg Location |
0xDA-0xDB | Met At Location |
0xDC | Pokéball |
0xDD | Bit 0-6 - Encounter Level Bit 7 - Female OT Gender |
0xDE | Encounter Type (Gen 4) |
0xDF | OT Game version |
0xE0 | Country ID |
0xE1 | Region ID |
0xE2 | 3DS region ID |
0xE3 | OT language |
0xE4-0xE7 | Unused |
Battle Stats
The battle stats are encrypted in the exact same manner as the main pkx data. The seed is still the Encryption Key.
Encrypted Bytes
Offset | Contents |
---|---|
0xE8 | Bits 0-2 - Asleep (0-7 rounds) Bit 3 - Poisoned Bit 4 - Burned Bit 5 - Frozen Bit 6 - Paralyzed Bit 7 - Toxic |
0xE9 | Unknown - Flags |
0xEA-0xEB | Unknown / Unused |
0xEC | Level |
0xED | Unknown / Unused |
0xEE-0xEF | Unknown / Unused |
0xF0-0xF1 | Current HP |
0xF2-0xF3 | Max HP |
0xF4-0xF5 | Attack |
0xF6-0xF7 | Defense |
0xF8-0xF9 | Speed |
0xFA-0xFB | Special Attack |
0xFC-0xFD | Special Defense |
0xFE-0xFF | Unknown / Unused |
0x100-0x103 | Unknown / Unused |
Original Language
Value | Language |
---|---|
0x1 | 日本語 (Japan) |
0x2 | English (US/UK/AU) |
0x3 | Français (France/Québec) |
0x4 | Italiano (Italy) |
0x5 | Deutsch (Germany) |
0x7 | Español (Spain/Latin Americas) |
0x8 | 한국어 (South Korea) |
Markings
Bit | Marking |
---|---|
0x01 | Circle |
0x02 | Triangle |
0x04 | Square |
0x08 | Heart |
0x10 | Star |
0x20 | Diamond |
Medals & Ribbons
Super Training Medals
Flag Value | 0x2C | 0x2D | 0x2E | 0x2F |
---|---|---|---|---|
0x01 | Unused | Sp. Atk Level 2 | Atk Level 3 | Follow Those Fleeing Goals! |
0x02 | Unused | HP Level 2 | Sp. Def Level 3 | Watch Out! That's One Tricky Second Half! |
0x04 | Sp. Atk Level 1 | Atk Level 2 | Speed Level 3 | An Opening of Lighting-Quick Attacks! |
0x08 | HP Level 1 | Sp. Def Level 2 | Def Level 3 | Those Long Shots Are No Long Shot! |
0x10 | Atk Level 1 | Speed Level 2 | The Troubles Keep on Coming?! | Scatterbug Lugs Back! |
0x20 | Sp. Def Level 1 | Def Level 2 | The Leaf Stone Cup Begins! | A Barrage of Bitbots! |
0x40 | Speed Level 1 | Sp. Atk Level 3 | The Fire Stone Cup Begins! | Drag Down Hydreigon! |
0x80 | Def Level 1 | HP Level 3 | The Water Stone Cup Begins! | The Battle for the Best: Version X/Y! |
Ribbon Set 1
Flag Value | 0x30 | 0x31 |
---|---|---|
0x01 | Kalos Champ Ribbon | Alert Ribbon |
0x02 | Champion Ribbon | Shock Ribbon |
0x04 | Sinnoh Champ Ribbon | Downcast Ribbon |
0x08 | Best Friends Ribbon | Careless Ribbon |
0x10 | Training Ribbon | Relax Ribbon |
0x20 | Skillful Battler Ribbon | Snooze Ribbon |
0x40 | Expert Battler Ribbon | Smile Ribbon |
0x80 | Effort Ribbon | Gorgeous Ribbon |
Ribbon Set 2
Flag Value | 0x32 | 0x33 |
---|---|---|
0x01 | Royal Ribbon | Earth Ribbon |
0x02 | Gorgeous Royal Ribbon | World Ribbon |
0x04 | Artist Ribbon | Classic Ribbon |
0x08 | Footprint Ribbon | Premier Ribbon |
0x10 | Record Ribbon | Event Ribbon |
0x20 | Legend Ribbon | Birthday Ribbon |
0x40 | Country Ribbon | Special Ribbon |
0x80 | National Ribbon | Souvenir Ribbon |
Ribbon Set 3
Flag Value | 0x34 |
---|---|
0x01 | Wishing Ribbon |
0x02 | Battle Champion Ribbon |
0x04 | Regional Champion Ribbon |
0x08 | National Champion Ribbon |
0x10 | World Champion Ribbon |