Talk:Catch rate: Difference between revisions
Rulingsword (talk | contribs) |
Mudmaster97 (talk | contribs) (→Generation VI Catch Rate Formula: new section) |
||
Line 381: | Line 381: | ||
:I believe it means the game uses 12 fractional bits. If the program is executed in the order shown, "(3*HP_MAX - 2*HP_Current)*rate*ball/3/HP_MAX*status", the "/3" will round the result then "/HP_Max" will round the result again. If we were only dealing with int data types, each division would round the result to the next lowest integer (1/3 = 0, 13/10 = 1, 9000/4096 = 2). The fractional bits ensure a calculation like 400/3 yields 546133/4096 (133.33325) instead of just 133 - an error of .006% instead .25%. Is it going to make much of a difference after you round to the nearest whole number? Not really. But when you have the memory and the processing power, this becomes a trivial process, so why not. [[User:Rulingsword|Rulingsword]] ([[User talk:Rulingsword|talk]]) 04:47, 21 January 2014 (UTC) | :I believe it means the game uses 12 fractional bits. If the program is executed in the order shown, "(3*HP_MAX - 2*HP_Current)*rate*ball/3/HP_MAX*status", the "/3" will round the result then "/HP_Max" will round the result again. If we were only dealing with int data types, each division would round the result to the next lowest integer (1/3 = 0, 13/10 = 1, 9000/4096 = 2). The fractional bits ensure a calculation like 400/3 yields 546133/4096 (133.33325) instead of just 133 - an error of .006% instead .25%. Is it going to make much of a difference after you round to the nearest whole number? Not really. But when you have the memory and the processing power, this becomes a trivial process, so why not. [[User:Rulingsword|Rulingsword]] ([[User talk:Rulingsword|talk]]) 04:47, 21 January 2014 (UTC) | ||
== Generation VI Catch Rate Formula == | |||
I think that we can say with certainty that the catch rate formula has changed drastically in Generation VI. [[Zygarde]] has a catch rate of 0 which would mean that it could not be captured except with a Master Ball. This is assuming that the catch rate given is correct. |
Revision as of 15:51, 12 February 2014
The computer science term for "Floor" is, in fact, "int(", which simply truncates the number. "round(" would make a value like 6.9 become 7; "int(" would make it 6. I believe Zhen is correct in this case. ~Evan
- What was that in reference to? - Jshadias
- Zhen's edit and your subsequent reversion, if I read the history right. ~Evan
- He was just editing it to make it consistent with my other changes. In any case, the after revision is the right-side column. In any case, trunc() and floor() are the same, but int() is ambiguous. It simply means conversion to integer, which could be rounding or truncating. Wish I could get TeX-rendering working... - 刘 (劉) 振霖 09:40, 12 Feb 2005 (GMT)
- Zhen's edit and your subsequent reversion, if I read the history right. ~Evan
Is this formula accurate?
When using the formula
Chance = floor (((( TotalHP * 4 ) - ( CurrentHP * 2 )) * CatchRate ) / TotalHP ) + Status + 1
with Pokémon with high catch rates (ex. Pidgey and Rattata), the formula says that there should be about a 200% chance to catch a Pidgey at 100% HP. But there isn't a 200% chance or even a 100% chance. I caught 5 Pokémon on Route 1 of FireRed without weakening any of them and I used 15 Pokéballs. Despite the sample size, the fact that the Pokémon escaped even once is enough to raise concern about the formula. Any other thoughts on the matter? -Wild Eep
- Experimental data isn't the same as theoretical results. But then again, methinks you might be misinterpreting the results of using this formula. The formula does not return a percentage, it returns a number, and in order to capture a Pokémon, the randomly generated number between 0 and 255 (or possibly a higher number than that, say, 511) has to be below the number you obtain from this formula. But I'm not the game mechanics expert. - 振霖T 02:16, 25 November 2005 (CST)
Hmm. . . using the formula for any pokémon at any level with full HP and no status ailments with a catch rate of 255 gives an output of 511. Every site I could find has the exact same formula, and they all say the random number is between 0-255. Those that site sources site Meowth346 as their source, so maybe he knows, or can find out. Slim 15:54, 29 November 2005 (CST)
- Indeed, there seems to be something off with either this formula or the listed CatchRates. Trying to catch a Pokemon simply by chucking a normal Pokeball at it (that is, no damage done, no status changes) simplifies as so:
- Chance = floor (Poké Ball * (((( TotalHP * 4 ) - ( CurrentHP * 2 )) * CatchRate ) / TotalHP ) + Status + 1)
- Chance = floor (1 * (((( TotalHP * 4 ) - ( TotalHP * 2 )) * CatchRate ) / TotalHP ) + 0 + 1)
- Chance = floor ((( TotalHP * 2 * CatchRate ) / TotalHP ) + 1)
- Chance = floor (( 2 * CatchRate ) + 1)
- For any CatchRate of 128 or higher, Chance is at least 257. The random number between 0 and 255 this is compared to will always be less than this, and as a result any Pokemon with a CatchRate of 128 or higher should always be caught simply by chucking a Pokeball at it. Yet this does not seem to be the case -- you can't always catch an Abra this way, despite them having a CatchRate of 200. This should give them a Chance of 401, and thus a 100% catch rate. Wild Eep and Slim seem to have noticed the same thing. Opaopa13 05:12, 27 April 2007 (UTC)
- I just noticed something -- note the following line in the article:
- CurrentHP is either the wild Pokémon's current HP, or if its current HP is greater than 255, use floor ( CurrentHP / 4).
- It doesn't make sense to simply replace CurrentHP with floor ( CurrentHP / 4) -- that would make for a very strange function, where a Pokemon with 256 HP would be easier to catch than one with 68. Replacing all of (CurrentHP * 2 ) just makes the problem worse. This suggests a typographical error somewhere in either the formula or its explanation.
- I just noticed something -- note the following line in the article:
- I had a hunch, and replaced (( TotalHP * 4 ) - ( CurrentHP * 2 )) with (( TotalHP / 4 ) - ( CurrentHP / 2 )). Unfortunately, that's not right either -- according to that forumla, a Pokemon above 50% health will have a negative Chance value and thus can NEVER be caught. We know that is not the case. However, I suspect something along those lines is the solution. Perhaps one of those multiplications is supposed to be a division instead. Is there any healthy chunk of experimental data to look at? Opaopa13 05:24, 28 April 2007 (UTC)
The sensible thing to do is to ask someone who knows how to use a debugger/disassembler to investigate this. Unfortunately, the only person I know who can do this is pika. - 振霖T 06:57, 28 April 2007 (UTC)
Examining an emulated copy of Pokemon Red, I did, indeed, find it impossible to NOT catch any Rattata or Pidgey I threw a Pokeball at. I was more than ready to believe this formula were true. But, as Opaopa13 said, we know it isn't, because anyone who has played the Red or Blue versions knows Abra is not so easy to catch.
Interestingly, I tried the same thing on a Pidgey in an emulated copy of the Gold version (throwing a ball at it when it was at full health), and failed to capture it until my third try.
I JUST DON'T KNOW WHAT TO BELIEVE! - Pineapple
- It would be easy to explain this if Abra's catch rate was just wrong, but the catch rates must have been data-mined, so that's out. Allow me to be completely speculative here, but perhaps it's something like a rare few Pokemon having an additional chance to escape capture? Or certain catch rates that are influenced by what badges you have? It would be odd to have something like that when the programmers could just alter something's catch rate instead, though...
- Well, we _know_ we get the wrong results for Abra. I'm guessing there was some minor typo somewhere, or else some minor modifier to the formula we aren't aware of.
- On a side-note, I'm still really confused by the "if CurrentHP > 256, use (CurrentHP / 4) instead" thing. I just can't imagine any reason, technical or modelling-wise, where "use CurrentHP = 255" doesn't work just as well or better. Or at least divide by 2! (Pokemon HP never exceeds 1024, right? Thinking in terms of the number of bits it takes to represent these numbers...). Opaopa13 19:22, 7 May 2007 (UTC)
I think, we should just remove the formula from the page until we can get some authoritative analysis, or otherwise from experimental data. - 振霖T 06:17, 8 May 2007 (UTC)
I strongly suspect that the only problem with the formula on the site is the 2. I know that's how the old equation simplifies, so the original was probably off as well. 1+INT(B*(2-P)*C+S) makes perfect sense. Then a Pidgey or other Pokemon with a catch rate of 255 is guaranteed to be caught, since at full health and no ailments, you get 256. Any number from 0-255 will be lower than that, so you'll always catch it. On the other hand, a legendary Pokemon with 1/10th of its health left, paralyzed, with an ultra ball thrown an it, is 1+INT(2*1.9*3+5), or 17. 17/256 (since it's a less than roll, not less than or equal to) is about 6.6% (1 in 15). That seems about right, given that it's taken an average of 15-20 ultra balls for me to catch most of the legendaries. The current formula says it would be 28/256, or 10.9% (about 1 in 9), which is definitely not right. Easiest way to test would be to repeatedly try catching something with a catch rate around 120, using a standard ball, and see if it happens about half the time. Arrkhal 03:50, 20 May 2007 (UTC)
The correct formula
Apparently someone at Smogon found an extremely complex formula on a Japanese website. A good friend of mine simplified it and it seems to be 100% Accurate:
( ( 1 - CurHP * 2 / ( MaxHP * 3 ) ) * Catch * Ball * Status ) / 256
Status:
- 1 for Normal
- 1.5 for Poisoned, Paralyzed, or Burned
- 2 for Asleep or Frozen
Examples:
- A level 2 Rattata, with 13/13 HP, catch rate 255, using a Pokeball. No status effects.
- ( ( 1 - 13 * 2 / ( 13 * 3 ) ) * 255 * 1 * 1 ) / 256
- = 0.33203125
- ~ 33%
- A level 70 Regigigas, with 1/234 HP, frozen, catch rate 3, using a Dusk ball.
- ( ( 1 - 1 * 2 / ( 234 * 3 ) ) * 3 * 4 * 2 ) / 256
- = 0.093482906
- ~ 9%
MK 05:51, 20 May 2007 (UTC)
- This does appear to be more reasonable, however, I would like to see this so-called "extremely complex" formula. There may be some rounding going on which affects the precision of the results. - 振霖T 12:05, 22 May 2007 (UTC)
Formula is nowhere near correct
I just tried catching a Lv. 13 Feebas at full health (30 HP). I threw three dusk balls at it (while in the cavern, of course), and they all broke. On the fourth try I was able to catch it. It has a catch rate of 255, so according to this formula I have maybe a 400% chance of catching it at full health. Even going by the catch rate alone, I should have had a 100% chance of catching it. This wasn't an atypical situation either. I tried catching a few more before and after this one, and I generally wasn't able to capture them until I weakened them (I caught maybe one or two without hurting it). Once I threw an ultra ball at one, and it immediately broke. I think the pokemon's HP ratio definitely has a lot more to do with catching it than what this formula suggests.
If there are any sources on that other function that someone submitted in here (I don't know how to reply to comments, sorry :<), then that would be really nice. But I tried that equation on the above-mentioned feebas and got (1-(30*2)/(30*3))*255*4*1)/256 (the pokeball page on here says that the dusk ball is 4x in caverns, and Wikipedia says it's twice as good as an ultraball, so I'm going with 4x), which equals 340/256, or 1.328125. This is still above a 100% catch rate on something that seemed like it was maybe 50%. Even going with the assumption that the dusk ball is only 3x better than a pokeball, I still got 255/256, which awfully close to 100%. So unless the dusk ball didn't have its 3x/4x effect (maybe from me fishing in the cavern instead of walking in the cavern?), I don't think this function is true either.
--Stele007 18:59, 21 May 2007 (UTC)
- Were you surfing by any chance? There has to be some way to explain this. Feebas is extremely easy to capture regardless. My friend caught several using Quick balls (4x for the first 5 turns) immediately at the start of battle and none of them missed. If you were, perhaps the Dusk balls did not work because of surfing. I know they do work while fishing... MK 06:25, 22 May 2007 (UTC)
- And by several I mean over a dozen. MK 06:28, 22 May 2007 (UTC)
Safari Zone
There's something I'd like to ask. In the Safari Zone, you can throw bait and mud in Generation IV. These are said to make Pokémon easier to catch. However, does anybody know of how EXACTLY do they change the catch rate (Or make them easier to catch somehow)? Thank you. - JMS 21:27, 22 December 2007 (UTC)
- Actually, I think they alter the percent chance that the Pokémon'll run for it/accuracy of the ball. TTEchidnaGSDS! 22:53, 22 December 2007 (UTC)
- Actually, the equation is posted on the Japanese wikipage for Capture Rate:
- Solve for S (S = Safari)
- S=(Capture Rate×100)÷1275×Rock Compensation÷Food Compensation
- Rock Compensation = Times rock/mud is thrown at Pokémon × 2
- Food Compensation = Times food is thrown at Pokémon × 2
- Then solve for a, which is a special equation for this time around:
- a=(S×1275)÷100
- Just keep in mind that the more mud/rocks you throw, the easier it is to capture, but the easier it is to run away. The more food you throw, the harder it is to capture but it'll stay around longer. - GimmeTOKYO
Trivia...
The appearances of Pokémon such as Nosepass, Tropius, Carnivine, etc., would suggest that their catch rate is low. What the hell?!?!? Lord of Origami 18:44, 24 June 2008 (UTC)
- Yeah... I don't know what that means, either. ~$aturn¥oshi THE VOICES 18:49, 24 June 2008 (UTC)
What I believe it was saying is that the rarity of these pokémon would suggest they have a low catch rate, just like one of a kind pokémon do. However, they actually have quite high catch rates. Does this seem right? Da Rammo 06:34, 22 April 2009 (UTC)
- I put a note in the lede to try to address this last interpretation. AySz88 11:50, 24 December 2009 (UTC)
Easier explanation?
I think there should be an easier explanation included in this article, something of a tl;dr section. To me, this is all mathematical mumbo-jumbo, and I commonly fail anything and everything algebraic. I could honestly care less how the game determines how a pokemon is caught, I just know that I need to lower the HP of the wild Pokémon and possibly inflict a status problem on it to catch it. Also, on major thing that's missing from the article is it doesn't explain if a higher number for a catch rate is better or worse. It may be a dumb question to ask (but I don't honestly get it, either) but you quite often have to write for the five-year-old poké-tards that will be here.
- Higher number for catch rate increases likelihood of capture. It's why Mewtwo's is 3. TTEchidna 04:39, 28 June 2008 (UTC)
My brain hurts... too much math... Diachronos 16:55, 1 October 2008 (UTC)
Will you please make this article in a way that actually makes sense? It tells me nothing helpful. Alakazam 2
- I agree, a simplified, even if less informative, version of this article would probably be more helpful to a lot more users.Gastly's mama 15:36, 7 December 2008 (UTC)
- I tried to write a more accessible way to interpret the formula. Also see Reworking the a term below.... AySz88 11:51, 24 December 2009 (UTC)
CatchRate Calculator
I have written a small catch-rate calculator program. You put in details of the opponent's HP,Max HP, Base CatchRate,status ailment, and choose which ball you are using (along with ball-specific factors), and it tells you the chances of catching the pokemon. Should i include a link on the page? Lord of Origami 12:06, 10 January 2009 (UTC)
Heavy Ball
How does it work into the formula if the ball bonus adds instead of multiplying? Does it add before or after the status bonus? --Kaoz 16:29, 28 September 2009 (UTC)
- Order of operations. Multiplication first. ht14 16:42, 28 September 2009 (UTC)
- Are you sure? Because if it works just like I think you're saying, you just replace the Ball Multiplier with a flat "+30" rate (or whatever technically applies). I calculated the catch rate of Groudon using a Heavy Ball VS a Great Ball, and the Great Ball outperformed the specialty Poké Ball. If that's the case, Heavy Balls are pretty useless.--Purimpopoie 13:33, 18 October 2009 (UTC)
- I doubt that "order of operations" applies here; it's relatively easy to just apply the +30 before the multiplications coding-wise (much like using parenthesis). One would need to look at the game code somehow, probably, to see for certain. AySz88 12:07, 24 December 2009 (UTC)
Luxury or Friendly?
Which is more effective? ht14 01:05, 29 September 2009 (UTC)
- it depends, i know squat about the catch rate, but i do know the luxury ball increases how fast the pokemon's friendship raises while the friendly(?) ball gives an immediate boost... by how much i'm not quite sure. - Geomexis 12:59, 18 January 2010 (UTC)
- Luxury Balls increase the rate at which your pokemon becomes friendly from actions as outlined in the Happiness article. Friend Balls automatically set the pokemon's happiness to 200 (instead of the usual 70) when caught. Both poke balls have a catch rate of 1x. Max happiness is 255 and happiness-based evolutions happen at 220+ so usually the Friend Ball will get you there quickly for cheap. ~mjblink- unsigned comment from mjblink (talk • contribs)
Reworking the a term
In every location in this article that I can tell, it would be clearer if a were already divided by 255, i.e. substituting a/255 = a/(2^8 - 1) in each formula with a new variable. (Even that odd-looking 16711680 is 255 * 65536 .) Then a simply becomes equal to the approximation to p and there is an obvious intuitive meaning to it. I used this idea in the new lede, and it'd probably be clearer to do this in the rest of the article as well.
Is there some reason why a was defined this way that I don't know of? AySz88 11:39, 24 December 2009 (UTC)
Trivia on HP
There's a bit in the "Trivia" section about high-HP Pokémon being easier to catch at 1 HP than lower-HP ones. This is true, but it also states that "Pokémon with higher HP stats (such as Chansey) are easier to capture when their HP is reduced, despite low catch rates compared to others." But there isn't a big-enough effect to overwhelm the catch rate except at very very low HP levels. The equation in the current article can be reorganized this way:
a = catch_rate * ball_bonus * status_bonus * (1 - 2/3 * (currentHP / maxHP) )
And at 1 HP:
a = catch_rate * ball_bonus * status_bonus * (1 - 2/(3 * maxHP))
And comparing the HP penalties at 1 HP:
- 10 HP max: 1 - 2/(3 * 10) = 1 - 2/30 = 6.7% penalty (i.e. 0.933x)
- 20 HP max: 1 - 2/(3 * 20) = 1 - 2/60 = 3.3% penalty
- 100HP max: 1 - 2/(3 * 100) = 1 - 2/300 = 0.66% penalty
- 200HP max: 1 - 2/(3 * 200) = 1 - 2/600 = 0.33% penalty
... Once you get past 20ish HP, shaving off bits of that last 3% of (multiplicative) penalty is pretty negligible, equivalent to around 7 points of catch rate at most (3% of 255). AySz88 10:40, 25 December 2009 (UTC)
Generation I?
In Generation I, the mechanisms are somewhat different. For example, the number of shakes doesn't seem to be determined randomly and a Poké Ball can even entirely miss a target. Do the Gen. I games also use a completely different formula or does it work the same way as currently described in the article? - unsigned comment from Socob (talk • contribs)
- The formula is definitely different in Generation I - I think Pokémon with very high catch rate (like Pidgey) were more difficult to catch, and Pokémon with very low catch rate (like Articuno) were easier to catch. By the way, the number of shakes has not been determined randomly since at least the beginning of Generation IV. Ultraflame 16:06, 16 May 2010 (UTC)
- I thought so. It would be nice if we had some information about this, but I don't think that's very easy to get. About the shaking - I'm not sure if that's also what you meant, but what I was referring to by "not randomly" in Generation I is that a Ball will always shake the same amount of times on a Pokémon as long as you don't change its HP/status condition (unless it's caught). -- Socob ( Talk | Contribs ) 10:22, 21 May 2010 (UTC)
- Actually, I just thought of this: You can try asking Pokémon ROM hacking communities about Generation I catch rate mechanics. The PokéCommunity is one of the few Pokémon sites that has a dedicated sub-forum for ROM hacking discussion. Ultraflame 19:32, 21 May 2010 (UTC)
- I thought so. It would be nice if we had some information about this, but I don't think that's very easy to get. About the shaking - I'm not sure if that's also what you meant, but what I was referring to by "not randomly" in Generation I is that a Ball will always shake the same amount of times on a Pokémon as long as you don't change its HP/status condition (unless it's caught). -- Socob ( Talk | Contribs ) 10:22, 21 May 2010 (UTC)
- I have put up a complete analysis of the R/B/Y capture algorithm on my website, based on the actual code. Something about it should at least probably be included on the page. Dragonfree 09:00, 25 February 2011 (UTC)
Trivia
Somewhere else on this site, I read that the lowest possible catch rate is 3 since if it were any lower, the Master ball would have a chance of failing. http://bulbapedia.bulbagarden.net/wiki/List_of_Pokemon_by_catch_rate#Trivia KurosakisTwin 17:22, 5 August 2010 (UTC)
- False. The Master Ball bypasses the formula entirely, so even if the catch rate were 0, the it would still catch the Pokémon. --a_magical_me 23:09, 5 August 2010 (UTC)
- How do you know that? As far as I know, the Master Ball simply uses a value of 255 for the 'BonusBall' variable in the formula.
- With this, if all the other factors in the formula multiplied would result in a number less than one, 'a' would be less than 255 and thus, the Pokémon would have a chance of escaping. Quoting from the article, "The minimum value for 'a' (for a Pokémon with full health) would be ⅓ × catch rate." Since the result of the formula without the BonusBall component has to be at least one for the Master Ball to work reliably, this means that the catch rate must at least be 3 (as ⅓ × 3 = 1).
- This seems to be reasonable evidence to me as to why we've never seen catch rates lower than 3. -- Socob ( Talk | Contribs ) 12:29, 7 August 2010 (UTC)
- Also, I'm pretty sure that the game wouldn't make an exception for the master ball. That would result in a lot more code, and therefore it's just easier to not make more code and make the lowest catch rate 3 so that the Master Ball can catch anything. KurosakisTwin 09:01, 11 August 2010 (UTC)
- Socob, I know because it's what UPC says and it's what the reference in the article says. Also because I have read the relevant code in both Diamond and HeartGold, and I can tell you that the Master Ball is simply not implemented in the way you suggest.
- KurosakisTwin, it does not require "a lot more code", just a couple lines—a small
if
statement—and is what any sane programmer would do. - And here is something to think about: the lowest catch rate has been 3 since the beginning, way back in Red and Blue, when a completely different algorithm was used. --a_magical_me 07:33, 21 August 2010 (UTC)
- Even UPC and the reference have their sources (which might be false), and even if they aren't, no matter how it's actually calculated in the games' codes, the Master Ball works without fail, so the statements on UPC don't necessarily indicate the actual calculations.
- Still, if you have viewed the code as you say, there's not much I can argue against that. All of what I've said above was, of course, simply evidence that pointed in the direction of a Master Ball with a value of 255. Naturally, the catch rates of 3 might be there to prevent "a" from being below 1 for entirely different reasons. If "a" is actually rounded down to an integer (which is actually stated in the article), then it would have to be at least 1 for the formula to work. However, this seems strange considering your last statement about the algorithm in Generation I. I haven't looked at it closely, but I guess it also needed catch rates of at least 3. I wonder, though, why the developers would go through the trouble of changing the algorithm, but leaving in the necessity of those catch rates of three or higher.
- Long story short: You looked at the code, I didn't, so you're probably right. -- Socob ( Talk | Contribs ) 15:28, 24 August 2010 (UTC)
- Also, I'm pretty sure that the game wouldn't make an exception for the master ball. That would result in a lot more code, and therefore it's just easier to not make more code and make the lowest catch rate 3 so that the Master Ball can catch anything. KurosakisTwin 09:01, 11 August 2010 (UTC)
Critical Capture
Should we write about critical capture, of black and white, here?--Kantenoh 21:56, 18 December 2010 (UTC)
I belive from what i've read and when it happened to me,that there's a not so small chance (I don't know how high), that the pokeball will, when thrown, let out a woosh (a higher pitched on than normaly), absorb a pokemon, let out a metalic sound (ping a little like its captured), shake(a fast shake not a roll) in mid-air, fall down like usualy, then shake only once (not 3 times like usually), and have because of that idk probably about 3 times the capture ratio i suppose. Codebracker
Trainer pokemon level
I've been thinking about it for quite some time now, but pokemon are easier to capture depending on the level of the pokemon you battle it with.
I tried to catch a pokemon with a lv.5 and lv.8 pokemon and i couldn't catch it with ultraballs in 5 tries, than i swaped it for lv.75 pokemon and it worked on first try.
So could the level of the trainer's pokemon also apply somewhere in the formula? Codebracker
- 5 tries is not NEARLY enough trials to draw any kind of conclusion from. If you really want to test this, you're going to have to set up a comprehensive experiment and run it thousands of times. Alternatively, someone who has read the source code can tell you for sure. --Toksyuryel 04:40, 9 January 2011 (UTC)
- I haven't read the code, but the people who wrote this article have. The only time your Pokémon's level is factored in is when you are using a Level Ball. This was actually recently brought up on the forums. --SnorlaxMonster 04:41, 9 January 2011 (UTC)
Critical Capture Rate
What is the rate of a Critical Capture in Generation V? --Nathan2055talk 21:22, 27 February 2011 (UTC) That's what I want to know in Gen 6.--Hydreigonfan1 (talk) 14:02, 19 December 2013 (UTC)
High or low?
It should say in the very beginning whether a high or low number makes it easier/harder for a Pokémon to catch. I don't even think it's ever in the article. - Colorshade 22:20, 13 April 2011 (UTC)
- Good suggestion; I've added that. :) AySz88 17:29, 18 May 2011 (UTC)
Critical capture ambiguity
In the Critical Capture section right now, it says "A random number is generated, and if it is less than the modified value, a critical capture occurs." But what range is the random number in? AySz88 20:38, 18 May 2011 (UTC)
- It seems sensible for the range to be 0 to 255 inclusive, since that is the base of the modified value. Naokohiro 23:54, 7 May 2012 (UTC)
Catch chance
Can anybody tell me whether the chance to catch a Pokémon in Generation I is equal to them in Generation II (and the others) or the chance is different? E.g. I throw an ordinary ball to a full-healthy Weedle. Is the chance to catch it in all generations identically (according to Weedle 33,3%) despite the fact the capture methods are different? I'm sorry again for my bad English! --LaBumm 04:29, 24 September 2011 (UTC)
Doubt Generation III Algorithm
I'm starting to doubt the generation III algorithm. These are my findings in FireRed. I calculated for a paralyzed lvl 50 Moltres at 1 HP (exactly 1 HP due to endure) with a maximum HPmax of 165 (courtesy of Pokemon.Marriland.com) and a capture rate of 3 with an Ultra Ball.
A = (3x165-2x1)x3x2/3/156x1.5 = 8 (rounded down)
B = (2^16-1)xA^(1/4)/(255)^(1/4) = 27581 (rounded down)
This gives a success rate of:
(27581 / 65535)^4 = 0.031 (rounded down) or 3.1%
At the moment I have thrown 400 (FOUR HUNDRED!) Ultra Balls, and still not captured it.
The chance of that happening would be (1-0.031)^400 = 0.000002902 or 1:344550
Please tell me I made a mistake in my calculation. It lies rather far outside the normal 0.05 error margin for experimental testing of hypotheses.
I redid the same sort of testing for Zapdos, I didn't calculate my exact chances, this time I didn't manage to catch it in 200 tries.
Ghostbird 00:11, 25 November 2011 (UTC) EDITED: Ghostbird 12:41, 28 November 2011 (UTC)
I retried catching Moltres and this time I caught it after 15-20 tries. (I wasn't counting)
The only differences I knew of:
- I had defeated team rocket in Saffron and Giovanni in Viridian's gym.
- I was facing it with a pokémon over lvl 50. (However I caught Articuno using a lvl 30-ish pokemon)
- It was at more than 1 HP (he had a two pixel health bar).
I retried catching Zapdos and this time I did 200 fruitless tries. I noticed that though it had very little health left, it almost always broke free at the first check.
Something that you should know:
- I've been using a state reload system to quickly retry catching when the capture failed. (Otherwise these capture tests, which require as much attempts as possible, are infeasible.)
I managed to Capture Zapdos on try 41 after reloading the original save (not a state save), (re)initiating combat and then using the reload state method. This time it generally broke free much later, often passing two shake checks and only breaking free at the last check, until I captured it.
Hypothesis:
- There's something that influences catch rate, which kicks in before you are at the [Use|Cancel] screen after selecting the capture device (Ultra Ball).
Ghostbird 17:55, 28 November 2011 (UTC)
- I believe your problem is the fact that you are using the same save state over and over. Typically, random number generators (RNG) initialize with a single random number called the seed and derive subsequent random values using a mathematical formula. When you save a state on your emulator, you are also saving the current state of the RNG used. So theoretically, you are asking the RNG for a random number in the same exact state each time, resulting in the same result every time you reload. I think this is why you managed to capture your Zapados some time after reloading the original save (new random seed). I'm not sure exactly how you used the reload state method after reinitializing combat. Did you have to hard reload the game 41 times or did you reload once and use the save state 41 times? Please elaborate on this. Invgamma 20:45, 23 December 2011 (UTC)
Investigation of the RNG
I recently thought about the specific cases where the catch formula does not seem to describe the behavior of certain Pokemon. On review, I noticed that the catch formula assumes that every random number generated is completely independent of every other random number. If the random number were using some sort of non-deterministic input to calculate a new seed every time a number is requested, this certainly would be true; however, this is normally not the case.
Consider the case of an encounter with a rare Pokemon with a somewhat high catch rate. Assume that the game finds a new random seed whenever an encounter is supposed to happen (probably sometime before) and uses that number to both determine the Pokemon encountered and to seed further random numbers. When you ask the RNG to generate the next couple random numbers, they are completely dependent on the algorithm used and the seed. With a rare Pokemon, the number of random seeded values that result in an encounter with it is sizable, but smaller than a common Pokemon. If the RNG is not reseeded, the number of possible scenarios (with strings of random numbers) greatly decreases. In this case, it could simply be a mathematical oddity (of the algorithm) where the select few seeds that allows an encounter with a rare Pokemon has subsequent random values that allow it to easily be caught (or even possibly more difficult to catch).
If this is the case, then the rarity of each Pokemon can easily influence catch probabilities by "shaping" the subsequent numbers (by pure mathematical accident). Some random values might even be impossible for, let's say, the first pokeball thrown right after an encounter of a rarer Pokemon. Invgamma 21:02, 23 December 2011 (UTC)
- Just ran a couple of scenarios on an emulated version of Pokemon White. If I load save states right before encountering a Pokemon (a legendary that you can approach), you can get different random seeds for the battle (first action resulted differently each time). This probably means that the seed for the battle is determined based on conditions right when you encounter the pokemon. Invgamma 23:58, 23 December 2011 (UTC)
- Just to let you know, I've done the investigation already :) Check Smogon's RNG Research thread[1] to get filled in on how the game seeds the battle RNG and (approximately) does the majority of battle RNG operations. RNG is only reseeded between battles. Every game uses 4 random numbers for the shake calculations, the only thing new in gen 5 is the critical capture calc.
- First it calculates if critical capture, then the shake/capture values. If result < CV, pass check. Total of 4 for regular catch, 1 for CC.
- Come ask about the battle RNG in IRC, synirc #smogonwifi
A comment on Critical Capture
Having read through the article and especially the section describing the critical capture, it occurred to me that since it usually uses three shake checks, it is cubing the base probability of capture. By only using one shake check, it does not get cubed, which is why it allows capture to occur easier. However, the amount it increases capture rate is dependent on how difficult it is to capture in the first place. Another way to think about what I previously said is to take any specific set of conditions (a species in the wild, how much HP it has out of its total HP, and if it has any status ailments) and calculate the probability of catching it with any one type of ball. You could then take that final probability and, assuming that the same exact conditions and ball are used, a critical capture will increase the chances of capture to the cube root of the capture probability without a critical capture. This relationship means that the lower the capture rate is in specific conditions, the more difference a critical will make in the probability of catching it.
A couple examples would be if a legendary pokemon is attempting to be caught in specific conditions that would create a normal capture probability of 1%, if it is instead a critical capture, that will increase to a 21.5% capture probability. However, at higher capture probability this difference is much smaller. If there is an easily captured pokemon at low health, with a status ailment, and the normal capture probability is 90%, a critical capture in the same circumstances would mean a 96.5% capture probability.
Is this worth adding into the article, or am I just having too much fun with the math?Mor'ranr 16:07, 19 January 2012 (UTC)
- It would be cool to see the adjusted probability of that helping, but I don't think it would be one dimensional because of the different critical capture rates.
- If critical capture calc passes, shake check once; else thrice.
- Kaphotics 00:04, 2 February 2012 (UTC)
- I definitely think it is useful to point out the relationship, and the difference in effect between Pokémon with low rates and high rates. But it might be better to use "realistic" numbers for any examples in the article (i.e. 3/255 instead of 1%). AySz88 05:07, 24 February 2012 (UTC)
Wait, shouldn't it be fourth root? The article says there's needs to be one shake check to pass instead of four normally. AySz88 05:14, 24 February 2012 (UTC)- Oops, no, was accidentally looking at a different generation. AySz88 07:40, 25 February 2012 (UTC)
- Fourth roots and third roots never happen in game. The b equation listed is just a probability of you catching (ie all the shake compares lumped together). It does a*0x100 > rand(0,65535) for a pass shake calc. 4 times for gen 3-4, 3x for gen 5 after criticalcapture. That's the one gripe I have about this page, the mathematical approximations aren't what the game does. Kaphotics 19:22, 25 February 2012 (UTC)
- I'm not sure what you're saying here. Yes, the algorithm used for a shake check is not literally a third or fourth root. But while it's nice to document the exact algorithm somewhere, it's probably much more useful to explain the practical results of the algorithm - thus why there are the approximations used in the lede (and occasionally sprinkled elsewhere). You can be sure that when the game designers were playing with formulas, they were doing it in general terms, not caring about whether the RNG was 16-bit or whether a division rounded up or down. The algorithms in the code are crafted to follow their intent. (The difference is famously illustrated in that old "Pokémon: Serious Business" image that had an old version of this article - indeed, it's what inspired me to craft the new lede in the first place.) Let's keep our audience in mind.
- Though, that does bring up something else: it might be a good idea to more clearly separate the exact algorithms from the approximate interpretations, instead of the hodgepodge mix in the article currently. AySz88 05:23, 26 February 2012 (UTC)
- Fourth roots and third roots never happen in game. The b equation listed is just a probability of you catching (ie all the shake compares lumped together). It does a*0x100 > rand(0,65535) for a pass shake calc. 4 times for gen 3-4, 3x for gen 5 after criticalcapture. That's the one gripe I have about this page, the mathematical approximations aren't what the game does. Kaphotics 19:22, 25 February 2012 (UTC)
- Oops, no, was accidentally looking at a different generation. AySz88 07:40, 25 February 2012 (UTC)
- Kaphotics (or, anyone), could you elaborate on "It does a*0x100 > rand(0,65535) for a pass shake calc."? I don't understand how multiplying by 256 is equivalent to 65536 / (255/a)(1/4) as listed in the article. —Naokohiro 10:55, 8 May 2012 (UTC)
- When I wrote that I wasn't thinking clearly, it does keep the 4th root and such. For every check it does - rand(0xFFFF) and compares it to b. If it is less than b, it passes the wiggle calc and checks again until it either fails or the wiggles result in capture. Kaphotics 17:45, 22 May 2012 (UTC)
- Kaphotics (or, anyone), could you elaborate on "It does a*0x100 > rand(0,65535) for a pass shake calc."? I don't understand how multiplying by 256 is equivalent to 65536 / (255/a)(1/4) as listed in the article. —Naokohiro 10:55, 8 May 2012 (UTC)
Generation V -- Interesting Probabilities
Since we are still getting the 4th root of the initial probability a and doing 3 shake checks, that makes the chance of capture when the critical capture chance is 0 equal to a3/4.
This takes what would normally be a linear probability always equal to a and puts it on an exponential curve.
If we have more than 30 in the dex, the probability now changes. There is a (a*m)*a1/4 chance of getting a critical capture and then succeeding in capture. Let m be the multiplier for critical capture which is based on the amount caught in the Pokédex. There's also a (1 - a*m)*a3/4 chance of getting a normal capture. So, the total chance of getting a capture is now (a*m)*a1/4 + (1 - a*m)*a3/4 (with m=0, 0.5, 1, 1.5, 2, or 2.5 respectively).
What this does is make an increasingly steeper curve the higher the value of m, but the curve always starts at (0, 0) and ends at (1, 1). Actually, in the higher values for m, the curve actually gets so steep that it begins to increase a by more than 100% for part of the curve, which suggests a higher chance of capture when the Pokémon isn't completely at its weakest. I just thought this information was interesting. It's almost like catching Pokémon has its own level up system. Naokohiro 00:55, 8 May 2012 (UTC)
- Is this something worth mentioning in the article? —Naokohiro 00:58, 8 May 2012 (UTC)
- I haven't had Critical Capture debugged, but I noticed that what is currently the going theory on the page wasn't matching up with the battle RNG. The critical capture section is really... empty, so why not? If you want to put it in the article be sure to have an image of it! Kaphotics 17:45, 22 May 2012 (UTC)
Gen V Shake Rate
Isn't the Gen V shake rate listed functionally the same as the Gen IV one? It seems slightly redundant having both formulas up, claiming to be different...Unknowen900 (talk) 08:33, 23 July 2012 (UTC)
Level ball
The formula seems to be flawed for the Level Ball. I'm playing HeartGold and I was trying to catch a level 4 Aipom (full health) using my level 58 Crobat. According the the formula, I should have had a 140% chance of catch the Aipom with a Level Ball. I threw 3 or 4 level balls at the Aipom and all of them broke. I've generally found most Pokémon to be more difficult to catch than this formula and their catch rates indicated that they should be, but the Level Ball, in particular, doesn't seem to increase catch rates significantly, if at all. RS89 (talk) 01:59, 27 November 2012 (UTC)
- The number is 140, Then it generates a random number from 0-255, and it does something else. It's not a percentage. I think. --Abcboy (talk) 02:21, 27 November 2012 (UTC)
The Formula Simplified (as much as possible)
Here's the simple explanation (in Gen V): Your chances to catch a Pokemon are based on 5 things normally (6, if you count capture power, but that is not a normal thing).
1st. Species Specific Catch Chance: Meaning some pokemon are super easy to catch and come are super hard. The only way to look get this is to just look up the Pokemon, it's Catch Rate is listed in it's info box (on a scale of 0 to 255). So, if it has a 255, you will catch it.
- Pretty much a 100% chance. If it is a 45 (like Celibi) then you only have a 6% chance to catch it before any other factors.
2nd. It's Current Health: If the creature is at full HP, than your normal chances are cut to 1/3. This means that a 255 would be a 33% chance with a Pokeball at full HP and a Celibi would be a 2% chance. This continues to decrease all the way to 1 HP,
- which gives you between 99% and 99.9% of your normal. Meaning the HP basically no longer negatively affects your catch chance at 1 HP.
3rd. The Type of Ball Used: You have a normal chance with a Pokeball. Your chance is multiplied by 1.5x for a Great Ball, 2x for an Ultra Ball, 3x for a Repeat or Net Ball, 3.5x for Dive or Dusk Ball, 4x for a Timer or Nest Ball (at max), and 5x for a Quick Ball.
- These all assume you are using them correctly (i.e. Dusk in caves, Repeat on owned Pokemon, and Quick in round 1). Timer and Nest balls can multiply your chances by everything from 1x to 4x (including 3.2134x or some other random number).
- Nest Balls are 4x for a level 1 Pokemon, 3x for a level 11, 2x for a level 21, and 1x for everything above level 30. Timer balls are 1x in the first round, 2x after 10 rounds, 3x after 20, and 4x after 30 rounds.
- This means, if you are trying to catch a pokemon with a catch rate of 255 (easiest possible) at full HP with a Great Ball your chances would start at 100% for the 255, drop to 33% because he is at full HP, and then would increase back to 50% with a Great Ball ((((255 * .33) * 1.5) = 114.75) 114.75/255 = 0.495).
- The same Pokemon would be a 100% chance of catching it with a Quick, Dive, or Dusk Ball (also 100% with a Nest or Timer Ball at max conditions). It is still a 99% chance with a Repeat or Net Ball. It is only a 66% chance; however, with an Ultra Ball or a 50% chance with a Great Ball.
- It would be a 33% chance with a normal Pokeball (Basically normal, Great, and Ultra Balls suck).
4th. Status Ailments: This is simple, and it stacks multiplicity. Meaning if the pokemon is Paralyzed, Poisoned, or Burned then your chances are 1.5x and if it is Slept or Frozen, then your chances are 2.5x.
- So, in the above example, a 255 Pokemon (100%) at full HP (33%) using a Great Ball (1.5x) gives you a 50% chance. If that same Pokemon is Paralyzed then your chances increase to 75%. If it is Paralyzed AND Poisoned then your chances are 100%.
- Also, if it was JUST Asleep (no Poison or Paralysis) then your chances are still 100% ((255 (Catch Rate) * 0.33 (Full HP) = 84.15) (84.15 * 1.5 (Great Ball) = 126.225) (126.225 * 2.5 = 315.5625) That is higher than 255 so you have a 100% chance).
5th. Dark Grass: Basically this means that if your encounter is in Dark Grass it is harder to catch the Pokemon based on how far through the game you are. In the beginning of the game, it will further decrease the penalty for it's HP by up to half and at the end of the game you will have full chances.
- 100% normal chance if you have more than 600 Completed Pokedex Entries (not just seen, but caught). You will have a 90% of your normal chance if you have between 451 and 600 completed Pokedex entries, 80% for 301 to 450 entries, 70% for 151 to 300 entries, 60% for 30 to 151 entries,
- and 50% of your normal chance if you have less than 30 completed Pokedex entries. Meaning, almost the entire game you will sit at 60% in dark grass. This means that if you have a Pokemon with a Catch Rate of 255 at full HP and you tried to catch him with a normal Pokeball then normally you have a 33% chance.
- If it happens in Dark Grass you have a 16.6% chance. If you used an Ultra Ball, normally you would have a 66% chance, in Dark Grass you would have a 33% chance. The math is a little longer to show here but ...
- Here: (250HP x3 = 750 - (250x2) = 250) <- 1st half of the HP formula. now ((250 * .5 (Dark Grass)) = 125), then (125 * 2 (Ultra Ball) = 250) and Finally ((250/(250 * 3)) = 0.333) <- 2nd half of the HP formula.
I know that is sort of long, but I hope that makes more sense. Degrelecence (talk) 06:18, 17 June 2013 (UTC)
EDIT: Sorry forgot that whole Capture Power thing. The 6th factor is Capture Power. The catch rate is multiplied by 1.1x if Capture Power ↑ is active, 1.2x if ↑↑ is active, or 1.3x if ↑↑↑, Capture Power S, or Capture Power MAX is active. Degrelecence (talk) 06:34, 17 June 2013 (UTC)
- You said that for <30 and 30-151 the percent chances are capture in dark grass are 50% and 60% respectively, but the table provided in the article says these values are 30% and 50% at these intervals. Which one is correct? --Skit7548 (talk) 05:28, 28 October 2013 (UTC)
Generation V shake checks
The article currently states that three shake checks occur for a regular capture in the Generation V games. This is contradicted by Kaphotics on Smogon (and earlier on this page), who claims that four shake checks occur. Which is correct? Arcorann (talk) 08:31, 17 June 2013 (UTC)
Critical Capture chances?
How rare is it to get a Critical Capture? I'm really confused with this. We could put this on the Critical Capture section. I know the more you capture Pokemon in your Pokedex the more chance you'll catch a Pokemon and it usually always works without fail except if you don't catch Pokemon a lot. But I want to know how rare it is. I got 3 Critical Captures in 1 Day and 2 of them were one after another. How rare is it so we can put it on the Critical Capture area?--Hydreigonfan1 (talk) 14:00, 19 December 2013 (UTC)
- It says how rare it is. To be simple: whatever number the final catch rate is, that number is multiplied by 0, 0.5, 1, 1.5, 2 or 2.5 (depending on how many Pokémon you caught), and then a random number is generated. If it's lower than the number received by multiplying final catch rate, critical capture occurs. Uploader (talk) 14:12, 19 December 2013 (UTC) PS. The only thing missing is what's the interval for that random number. The critical catch success otherwise is based on how likely you are to catch mon (and isn't a guaranteed catch unless you would catch it anyway). Uploader (talk) 14:14, 19 December 2013 (UTC)
Generation II Shake Probability table
Why isn't this an actual table? --Det (talk) 08:36, 13 January 2014 (UTC)
- It is, actually. It just doesn't have any pretty borders. ...Also, it's arguably formatted badly (text alignment).
- I did something to it. I experimented with the styles that are on other tables on the page, but it didn't look good to me, so I kept it dead simple. Tiddlywinks (talk) 09:27, 13 January 2014 (UTC)
Critical Catch
The example can't be right. It says, that catching Kyurem with catch rate 3 with max HP and Pokéball has a probability of 0.4%, which is right. For a critical capture the value 25.03% is given, which is (0.4%)^(1/4) or the forth-root of the chance, respectively. But why should it be the forth-root instead of third-root? Remember that in Gen V only THREE shake checks are performed. The example would be right for Gen IV, but not for Kyurem. Or is there something I do not understand? - Pokémon Questions? -- 23:37, 18 January 2014 (UTC)
- I have checked the version history now. In fact this example has been done before finding out that since Generation V only three shakes are performed (or one for a critical capture). It must be a wrong example. Otherwise I has no mathmatical sense. It's almost like saying 1/3 * 4 = 1. You cannot have only three shakes, but set a single shake to the extend of 4 to get the whole capture chance p. The real chance of this example has to be 15.77%.- Pokémon Questions? -- 00:36, 19 January 2014 (UTC)
The nearest 1/4096
"and then rounded to the nearest multiple of 1/4096"
I always read this, but... what does it mean?!? The first multiple is 4096 to get a whole number, so if I have numbers between 0 and 255 I always would round them to 1. Nonsence. I just don't understand this expression. - Pokémon Questions? -- 03:34, 19 January 2014 (UTC)
- I believe it means the game uses 12 fractional bits. If the program is executed in the order shown, "(3*HP_MAX - 2*HP_Current)*rate*ball/3/HP_MAX*status", the "/3" will round the result then "/HP_Max" will round the result again. If we were only dealing with int data types, each division would round the result to the next lowest integer (1/3 = 0, 13/10 = 1, 9000/4096 = 2). The fractional bits ensure a calculation like 400/3 yields 546133/4096 (133.33325) instead of just 133 - an error of .006% instead .25%. Is it going to make much of a difference after you round to the nearest whole number? Not really. But when you have the memory and the processing power, this becomes a trivial process, so why not. Rulingsword (talk) 04:47, 21 January 2014 (UTC)
Generation VI Catch Rate Formula
I think that we can say with certainty that the catch rate formula has changed drastically in Generation VI. Zygarde has a catch rate of 0 which would mean that it could not be captured except with a Master Ball. This is assuming that the catch rate given is correct.