17th September 2023 Preamble
With the release of HOME v3.1.0, Pokémon that bears records of not being initialized correctly (technically invalid HOME tracker) can no longer be sent back into HOME, typically with HOME throwing an error 10015. Everything below explains how and why people could obtain a broken or invalid HOME tracker, even if the screenshots aren't fully relevant anymore.
With the release of version 2.0.0 of Pokémon HOME, compatibility with Brilliant Diamond & Shining Pearl and Legends Arceus was added. In version 3.0.0, they also added support for Scarlet and Violet, and allowed Pokémon to be transferred across those games.Pokémon HOME made some changes to how the HOME tracker works, and why it is relevant, when it comes to importing Pokémon.
For every individual Pokémon you see in the box in Pokémon HOME, they are made up of the entire ring of data above. These are the data structures within a single structure for a Pokémon file that is in HOME, which is associated and identifiable by the HOME tracker (among other common data that is usually immutable3). While version 3.0.0 made some data more visible to players, not all are.
The table below will help to explain what the various substructures are.
|Important Substructures||Purpose||Initiated By||Used By||Views on HOME mobile|
|Core||Contains most bits of data that are shared across all games.||Gets initiated regardless of what entry game||Used across all listed games||The data here shows up in all views|
|Child: LGPE||Data specific to LGPE|
|Child: SWSH||Data specific to SWSH||
|Child: PLA||Data specific to PLA|
|Child: BDSP||Data specific to BDSP|
|Child: SV||Data specific to SV|
In essence, when a deposited Pokémon first gets a HOME tracker via entry from a specific game, it gets data written to both core and the corresponding child.
For the children substructures relating to other games, those get generated when said Pokémon is transferred into those games.
This means that is a Pokémon never visits the other games, those children substructures remain blank.
Any Pokémon that comes from Bank -> HOME or GO -> HOME gets written into SWSH child.
Any children substructure that gets generated afterwards appears to generate data based on core + first child that was first generated
A look into HOME mobile's various views
As of version 3.0.0, Pokémon HOME added a feature that would allow you to see various 'views', which effectively allows you a sneak peak into the various children substructure.
However this view is rather limited; it is constrained by a) the origin game of the Pokémon and b) the species.
A few examples:
1. Stuff from GO that have not entered any game would not give you the view option
2. Darkrai from GO that entered PLA and BDSP won't give you an option to use the SWSH view, despite SWSH child being populated.
3. If a species exists in SWSH, and said species went from GO -> HOME -> BDSP without interacting with SWSH, it'll still gain the SWSH view as SWSH child is populated.
4. Bank view is based on game ID. Bank view actually uses SWSH child, so any modifications in SWSH child affects Bank view
5. Mr. Rime that has the origin game of PLA (a Mime Jr. evolved in SWSH) would not give you the option of PLA view, despite PLA child being populated (link).
Example on moving mons across games without a valid HOME tracker
So this is the example portion. Let's look at this Pichu I bred in BDSP.
Pichu, a species that exists in SWSH, BDSP, and PLA.
Beast Ball, a ball that visually exists in SWSH and BDSP.
Now, for this exercise, I'll take the PB8 of this Pichu, and import it into Legends Arceus.
They'll both be clones of each other. Difference being, the one on the left Leftchu has a valid HOME tracker (from entering HOME from BDSP previously), and the one on the right Rightchu does not.
Leftchu correctly shows that it is in a Beast Ball, while Rightchu shows that it is in a Poké Ball.
Also, on mobile HOME, Leftchu shows the correct first met location (Seabreak Path) but Rightchu doesn't.
Leftchu also shows Beast Ball, and Rightchu doesn't show any ball.
[note: I sent back the mons from Sword for the screenshots]
In the present day, if you're injecting Pokémon into any Switch games, and if you're injecting Pokémon with origin games (a) Gen 7 and below or (b) a different Gen 8 game from your current one,
make sure they have a valid HOME tracker attached to the file.
To keep a HOME tracker valid, make sure you do not change any immutable values3 on your Pokémon.
Also, it is okay if your HOME tracker changes on your existing Pokémon; as long as you deposited a Pokémon with a valid HOME tracker, even if the tracker were to change after, all previous data are cloned and carried forward to the next tracker.
If you perform any kind of transfer with an invalid HOME tracker via HOME, data would not be displayed correctly on other games.
Here's a bunch of mons with valid HOME trackers, make sure you don't change the immutable values3!
1. Values stored in Core (Common data) are
Pretty much all the data in PK8/PK9, except:
Ball caught in, Moves, PP for Moves, Met Location, Egg Location
If you're comfortable with reading code, read them in PKHeX's code.
2. Values stored in Children substructures for the games are
I would like to point out that while the Gmax/Alpha/Noble data is stored in Core, HOME doesn't carry forward that data into every game.
3. Immutable values refer to values that normally can't be changed on a captured Pokémon. Stuff like PID, EC, IVs, etc
Here's a non-exhaustive list:
Ability (if ineligible for Ability Capsule/Patch)
Egg Met Location
Egg Met Date
Original Tera Type (SV)
Gigantamax Factor (SWSH, if species can not eat Max Soup)
Relearn Moves (if not wiped for Battle Version)
Ribbons (you can add more ribbons, but you can't lose any ribbons)