Stat Mechanics

Welcome to the first Game Mechanics page of The Cave of Dragonflies: Pokémon Stats. As you should all know (or at least I hope so), every Pokémon has six stats named HP (Hit Points), Attack, Defense, Sp. Atk (Special Attack), Sp. Def (Special Defense), and Speed. Here I will walk you through exactly how these values are determined, the relevant terms, and the formulas used in the game.

The Stat Formula

The stat formula for Attack, Defense, Special Attack, Special Defense and Speed is this:

Stat = int(int((2 * B + I + E) * L / 100 + 5) * N)

Meanwhile, the HP formula is a little different:

Stat = int((2 * B + I + E) * L / 100 + L + 10)

You may have noticed that the HP formula is essentially exactly the same as the normal stat formula except for not multiplying by N (or having the rounding there) and replacing the 5 with L + 10; by all means think of it that way if the two formulas are confusing you. int(something), by the way, stands for rounding down, or taking off everything after the decimal point; don't let it confuse you. The letters in the formula are variables which will now be explained one by one.

B (Base Stat)

A base stat is a constant for each of the six stats of each Pokémon species, representing the general relative abilities of that species compared to others. Most online Pokédexes, including Veekun, will show base stats as the stats given on each Pokémon's entry. Base stats range from 1 to 255 and, since they are predetermined for each species, do not change or show any variation between individual Pokémon of the same species. Thanks to their great range, they are the very most influential factors of a Pokémon's stats, barring the level of the Pokémon.

The base stat of 1 is special in that it results in ignoring the formula given above and making the actual stat 1 irrelevant of all other stat factors. The only Pokémon this applies to is Shedinja, whose base and thus total HP is always 1.

When the second generation split R/B/Y's Special stat into Special Attack and Special Defense, the old Special base stat was always used for one of the new stats while the other was then created independently.

I (Individual Value)

Individual Values, or IVs as they are most commonly referred to (pre-Advance, they were often referred to as DVs, standing for either Deter Values or Diversification Values, but "IVs" is almost exclusively used today), are the values responsible for the proclamation that no two Pokémon are alike: they vary between individuals even if they're of the same species, at the same level, freshly caught, and have the same nature. In the pre-Advance games (Red, Blue, Yellow, Gold, Silver and Crystal), there were five IVs: HP, Attack, Defense, Speed and Special. (Even as Special was split into two stats in Gold, Silver and Crystal, the games maintained compatibility with Red, Blue and Yellow and thus had only one Special IV to apply to both Special Attack and Special Defense.) In the Advance games onwards, there is one IV for each of the six stats.

The IVs are randomly determined when you battle a wild Pokémon or an egg is generated (though when an egg is created, up to three of the randomly generated IVs are overwritten with inherited IVs from its parents) and can never be changed after that. In the pre-Advance games, their values ranged from 0 to 15, but in the Advance games onwards from 0 to 31. The HP IV was a little different in the pre-Advance games, too; it was not random, but determined from the other IVs as follows:

  1. Make a variable X and set its value to 0.
  2. If the Attack IV is odd, add 8 to X.
  3. If the Defense IV is odd, add 4 to X.
  4. If the Speed IV is odd, add 2 to X.
  5. If the Special IV is odd, add 1 to X.
  6. Make the HP IV equal to X.

This means that if a R/B/Y/G/S/C Pokémon has a perfect 15 for Attack, Defense, Speed and Special, it will automatically have a 15 for HP too, while conversely, if it has a 0 for Attack, Defense, Speed and Special, it will have 0 for HP too. This also, in a twist of fate, means that shiny Pokémon in those games, which are there defined as any Pokémon with Defense, Speed and Special IVs of 10 and an Attack IV of 2, 3, 6, 7, 10, 11, 14 or 15, will always have either an average HP IV (8), for an odd Attack but even everything else, or the worst it can be (0), for all the other IVs even. In the pre-Advance games, gender was also determined by IVs or more specifically the Attack IV, which simply had a cutoff value for each species where anything with an Attack IV equal to or below it would be female and the others male. Thus, if the genders for a species were 50/50, a female Pokémon had an Attack IV of 7 or below, and a male Pokémon had an Attack IV of 8 or above, while if it had a 75% chance of being male, females would be ones with an Attack IV of 3 or less. Note that none of this applies to the post-Advance games, where shininess and gender are determined according to a hidden value called a personality value which is unconnected to IVs, and the HP IV is random like the others.

The actual value I in the formula is the IV itself in the Advance games onwards, but twice the IV in the pre-Advance games. The IV therefore influences the stat by exactly 30 or 31 points at level 100 (in Advance onwards, this is provided the stat is not affected by the Pokémon's nature); this is because a level of 100 (L) and a neutral nature of 1 (N) simplify the formula to 2 * B + I + E + 5, which is obviously just a few numbers including the I value added together. This ultimately means that in Ruby and Sapphire, all neutral nature max stats rose by one since G/S/C - instead of the I value in the formula for a max-stat Pokémon being 30 (2 * 15), it is 31.

People commonly want to find out the IVs of their Pokémon; to do this, it is best to use one of the many IV calculators found on the Internet, such as this one.

E (Effort Value or Stat Experience)

This E value also changed between G/S/C and Advance - and rather drastically at that, being one of the most important novelties that Ruby and Sapphire brought to the battle system.

Pre-Advance - Stat Experience

In R/B/Y/G/S/C, Pokémon acquired Stat Experience for battling, which was what caused wild-caught Pokémon to have generally worse stats than a trained Pokémon at the same level. There was one Stat Experience value for each R/B/Y stat (HP, Attack, Defense, Speed and Special). These values all started out at 0 for each stat of every Pokémon caught, and could then be raised until they reached 65025, the maximum value.

So how were they raised? Every time a Pokémon battled another Pokémon, it would gain a number of Stat Experience points for each stat, equal to the base stat for that particular stat of the Pokémon species battled. In G/S/C, the Special Stat Experience would be raised according to the opponent's base Special Attack. Remember that the base stats are not affected by level, so battling a level 5 Pidgey would give the same Stat Experience as battling a level 20 Pidgey. If multiple Pokémon took part in the battle (or in the case of EXP All or EXP Share), it would be split between Pokémon like ordinary battle experience.

What the vitamins (Protein for Attack, Iron for Defense, Carbos for Speed and Calcium for Special) actually did was add 2550 Stat Experience points to their respective stat, which is also the reason G/S/C, with two Special stats, only had one vitamin for both. However, once a Pokémon had reached 25500 points of Stat Experience in a particular stat, it would no longer be able to be affected by vitamins - the game makers, after all, did not want people to just raise their Pokémon's levels to 100 using Rare Candies and then make up for the lack of Stat Experience using vitamins. To max out a Pokémon's individually achievable stats, it is therefore necessary to train.

Once a Pokémon reaches level 100, it will no longer level up and thus its stats will ordinarily not increase even though you give it Stat Experience. However, using the so-called Box Trick, you can continue maxing out your Pokémon's Stat Experience even after it reaches level 100: to force the game to recalculate the stats and give you the increases governed by your Stat Experience, simply deposit the Pokémon into a box on the PC and then withdraw it again to find its stats slightly higher. This can be repeated until your Pokémon's stats are completely maxed out for its IVs.

To get the actual E value for the stat formula, you must use the formula E = int((√(Stat Experience - 1) + 1) / 4). This means that with the maximum of 65025 Stat Experience points in a stat, the E value is 63 thanks to that rounding down.

Post-Advance - Effort Values

Effort Values (abbreviated EVs) replace the Stat Experience of the first and second generation in the third onwards. There is one Effort Value for each of the six stats. Each and every Pokémon you battle gives the Pokémon that fought it a certain amount of Effort Points in a specific stat, determined individually for each Pokémon species. For example, Sceptile gives three Speed Effort Points, so if you defeat a Sceptile, the Pokémon you used will get three Effort Points in Speed. The number of Effort Points given by each Pokémon species can be found in most online Pokédexes under something like "Effort Points" or "Effort Given".

Even if many Pokémon share the level experience, whether thanks to the usage of an EXP Share or because many Pokémon took part in the battle, all the Pokémon will get the same number of Effort Points as one Pokémon would for battling it alone - so if you have a Pokémon holding an EXP Share and another one of your Pokémon defeats a Sceptile, both of them will get three Effort Points in Speed, rather than it being split between them as with the Stat Experience of the first two generations.

Effort Points, like Stat Experience, can also be gained through the use of vitamins, which this time will each give 10 Effort Points in their designated stat (Protein for Attack, Iron for Defense, Carbos for Speed, Calcium for Special Attack and Zinc for Special Defense). Like before, there is a cap on how many of your Effort Points can come from vitamins: once a Pokémon has 100 Effort Points in a stat, that stat's vitamin will no longer have an effect on the Pokémon.

The most significant difference between Stat Experience and Effort Points, however, is that a Pokémon can only gain a total of 510 Effort Points at the most, while 255 Effort Points are the upper limit for each individual stat. This forces the player to specialize his or her Pokémon, as only a maximum of two of the six stats of any given Pokémon can actually reach their full potential.

Because of this, players have a good reason to want to remove unwanted Effort Points so that they can be used in some other stat. This was not possible in Ruby, Sapphire, FireRed or LeafGreen, to many people's frustration, but since Emerald, six Berries which before did nothing will each raise a Pokémon's happiness but lower its Effort Value in a particular stat by ten points:

BerryEV lowered
Pomeg BerryHP
Kelpsy BerryAttack
Qualot BerryDefense
Hondew BerrySpecial Attack
Grepa BerrySpecial Defense
Tamato BerrySpeed

The way to determine the actual E value in the formula is considerably simpler now: it is simply the Effort Value for that stat divided by four and then rounded down. As the maximum Effort Points in a stat are 255 and 255 / 4 is 63.75, rounding down gives you 63 as the E value, the same as if the Effort Value had been 252 rather than 255. Therefore, if you max out two stats, it is always wisest to give only 252 Effort Points in those stats and use the remaining six points to boost another stat by one point. Two of your 510 Effort Points will sadly always go to waste, as 510 is not divisible by four.

L (Level)

L is simply the current level of the Pokémon in question. Seeing as the level is a multiplier of almost everything in the formula and has a great range (from 1 to 100, if you didn't know), it is usually the very most influential value for a stat: a high-level Shuckle will outspeed a low-level Ninjask, for instance.

N (Nature)

A Pokémon's nature is basically its personality and is displayed on every Pokémon's summary screen in the Advance games onwards. In R/B/Y/G/S/C, always regard N as being 1.

Natures can either be neutral or increase one stat while decreasing another. Hit Points are never affected by natures, but there is one nature for each possibility of increasing and decreasing a pair of the other five stats, and five neutral ones that could be said to both raise and lower the same stat so that the effects cancel each other out:

NatureIncreasesDecreases
HardyNoneNone
LonelyAttackDefense
BraveAttackSpeed
AdamantAttackSpecial Attack
NaughtyAttackSpecial Defense
DocileNoneNone
BoldDefenseAttack
RelaxedDefenseSpeed
ImpishDefenseSpecial Attack
LaxDefenseSpecial Defense
SeriousNoneNone
TimidSpeedAttack
HastySpeedDefense
JollySpeedSpecial Attack
NaiveSpeedSpecial Defense
BashfulNoneNone
ModestSpecial AttackAttack
MildSpecial AttackDefense
QuietSpecial AttackSpeed
RashSpecial AttackSpecial Defense
QuirkyNoneNone
CalmSpecial DefenseAttack
GentleSpecial DefenseDefense
SassySpecial DefenseSpeed
CarefulSpecial DefenseSpecial Attack

Incidentally, Pokémon also have different PokéBlock/Poffin flavor preferences depending on their nature. Each flavor corresponds to one stat (Spicy for Attack, Sour for Defense, Sweet for Speed, Dry for Special Attack and Bitter for Special Defense) and the Pokémon will like the flavor associated with the stat their nature raises but dislike the one associated with the stat it lowers.

The N value in the formula will take on one of three values:

  • 1.1 if the Pokémon's nature raises the stat in question;
  • 1 if the Pokémon's nature does not affect the stat in question;
  • 0.9 if the Pokémon's nature lowers the stat in question.

Therefore, it basically increases one stat by 10% and decreases another by 10% unless it is neutral.

An Example

To show how this all magically works, let's go through the stat formula for my Diamond version Butterfree, whose IVs I have calculated and whose EVs I have monitored, for a demonstration of how this all works. My Butterfree is level 53 at the moment of writing, has a Modest nature, and has been EV trained to have 4 Effort Points in HP, 254 in Special Attack and 252 in Speed but nothing in everything else. Butterfree's (rather shoddy) base stats and this particular one's (strangely good, considering it was only the fourth egg I hatched) IVs are as follows:

StatBaseIV
HP6028
Attack454
Defense5017
Special Attack8030
Special Defense8027
Speed7031

HP

HP = int((2 * 60 + 28 + 1) * 53 / 100 + 53 + 10)

HP = int(149 * 53 / 100 + 63)

HP = int(149 * 53 / 100 + 63)

HP = int(141.97)

HP = 141

Attack

Attack = int(int((2 * 45 + 4 + 0) * 53 / 100 + 5) * 0.9)

Attack = int(int(94 * 53 / 100 + 5) * 0.9)

Attack = int(int(54.82) * 0.9)

Attack = int(54 * 0.9)

Attack = int(48.6)

Attack = 48

Defense

Defense = int(int((2 * 50 + 17 + 0) * 53 / 100 + 5) * 1)

Defense = int(int(117 * 53 / 100 + 5) * 1)

Defense = int(int(67.01) * 1)

Defense = int(67 * 1)

Defense = 67

Special Attack

Special Attack = int(int((2 * 80 + 30 + 63) * 53 / 100 + 5) * 1.1)

Special Attack = int(int(253 * 53 / 100 + 5) * 1.1)

Special Attack = int(int(139.09) * 1.1)

Special Attack = int(139 * 1.1)

Special Attack = int(152.9)

Special Attack = 152

Special Defense

Special Defense = int(int((2 * 80 + 27 + 0) * 53 / 100 + 5) * 1)

Special Defense = int(int(187 * 53 / 100 + 5) * 1)

Special Defense = int(int(104.11) * 1)

Special Defense = int(104 * 1)

Special Defense = 104

Speed

Speed = int(int((2 * 70 + 31 + 63) * 53 / 100 + 5) * 1)

Speed = int(int(234 * 53 / 100 + 5) * 1)

Speed = int(int(129.02) * 1)

Speed = int(129 * 1)

Speed = 129

I hardly need to tell you that all of these values are exactly what is shown on my Butterfree's stat screen. Through the formula, I can also find out for certain that at level 100 my Butterfree will have 259 HP, 89 Attack, 122 Defense, 283 Special Attack, 192 Special Defense and 239 Speed, unless I start giving it Effort-lowering Berries and EV training it differently (which I won't).

I hope this has taught you something about the inner workings of the Pokémon games. If you liked it, there are more mechanics coming.

Page last modified November 24 2009 at 12:52 GMT


I hereby promise to all of my visitors that my site should only contain accurate, up-to-date information. For example, all cheats on this site have been personally tested by me. All information you will find here will therefore be true, unless I a) clearly state that said information is false, b) do not know the truth, or c) did not know it at the time of writing said information, and have not updated the section since. If you spot cases of b) or c), please report them via this form and they will be fixed as soon as possible.

Pokémon, Pikachu and all other Pokémon characters are © 1995-2010 Nintendo, GAME FREAK and Creatures. Inc. This website is purely the work of a fan.
All layouts, non-official graphics and content © 2002-2010 Butterfree/Dragonfree/antialiasis unless otherwise stated.

Look! My mom's health counselling website that none of you will understand a word of that is only here so that it will appear on Google!