Pokémon Red Version, Blue Version, and Yellow Version - Catch Rate Formula
Here is the method for determining whether a ball will successfully catch a Pokémon.
- If the Master Ball is used, the Pokémon is caught.
-
A random number, R1, is generated.
- If the Poké Ball is used, R1 is a random integer from 0 through 255.
- If the Great Ball is used, R1 is a random integer from 0 through 200.
- If the Ultra Ball or Safari Ball is used, R1 is a random integer from 0 through 150.
- C is set to 25 if the Pokémon is asleep or frozen, to 12 if the Pokémon is burned, poisoned, or paralyzed, or to 0 otherwise.
- C is subtracted from R1. If this makes R1 negative, the Pokémon is caught.
-
A variable F4 is set to min(255,int(int((B*255)/A)/max(1,int(C/4)))
where:
- A = 8 if the Great Ball is used, else 12.
- B = Pokémon’s maximum HP
- C = Pokémon’s current HP
-
If the
starting catch rate
for the Pokémon’s original species is less than R1, the catch attempt
fails:
- D is set to (B*100/E) where B is the Pokémon’s starting catch rate and E is 255 for the Poké Ball, 200 for the Great Ball, and 150 for the Ultra Ball or Safari Ball. If D is 256 or greater, the ball shakes three times before it breaks and the process stops.
- D is then multiplied by F4 and divided by 255. If the wild Pokémon is asleep or frozen, 10 is added to D. If it’s poisoned, burned, or paralyzed, 5 is added to D.
- If D is less than 10, the ball misses the Pokémon. Otherwise, if D is less than 30, the ball shakes once before it breaks. Otherwise, if D is less than 70, the ball shakes twice before it breaks. Otherwise, the ball shakes three times before it breaks.
-
R2 is a random integer from 0 through 255.
- If F4 is less than R2, the catch attempt fails. Otherwise, the Pokémon is caught.
A wild Pokémon can be caught with a Ball even if it’s currently using Dig or Fly. If the catch attempt fails, that doesn’t affect the wild Pokémon’s two-turn attack.