Pokemon Catch Rate Calculator Gen 7

Pokémon Catch Rate Calculator (Gen 7)

Sun, Moon, Ultra Sun & Ultra Moon Mechanics

Legendaries: 3, Common: 255
Poké Ball (1x) Great Ball (1.5x) Ultra Ball (2x) Dusk Ball (Night/Cave) (3x) Net Ball (Water/Bug) (3.5x) Timer Ball (10+ turns) (4x) Quick Ball (Turn 1) (5x) Repeat Ball (Already Caught) (3.5x)
None (1x) Sleep or Freeze (2.5x) Paralysis, Poison, or Burn (1.5x)
No (1x) Yes (1.5x)

How Gen 7 Catch Rates Work

In Generation 7 (Pokémon Sun, Moon, Ultra Sun, and Ultra Moon), the catch rate formula underwent minor refinements from previous generations. The core mechanic relies on a value known as "a," which determines the raw capture strength before checking for the specific "shake" mechanics.

The Catch Formula (a)

a = (((3 * MaxHP – 2 * CurrentHP) * Rate * Ball) / (3 * MaxHP)) * Status * Roto

Key Multipliers in Alola

  • Status Conditions: Sleep and Freeze are the most effective, providing a 2.5x boost. Paralysis, Burn, and Poison provide 1.5x.
  • Roto Catch: A new mechanic in Ultra Sun/Ultra Moon via the Roto Loto, providing a massive 1.5x multiplier to the final catch value.
  • Species Rate: Every Pokémon has a hidden catch rate. Legendary Pokémon like Solgaleo or Necrozma usually have a rate of 3 or 45, making them significantly harder to catch than a Caterpie (255).

Probability vs. Guaranteed Catch

If the calculated value "a" is 255 or higher, the Pokémon is guaranteed to be caught. If it is lower, the game performs a secondary calculation to determine the probability of each "shake" of the Poké Ball. Specifically, the game calculates a value "b" and checks it against four random numbers. Our calculator simplifies this into a final percentage chance of success per ball thrown.

Pro-Tips for Gen 7 Catching

  • False Swipe: Always use False Swipe to bring the Pokémon down to exactly 1 HP without knocking it out.
  • Dusk Balls: Since Gen 7 features many caves and a day/night cycle, Dusk Balls are often your best friend with a 3x multiplier.
  • Adrenaline Orbs: In SOS battles, the catch rate can be affected by the length of the battle and whether the Pokémon is an ally or the original encounter.
function calculateCatchRate() { var maxHP = parseFloat(document.getElementById('maxHP').value); var currentHP = parseFloat(document.getElementById('currentHP').value); var speciesRate = parseFloat(document.getElementById('speciesRate').value); var ballBonus = parseFloat(document.getElementById('ballBonus').value); var statusBonus = parseFloat(document.getElementById('statusBonus').value); var rotoBonus = parseFloat(document.getElementById('rotoBonus').value); if (isNaN(maxHP) || isNaN(currentHP) || isNaN(speciesRate) || maxHP maxHP) currentHP = maxHP; // Standard Gen 7 Catch Formula for 'a' var a = (((3 * maxHP – 2 * currentHP) * speciesRate * ballBonus) / (3 * maxHP)) * statusBonus * rotoBonus; var finalPercentage = 0; if (a >= 255) { finalPercentage = 100; } else { // Probability p = (a/255)^0.75 // This is a simplified reliable approximation for the 4-shake check var p = Math.pow(a / 255, 0.75); finalPercentage = p * 100; } // Rounding for display if (finalPercentage > 100) finalPercentage = 100; if (finalPercentage = 100) { shakeProb.innerHTML = "Guaranteed Catch! You don't even need to hold 'Down + B'."; } else { var avgBalls = Math.ceil(100 / finalPercentage); shakeProb.innerHTML = "On average, you will need " + avgBalls + " ball(s) of this type."; } }

Leave a Comment