Pokémon Gold Version, Silver Version, and Crystal Version - Catch Rate Formula
Formula
X = floor( (B - A)*C/B+D)
where:
- A = wild Pokémon’s current HP times 2.
-
B = wild Pokémon’s maximum HP times 3.
- If B is greater than 255, A = floor(floor(A/2)/2) and B = floor(floor(B/2)/2).
- Either way, A and B are truncated to 8-bit unsigned integers, and A is set to 1 if it’s 0. The subtraction of B and A can underflow if A is greater than B.
- C = catch rate, initially equal to the starting catch rate value for the wild Pokémon’s current species.
- D = wild Pokémon’s status: if asleep or frozen, D=10; if burned, paralyzed, or poisoned, D=5; else D=0. Because of a bug , D is 0 instead if burned, paralyzed, or poisoned.
- "floor" means "round down."
If X is 255 or greater, it becomes 255. Then, if a random integer from 0 through 255 is less than or equal to X, the Pokémon is caught. A higher number has a greater chance of success.
If the catch attempt fails, the game finds Y according to the value of X and generates three random numbers from 0 through 255, stopping when a number generated this way is greater than or equal to Y. The number of times the ball shakes before it breaks is equal to the number of random numbers generated this way that are less than Y. The value of Y is determined by converting X as follows: 0-1 -->63; 2 -->75; 3 -->84; 4 -->90; 5 -->95; 6-7 -->103; 8-10 -->113; 11-15 -->126; 16-20 -->134; 21-30 -->149; 31-40 -->160; 41-50 -->169; 51-60 -->177; 61-80 -->191; 81-100 -->201; 101-120 -->211; 121-140 -->220; 141-160 -->227; 161-180 -->234; 181-200 -->240; 201-220 -->246; 221-240 -->251; 241-254 -->253; 255 -->255.
Balls
Different Balls have different rates of success. Below are the multipliers to the catch rate for each Ball.
- Poké Ball - multiplier is 1.0
- Great Ball, Park Ball - multiplier is 1.5
- Ultra Ball - multiplier is 2.0
- Master Ball - X is set to 255, thus making the catch succeed automatically
- Love Ball - The catch rate is multiplied by 8 if the wild Pokémon’s and the attacker’s current species are the same and if the wild Pokémon and the attacker are both male or both female. (This is odd, yes.)
- Heavy Ball - The catch rate rises by 30 if the wild Pokémon’s current species is Snorlax or Steelix; else rises by 20 if it’s Dragonite, Golem, Gyarados, Lapras, Lugia, Mantine, or Onix; else remains unchanged if it’s Arcanine, Cloyster, Dewgong, Donphan, Entei, Exeggutor, Forretress, Graveler, Ho-Oh, Kingdra, Machamp, Mewtwo, Pupitar, Raikou, Rhydon, Rhyhorn, Scizor, Suicune, Tyranitar, or Ursaring; else falls by 20 for any other species.
- Lure Ball - The multiplier is 3 if the Pokémon was fished.
- Friend Ball - The multiplier is 1. (The Pokémon’s friendship will be 200 if caught.)
- Fast Ball - Catch rate is multiplied by 4.0 if the wild Pokémon’s current species is Grimer, Magnemite, or Tangela. It was rumored that a player can catch Entei, Raikou, and Suicune more easily with this ball, but this rumor is false.
- Moon Ball - Catch rate is multiplied by 4.0 if the wild Pokémon’s current species is Clefairy, Jigglypuff, Nidorina, or Nidorino (that is, evolves with a Moon Stone). Because of a bug, this effect doesn’t occur.
- Level Ball - Catch rate is multiplied by 8.0 if 1/4 the attacker’s level is higher than the wild Pokémon’s, else 4.0 if half the attacker’s level is higher, else 2.0 if the attacker’s level is higher, else 1.0.
A wild Pokémon can be caught with a Ball even if it’s currently using Dig or Fly. If the catch fails, that doesn’t affect the wild Pokémon’s two-turn attack.