Pokemon Red, Blue, and Yellow - Catch Rate Formula
Here is the method for determining whether a ball will successfully capture a Pokémon.
- If the Master Ball is used, the Pokemon is caught.
- A random number, R1, is generated.
- If the Poké Ball is used, R1 is a random number from 0 through 255.
- If the Great Ball is used, R1 is a random number from 0 through 200.
- If the Ultra or Safari Ball is used, R1 is a random number from 0 through 150.
- A variable, C, is set to 0.
- If the Pokemon is asleep or frozen, C is set to 12.
- If the Pokemon is burned, poisoned, or paralyzed, C is set to 25.
- If R1 is less than C, the Pokemon is caught.
- A variable F4 is set to max(255,int(int((B*255)/A)/min(1,int(C/4))) where:
- A = 8 if the Great Ball is used, else 12
- B = Pokemon's total HP
- C = Pokemon's current HP
- If the Pokemon's rareness* is less than R1, the Pokemon breaks free.
- R2 is a random number from 0 through 255.
- If F4 is less than R2, the Pokemon breaks free. Otherwise, the Pokemon is caught.
A wild Pokemon can be caught with a Ball even if it's currently using Dig or Fly. If the capture fails, that doesn't affect the wild Pokemon's two-turn attack.
* A Pokemon's rareness can be found at this page.