Please donate money and help me raise over $3100 for my education.

Pokemon Ruby/Sapphire - Catch Rate Formula

Formula

X = (((A*3-B*2)*C)/(A*3))*D

where:

  • A = wild Pokemon's total HP
  • B = wild Pokemon's current HP
  • C = catch rate, initially equal to wild Pokemon's rareness value
  • D = wild Pokemon's status: if asleep or frozen, D=2; if burned, paralyzed, or poisoned, D=1.5; else D=1

If X is greater than 255, capture succeeds. (If X equals 0, X is 1.)

Y = 0x000FFFF0 / (sqrt(sqrt( 0x00FF0000/X ) ) )

Four random numbers from 0 through 65535 are then generated. If all of them are less than Y, capture is successful. Otherwise the number of times the ball shakes before it breaks is equal to the number of random numbers less than Y.

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, Safari Ball - multiplier is 1.5
  • Ultra Ball - multiplier is 2.0
  • Master Ball - no formula is used, capture succeeds automatically
  • Net Ball - multiplier is 3.0 if wild Pokemon is of Bug or Water type; else 1.0
  • Nest Ball - if wild Pokemon's level is at least 30, multiplier is 1.0; else catch rate is (40-(wild Pokemon's level))/10
  • Dive Ball - catch rate is 4.0 if underwater; else 1.0
  • Repeat Ball - catch rate is 3.0 if caught before; else 1.0
  • Timer Ball - catch rate is ((No. of turns)+10)/10, maximum 4.0
  • Premier Ball - catch rate is 1.0
  • Luxury Ball - catch rate is 1.0

A wild Pokemon can be caught with a Ball even if it's currently using Dig, Fly, Dive or Bounce. If the capture fails, that doesn't affect the wild Pokemon's two-turn attack.

Please donate money and help me raise over $3100 for my education.


Discussion