PokéBase - Pokémon Q&A

# What determines the size of the Magikarp shown to the Fishing Guru at Lake of Rage?

14,495 views

The Fishing Guru at the Lake of Rage has a dream of seeing the largest Magikarp. If you have one in your team, he will tell you how large it is. What determines its size?

retagged
Coding-wise? Or do you mean, like, is there anyway you can get a Magikarp to grow more in-game?
Coding-wise.
I always thought it was random...
It's all about luck, you can't really see if Magikarp is bigger or smaller than the other. Just go the Guru whenever you catch a Magikarp and show it to him, I guess he'll tell you what the size is. Sorry for not giving you a really informative answer. ;c
Yeah, I was looking for what it's size is actually determined by. Possibly a formula of some sort?
If it was random, then you could technically keep showing the same Magikarp to the guy and get different values, but the values are the same. Therefore, there must be some data saved to that Magikarp individual.
I asked a similar question about DPPt and got a good answer that might also apply to this question. https://pokemondb.net/pokebase/243430/pokemon-size-variation
Can I remove the "unresolved" tag?

Magikarp's size is determined by a combination of its IVs and the lower half of its Personality Value, a hidden, 32-bit integer assigned to every Pokémon that determines a lot of the Pokémon's traits (like ability, shininess, gender, etc.).

`00000000 00000000 *00000000* >00000000<`
The lowest two bytes of p are used in the calculation: p1 (surrounded by `> <` above) is mathematically equivalent to `p % 256`, while p2 (surrounded by `* *` above) is equivalent to `(p / 256) % 256` (rounded down). The IV values are also not used in whole; only the four least significant bits of each are used: mathematically, `<stat>' = IV % 16`.

The first step in the calculation is as follows:
`s = ( ( (Atk' ⊕ Def') * HP' ) ⊕ p1 ) * 256 + ( ( (SpAtk' ⊕ SpDef') * Spd' ) ⊕ p2 )`

"For the next step, h is the species' height in tenths of a meter. And the values of x, y, and z depend on" certain vales the Bulbapedia article has laid out in a chart I can't include here.

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.

For reference (taken from the shininess section in the Bulbapedia article):
> A bitwise exclusive or operation (or "⊕") on inputs a and b, written as `a ⊕ b = c`, outputs c such that, if `a(i) (bit I of a)` and `b(i)` are different, then `c(i)` is 1; otherwise it is 0. For example, `1100 ⊕ 1010 = 0110`.

Even though the Pokémon's IVs help determine the size of a Pokémon, the equation makes it so that the Pokémon's size cannot be manipulated by IV breeding, since the Personality Value (in this generation) cannot be manipulated by breeding in any significant way, and is therefore always random. The equation uses the PV to alter the output in an unpredictable manner. For all intents and purposes, there is no method to get specific Magikarp sizes outside of RNG abuse.

by
selected by
Perfect. Thanks for bothering with a four-year-old question, haha.
I was just looking through the unresolved tag, saw this, and thought, "Hey, I know this one!"
Guess that's what happens when you spend way too long on Bulbapedia trying to understand the games' substructures.

Edit: also, it's much closer to being 5 years old at this point.
I understand the substructures tho... ;-;