today we continued to investigate the metadata inside the 0.57.2 APK and one specific mechanic caught our attention: shiny Pokémon. After a few hours of exploration, we are now confident enough to present a full overview of the shiny mechanics in Pokémon GO.
Be advised: many of the discoveries we present in this guide may be spoilers for your future experience in Pokémon GO. It may not seem like a big deal now, but the odds of randomly encountering a shiny Pokémon is 1 in 8192. Maybe you want to be surprised.
Number of caught / encountered Shiny Pokémon will be tracked per specie
According to the code behind the APK, every Shiny Pokémon you encounter or catch will contribute to an appropriate counter. There is no indication if these counters will be used for a future “Shiny medal” or simply displayed as additional statistics in your Pokédex.
The following code proves it:
.get_CapturedShiny .set_CapturedShiny .get_EncounteredShiny .set_EncounteredShiny
A Pokémon is Shiny only by it’s material
It was long debated if Shiny Pokémon will have any special Stats or Moves. There is no mention of such mechanic in the code. As per the metadata, a Shiny Pokémon is Shiny only by different rendering of the materials it’s 3D model is constructed from.
Some parts of a Pokémon will stay the same as that particular material does not have a Shiny form, while other parts will change color.
All of this is orchestrated by a simple switch on a caught Pokémon: IsShiny.
Here’s the supporting code:
.get_ShinyMaterials .ActiveMaterialType .ActiveMaterials .DefaultMaterials .ShinyMaterials .PokemonMaterialSetter .get_SupportsShiny .EnsureMaterialSets.isShiny.SetShiny .RefreshMaterials .sourceMaterials .GetCorrespondingActiveMaterials
This leads to a simple conclusion: the existing 3D models will be reused and recolored for Shiny variants.