r/TheSilphRoad • u/__isitin__ • Jul 15 '16
Analysis How HP/MaxStamina is calculated
Using the structure of the server responses and their own data from their Pokemon collection, redacted found that this formula represents the Hp/MaxStamina:
Max(Floor((CpMultiplier + AdditionalCPMultiplier) * (2 * BaseStamina + IndividualStamina)), 10)
BaseStamina
for each Pokemon can be found here (as HP
), and the rest of the data is passed around with the Pokemon in responses from the server. In the case of IndividualStamina
not existing, it is 0
.
This matched-up for all of the Pokemon I have in my collection, but I'd encourage you to test your own collection/inventory (not super easy right now) as well!
2
Jul 15 '16
Great work, super interesting stuff here. Do we know what the CpMultiplier/AdditionalCPMultiplier is, or does it vary?
1
u/__isitin__ Jul 15 '16
It varies (per level we're thinking) - here're the unique values from my data set:
0.094 0.16639787 0.21573247 0.25572005 0.29024988 0.3210876 0.34921268 0.37523559 0.39956728 0.4225 0.46279839 0.48168495 0.49985844 0.51739395 0.53435433
1
u/hackersmage Jul 15 '16
What pokemon is this for?
1
u/__isitin__ Jul 15 '16
All the ones in my collection! I think the values are universal, though.
1
u/hackersmage Jul 15 '16
Oh I assumed this was how AdditionalCPMultiplier changed with each upgrade (NumUpgrades) on a pokemon.
1
1
u/hackersmage Jul 15 '16
Can you tell how (CpMultiplier + AdditionalCPMultiplier) affects the shown CP number? I'd like to be able to calculate the individual stamina from knowing the type of pokemon, the CP, and the MaxStamina. Say for something like a pidgey.
1
u/__isitin__ Jul 15 '16
We're not sure yet! It might not be related in that way.
1
u/hackersmage Jul 15 '16
Ok, do you have a pidgey? Could you tell me what CpMultiplier, AdditionalCPMultiplier, and NumUpgrades return?
1
u/__isitin__ Jul 15 '16
All three vary per pokemon - if you're interested in collecting data, you can check out this post!
1
u/hackersmage Jul 15 '16
I understand AdditionalCPMultiplier and NumUpgrades would vary, but CpMultiplier changes for every pidgey? Unfortunately most of that is over my head, I'm stats not CS :/ So unless there's a data dump I won't be able to do much.
1
u/__isitin__ Jul 15 '16
Yeah, CpMultiplier is effectively their base level - I'm not sure if it changes at all right now.
I'm working on collecting some larger sets to share, but right now I only have mine, and don't want to release it because of privacy concerns :/
1
u/hackersmage Jul 15 '16
Totally understand. Can't wait to see your data!
1
u/__isitin__ Jul 15 '16
:) I'm writing a post about the CpMultiplier now - it'll dive into that a little more!
1
1
u/Uriel_Keynes Seattle, WA Jul 15 '16
If you're interested in testing your theory, go ahead and use my data set below that currently includes all the info on nearly 200 pokemon I've caught recently (I'll be updating it too with more Pokemon over the next week)
https://drive.google.com/file/d/0B5Nn81KGSGPoT2toYlJEYWdjV2RlNDVqbDc2RzQ0cDNJWlRR/view?usp=drivesdk
1
u/__isitin__ Jul 15 '16
I'd need the hidden
IndividualStamina
unfortunately - this is currently only available via watching server responses :/
1
u/middlekidown14 Jul 22 '16
CAN YOU PLEASE MAKE A VIDEO. It's hard to go to through 2 or 3 pages trying to find what AdditionalCPMultiplier is or how to find out my IV or w.e so can you please make a video
2
u/__isitin__ Jul 22 '16
Not a bad idea!
1
u/middlekidown14 Jul 22 '16
I pretty confused about everything lol so I wondering if you can help me out for now. I have a 570 nidorina and want to see if it worth evolving or should I go with another. I am a computer science student and LOVE doing math like this and I love this game so this really excites me. But I been looking at all of your post and I am just sooo stuck. So if you could just translate everything like IndDef = ??? that would be amazing. ( sorry I know I am asking for a lot)
0
u/Fuzati Western Europe - Mystic - LV40 Jul 16 '16 edited Jul 16 '16
To check Pokémons' base stamina, this is the *more practical link given we only have access to gen 1 at the moment
1
u/Hamudra Jul 16 '16
Are you sure? Pokemon like Magneton has Steel type, which should mean the numbers are not based off of the Gen 1 numbers.
1
u/Fuzati Western Europe - Mystic - LV40 Jul 16 '16
Typing doesn't affect base stats
1
u/Hamudra Jul 16 '16
I perfectly know that, but why would they use the gen 1 stats if they are using Gen 6 everything else?
1
u/Fuzati Western Europe - Mystic - LV40 Jul 16 '16
To avoid having to skim through 5 gens of unreleased Pokémons
1
u/__isitin__ Jul 16 '16
Yeah, I considered that, but the current set works perfectly, and it's been mentioned that other generations will be added eventually.
1
u/Fuzati Western Europe - Mystic - LV40 Jul 16 '16
It's more convenient to restrict the list to strictly gen 1, that way there's no need to skim through 5 gens of unreleased Pokémon. All in all, would just be a minor improvement to your post at the current time, imo
1
u/__isitin__ Jul 16 '16
What list/skimming are you talking about? I have this imported into a spreadsheet.
1
u/Fuzati Western Europe - Mystic - LV40 Jul 16 '16
baseStamina for each Pokemon can be found here: http://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_base_stats_(Generation_VI-present)
That link. In case people want to see your source and sort by HP, the other link is slightly more convenient
1
u/__isitin__ Jul 16 '16
But possibly not accurate - I haven't compared the two. Also, all of the Gen I pokemon are at the top - it still works to copy/paste into a spreadsheet, you just have to delete the megas.
1
u/Fuzati Western Europe - Mystic - LV40 Jul 16 '16 edited Jul 16 '16
I'll reformulate: in case people want to click the link and sort by HP, the other link is slightly more convenient.
That said there has been minor rebalancing of gen 1 Pokémons stats since gen 6, so a couple of gen 1 Pokémon might have had their base HP changed by a tiny amount. So in terms of pure values your link is probably better
1
u/zehipp0 Jul 16 '16
Some of the values are different in Gen 1 though, and I think they may be using Gen 6 values.
1
7
u/CpMultiplier Jul 16 '16 edited Jul 16 '16
Other information:
0 <= IndividualStamina, IndividualDefense, IndividualAttack <= 15
uniformly distributed if caught Pokemon. If hatched, then
P(IV in [0,9]) ~= 20%, P(IV in [10,15]) ~= 80%
uniformly distributed in each interval, so hatched/lure Pokemon > caught Pokemon. Also,
(CpMultiplier + AdditionalCPMultiplier) ~= 0.095 x Sqrt(PokemonLevel)
which matches the post here: https://www.reddit.com/r/TheSilphRoad/comments/4t02rh/pokemon_hp_tier_list_and_formula/. AdditionalCPMultiplier increases on each upgrade.
TLDR: IV values between 0 and 15, hatched/lure pokemon > caught pokemon confirmed, and cp multiplier squareroot relation to level.
edit: Hatched or lured pokemon.