Personality value: Difference between revisions
Tiddlywinks (talk | contribs) (Size: http://www.upokecenter.com/content/pokemon-ruby-version-sapphire-version-and-emerald-version-size-calculation ; and misc) |
Tiddlywinks (talk | contribs) m (Not "(all) later generations"... https://www.smogon.com/ingame/rng/bw_rng_part5) |
||
Line 1: | Line 1: | ||
A Pokémon's '''personality value''' is an {{wp|Signedness|unsigned}} {{wp|32-bit}} {{wp|Integer (computer science)|integer}} that is created when the Pokémon is first encountered. It is set when a Pokémon appears in the wild, when an Egg is first received from the [[Pokémon Day Care]] by the player (in [[Generation III]] except in {{game|Emerald}}) or by the Day-Care man (in Emerald and | A Pokémon's '''personality value''' is an {{wp|Signedness|unsigned}} {{wp|32-bit}} {{wp|Integer (computer science)|integer}} that is created when the Pokémon is first encountered. It is set when a Pokémon appears in the wild, when an Egg is first received from the [[Pokémon Day Care]] by the player (in [[Generation III]] except in {{game|Emerald}} and in [[Generation V]]) or by the Day-Care man (in Emerald and [[Generation IV]]), or when a Pokémon or its Egg is received from an [[Non-player character|NPC]]. As an unsigned 32-bit integer, its value can be anywhere from 0 (32 zeroes in binary) to 4,294,967,295 (32 ones in binary), inclusive. This value was introduced with the [[Pokémon base stats data structure in Generation III|Pokémon data structure]] overhaul that occurred at the start of Generation III, and is generated using the games' [[Pseudorandom number generation in Pokémon|pseudorandom number generator]]. | ||
==Gender== | ==Gender== |
Revision as of 01:32, 12 August 2014
A Pokémon's personality value is an unsigned 32-bit integer that is created when the Pokémon is first encountered. It is set when a Pokémon appears in the wild, when an Egg is first received from the Pokémon Day Care by the player (in Generation III except in Pokémon Emerald and in Generation V) or by the Day-Care man (in Emerald and Generation IV), or when a Pokémon or its Egg is received from an NPC. As an unsigned 32-bit integer, its value can be anywhere from 0 (32 zeroes in binary) to 4,294,967,295 (32 ones in binary), inclusive. This value was introduced with the Pokémon data structure overhaul that occurred at the start of Generation III, and is generated using the games' pseudorandom number generator.
Gender
00000000 00000000 00000000 00000000
A Pokémon's gender is determined by the lowest eight digits (the lowest byte, highlighted in red above) of p in binary form. Mathematically, this can be derived by calculating p % 256
. Below, this value will be referred to as pgender.
In a Pokémon species' base stat structure, there is a value called the gender threshold, a byte with a value ranging from 0 to 255. Genderless species of Pokémon such as Magnemite have a value of 255 for their gender threshold. Female-only species such as Nidoran♀ have a value of 254 for their gender threshold, while for male only species such as Nidoran♂ the value is 0. The remaining values describe Pokémon with both genders: if pgender is greater than or equal to the gender threshold, the Pokémon is male; otherwise it is female.
Gender threshold | Gender ratio | ||
---|---|---|---|
Binary | Decimal | Male | Female |
11111111
|
255 | Genderless | |
11111110
|
254 | 0.0% | 100.0% |
11011111
|
223 | 12.5% | 87.5% |
10111111
|
191 | 25.0% | 75.0% |
01111111
|
127 | 50.0% | 50.0% |
00111111
|
63 | 75.0% | 25.0% |
00011111
|
31 | 87.5% | 12.5% |
00000000
|
0 | 100.0% | 0.0% |
Because the comparison to determine gender is greater than or equal, Pokémon are not actually perfectly distributed between male and female according to the ideal ratios shown above. For example, for a Pokémon with a 50/50 male/female gender ratio, there is actually a 129/256 (50.390625%) chance for the Pokémon to be male and 127/256 (49.609375%) chance for the Pokémon to be female.
Ability
00000000 00000000 00000000 00000000
If a Pokémon's species has more than one Ability, its Ability is determined by the lowest bit (highlighted in red above) of its personality value; i.e., whether p is even or odd. If p is even (the lowest bit is 0), the Pokémon has its first Ability. If p is odd (the lowest bit is 1), it has the second.
If a Pokémon is transferred to a later generation where its species' Abilities have changed, it will retain the Ability it had in the earlier generation so long as it does not evolve, since the games store a Pokémon's current Ability in a value separate from its personality value. However, in Generations IV and V, when a Pokémon evolves, its personality value is rechecked and the Pokémon's Ability may change. If a Pokémon that would change Abilities on evolution is transferred to Generation VI, it will be locked into its current Ability slot upon transfer through Poké Transporter.
As an example, in Generation III, Porygon and Porygon2 only had the Ability Trace, but in Generation IV, they gained Download as a second Ability. If a Porygon from Generation III is brought to a Generation IV game, it will have Trace no matter what its personality value; however, if it evolves into Porygon2, it will only keep Trace if p is even.
A separate bit governs whether a Pokémon has their normal Abilities or Hidden Abilities in Generation V. If a Pokémon has its Hidden Ability, its personality value is always set to be even (denoting a first Ability), so as to allow the inclusion of a second Hidden Ability in a future generation.[citation needed]
Nature (Generation III and IV only)
In Generations III and IV a Pokémon's Nature is determined by p % 25
. From Generation V onward, Nature is determined by a separate byte, unrelated to the personality value.
The result of p % 25
corresponds to the following Natures:
p % 25 | Nature |
---|---|
0 | Hardy |
1 | Lonely |
2 | Brave |
3 | Adamant |
4 | Naughty |
5 | Bold |
6 | Docile |
7 | Relaxed |
8 | Impish |
9 | Lax |
10 | Timid |
11 | Hasty |
12 | Serious |
13 | Jolly |
14 | Naive |
15 | Modest |
16 | Mild |
17 | Quiet |
18 | Bashful |
19 | Rash |
20 | Calm |
21 | Gentle |
22 | Sassy |
23 | Careful |
24 | Quirky |
Shininess
00000000 00000000 00000000 00000000
In Generation III or later, whether a Pokémon is Shiny depends on its Original Trainer's Trainer ID number and secret ID number and on the Pokémon's personality value. The high half of p (highlighted in red above) is referred to as p1 below, while the low half (highlighted in blue) is referred to as p2. Mathematically, p1 can be derived by calculating p / 65536
and rounding down the result, while p2 can be derived by calculating p % 65536
.
S = IDTrainer ⊕ IDSecret ⊕ p1 ⊕ p2
A bitwise exclusive or operation (or "⊕") on inputs a and b, written as a ⊕ b = c, outputs c such that, if ai (bit i of a) and bi are different, then ci is 1; otherwise it is 0. For example, 11002 ⊕ 10102 = 01102. When exclusive or is applied to multiple inputs, as in the calculation for Shininess above, it may be more easily understood as, "If an odd number of bits (at position i) are 1, output 1". This operation is commutative.
From Generations III to V, if S < 8, the Pokémon is Shiny. In Generation VI, the Pokémon is Shiny if S < 16. This is an 8 or 16 in 65536 chance of a Pokémon being Shiny.
Example
As an example, given a Trainer whose Trainer ID is 24294 and whose Secret ID is 38834...
- IDTrainer = 2429410 = 01011110111001102
- IDSecret = 3883410 = 10010111101100102
If the Trainer encounters a Pokémon whose personality value is 2814471828...
- p = 281447182810 = 101001111100000101101110100101002
- p1 = 10100111110000012
- p2 = 01101110100101002
Then S is equal to...
- S = 01011110111001102 ⊕ 10010111101100102 ⊕ 10100111110000012 ⊕ 01101110100101002
- S = 00000000000000012 = 110
Since S is less than 8, this Pokémon is Shiny.
Characteristic
From Generation IV onward, Pokémon have a Characteristic which indicates their highest IV. In the case of a tie, the personality value is used to determine which stat wins the tie.
The tie-breaker starts at the stat with the index p % 6
and increments the index (returning to 0 after reaching 5) if it is not one of the stats that is tied for highest. The first stat checked that is tied for highest wins the tie and will determine the Characteristic.
p % 6 | Stat |
---|---|
0 | HP |
1 | Attack |
2 | Defense |
3 | Speed |
4 | Special Attack |
5 | Special Defense |
Spinda's spots
00000000 00000000 00000000 00000000
Spinda has four spots: two on its face, and one on each of its ears. Each byte in the personality value represents the coordinates of one of these spots. The x-coordinate is the lower four bits of the byte and the y-coordinate is the higher four bits of the byte. These coordinates determine the position of the top-left corner of the corresponding spot.
While this would appear to mean that Spinda's spots have as many possible variations as there are personality values (4,294,967,296), some coordinates will place a spot off of Spinda's body or such that one wholly overlaps another. Therefore, in practice, the number of observed variations is fewer.
Unown's letter (Generation III only)
00000000 00000000 00000000 00000000
pletter = 00000000
In Generation III, Unown's letter is determined by the composite value of the least significant 2 bits of each byte in p. With A representing 0 and each letter thereafter representing the following number value (with ? as 26 and ! as 27), Unown's letter can be determined by:
α = pletter % 28
In Generation II, this is determined using individual values. In Generations IV and V, Unown's letter is determined by a separate byte, unrelated to the personality value.
Wurmple's evolution
00000000 00000000 00000000 00000000
Wurmple's evolution is determined by the lower half of its personality value (highlighted in red above), referred to here as pw. Mathematically, pw can be derived by calculating p % 65536
.
If the result of pw % 10
is less than 5, Wurmple will evolve into Silcoon. If it is greater than or equal to 5, Wurmple will evolve into Cascoon.
Size
00000000 00000000 00000000 00000000
In Generations III and IV, there are occasionally characters who want to see large Pokémon. The calculation to determine the size of one of these Pokémon depends on its individual values and its personality value. Like the Shininess calculation, this calculation also uses exclusive or (⊕).
The lowest two bytes of p are used in the calculation: p1 (highlighted in blue above) is mathematically equivalent to p % 256
, while p2 (highlighted in red) is equivalent to (p / 256) % 256
(rounded down). The IV values are also not used in whole; only the first four bits of each are used: mathematically, <stat>' = IV<stat> % 16
.
The first step in the calculation is as follows:
s = ( ( (Atk' ⊕ Def') * HP' ) ⊕ p1 ) * 256 + ( ( (SpAtk' ⊕ SpDef') * Spd' ) ⊕ p1 )
For the next step, h is the species' height in tenths of a meter. and the values of x, y, and z depend on the value of s as shown in the following table.
s (max): | 9 | 109 | 309 | 709 | 2709 | 7709 | 17709 | 32709 | 47709 | 57709 | 62709 | 64709 | 65209 | 65409 | 65535 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x | 290 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 1000 | 1100 | 1200 | 1300 | 1400 | 1500 | 1700 |
y | 1 | 1 | 2 | 4 | 20 | 50 | 100 | 150 | 150 | 100 | 50 | 20 | 5 | 2 | 1 |
z | 0 | 10 | 110 | 310 | 710 | 2710 | 7710 | 17710 | 32710 | 47710 | 57710 | 62710 | 64710 | 65210 | 65510 |
The final part of the calculation gives the Pokémon's size in millimeters. The final value of Size is also rounded down.
Size = Rounddown( (s-z) / y + x ) * h / 10
If the game converts this number to inches, the final result will be rounded down to the nearest tenth of an inch.
The characters searching for large Pokémon can be found at the following locations:
- Route 12 (Magikarp)
- Fortune Island (Heracross)
- Lake of Rage (Magikarp)
- Sootopolis City (Barboach and Shroomish in Pokémon Ruby and Sapphire or Seedot and Lotad in Pokémon Emerald)
Performance changes
00000000 00000000 00000000 00000000
The day-to-day performance of a Pokémon in the Pokéathlon depends on its personality value and the day of the month. It also depends on Nature, which is also calculated based on the personality value. The five least significant digits of p will here be referred to as p0 to p4, in order from the least significant bit to the most significant, and they govern (in order) the attributes Power, Stamina, Skill, Jump, and Speed.
The change in performance in a particular attribute is calculated as the sum of the following factors:
- Day of the month modifier:
( ( (day + attribute + 3) × (day - attribute + 7) + pattribute ) % 10 ) × 2 - 9
, where:- Day is the day of the month.
- Attribute is 0 for Power, 1 for Stamina, 2 for Skill, 3 for Jump, and 4 for Speed.
- pattribute is the bit of p governing the current attribute.
- Note that this modifier's values range from -9 to +9, and it only takes on odd values. This also means that the day of the month modifier cycles every 10 days, excepting for Power and Speed where the modifiers for Day 1 are different from those for Days 11, 21, and 31.
- Since Nature is determined by the last two digits of the personality value, the Nature of a Pokémon will reveal constrains on possible values of this modifier for Power (and, to a lesser extent, Stamina). For example, a Hardy Wurmple (last digit of p: 0 or 5) will never get a +9 or a +7 from this modifier in Power. If it evolves into a Cascoon (last digit of p: 5), this further reveals that its best day-of-the-month modifier (+5) will be on the first day of a month only. On the other hand, a Hardy Silcoon will have a +5 boost six times a month (on days ending with 4 or 6).
- Nature modifier: the Pokémon's Nature may raise or lower its performance in an attribute. Non-neutral Natures will add or subtract 35 points from an attribute, if the Nature positively or negatively influences the stat that corresponds to the current attribute. Neutral natures will add or subtract 10 points from an attribute depending on the Nature.
Attribute | Neutral +10 | Neutral -10 | Non-neutral stat (+/- 35) |
---|---|---|---|
Power | Hardy | Bashful | Attack |
Stamina | Docile | Quirky | Defense |
Skill | Quirky | Serious | Sp. Def |
Jump | Bashful | Docile | Sp. Atk |
Speed | Serious | Hardy | Speed |
- Aprijuice modifier: the last Aprijuice the Pokémon drank affects the Pokémon's performance, depending on the strengths of the flavors in the Aprijuice.
- Strongest flavor: add flavor * 1.5 (rounded down) plus 10 to the corresponding attribute.
- Second strongest flavor: add flavor * 1.5 (rounded down) to the corresponding attribute.
- Weakest flavor: subtract X times the sum of the two strongest flavors (rounded down) from the corresponding attribute, depending on the Aprijuice's mildness...
- 0 - 199: X = 1 - 0.1 * Rounddown( mildness / 25 )
- 200-254: X = 0.2
- 255: X = 0.1
- The Aprijuice flavors correspond to the performance attributes as follows:
Flavor | Attribute |
---|---|
Spicy | Power |
Sour | Stamina |
Dry | Skill |
Bitter | Jump |
Sweet | Speed |
The sum of these modifiers is then translated into a difference in stars as follows:
Stars | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|---|---|---|---|
Score | ...-120 | -119...-80 | -79...-40 | -39...-15 | -14...14 | 15...39 | 40...79 | 80...119 | 120... |
Note that performance changes may not drop below the Pokémon's minimum performance rating, nor may it exceed the Pokémon's maximum performance rating. Thus, for example, a Cradily may never have its Speed or Jump rating improved or degraded as those attributes are fixed (as such, for example, it is advisable to give it dry Aprijuices for which sweetness or bitterness is its weakest flavor).
This game mechanic article is part of Project Games, a Bulbapedia project that aims to write comprehensive articles on the Pokémon games. |