Mechanics Gen 3 Limber activation timing

What type of bug are you reporting? Mechanics

What is the bug?
In Gen 3, if a Pokemon with a status condition has an ability that blocks the same status condition (through either Trace or Skill Swap then switching out) is sent out after a Pokemon faints or obtains the ability through Trace, then the ability will not activate until after a move is made in-battle. This is not implemented in PS!, where the ability will activate immediately and cure the status. On PS!, this means that this bug could potentially result in a paralyzed Pokemon with Limber outspeeding a Pokemon on the first turn that it should not on cartridge due to the speed nerf.

Are you able to replicate it? If so, how?
PS! Replay | Cart Footage
 
This is because we are currently using the very general Update event.

If Porygon acted first, would it cure its paralysis before or after moving?
 
This is because we are currently using the very general Update event.

If Porygon acted first, would it cure its paralysis before or after moving?
Porygon's status would be cured after moving. Just to clarify, this timing only occurs due to either a switch-in after a faint or if the Pokemon gains the ability through Trace - if a Pokemon with Limber/Immunity/Vital Spirit/etc. directly switches in then the status will be instantly removed, which PS! emulates correctly.
 
Sorry for not being explicit. The exact same test would always behave differently because Trace doesn't activate the copied ability in Gen 3.

A similar test to the Gen 4 implementation would require something convoluted like: (1) using Gastro Acid and Thunder Wave on a Limber user, and (2) switching that Pokémon in by dragging it in with a Mold Breaker Pokémon. That was what I tested in Gen 8, but it still activated.

But I just remembered that this weird behavior probably happens in Gen 3 because switches don’t wait until the end of the turn to occur. I'm 99% sure it activates instantly in Gen 4, so it's probably not worth the hassle to test (I mean this, don't test it unless you really want to ahah). Thinking about it, it's probably worth testing, since a drag-in is also a mid-turn switch.
 
Sorry for not being explicit. The exact same test would always behave differently because Trace doesn't activate the copied ability in Gen 3.

A similar test to the Gen 4 implementation would require something convoluted like: (1) using Gastro Acid and Thunder Wave on a Limber user, and (2) switching that Pokémon in by dragging it in with a Mold Breaker Pokémon. That was what I tested in Gen 8, but it still activated.

But I just remembered that this weird behavior probably happens in Gen 3 because switches don’t wait until the end of the turn to occur. I'm 99% sure it activates instantly in Gen 4, so it's probably not worth the hassle to test (I mean this, don't test it unless you really want to ahah). Thinking about it, it's probably worth testing, since a drag-in is also a mid-turn switch.
This unfortunately is impossible to test - Limber will always cure paralysis whenever the Pokemon is switched out of the battle in Gen 4, even if it is roared out by a Mold Breaker mon.
 
That is exactly the tested I wanted ahah Thanks!
It looks like PS! actually implements this wrong - on PS! the paralysis is only cured when the Limber mon switches back in, on cart in Gen 4 the paralysis is cured when the Pokemon is switched out (like Natural Cure). Very minor difference but it does effect the number of healthy mons for Beat Up.
 
It looks like PS! actually implements this wrong - on PS! the paralysis is only cured when the Limber mon switches back in, on cart in Gen 4 the paralysis is cured when the Pokemon is switched out (like Natural Cure). Very minor difference but it does effect the number of healthy mons for Beat Up.
From the decompiled code, it seems that those abilities activate in the same branch as Natural Cure. How did you get the Pokémon paralyzed without activating Limber before switching out?

Cart Footage
Does this also happen in Gen 3 if you switch Porygon out instead of using a move?
 
From the decompiled code, it seems that those abilities activate in the same branch as Natural Cure. How did you get the Pokémon paralyzed without activating Limber before switching out?
In Gen 4, I was unable to get the Pokemon paralyzed without activating Limber on switch-out, that's why I said that the test of switching a paralyzed Limber Pokemon in was impossible in Gen 4.
Does this also happen in Gen 3 if you switch Porygon out instead of using a move?
No, Porygon2 stays paralyzed if it switches out before a move occurs. (EDIT: Pursuit hitting P2 before it can switch out does cure its paralysis.)
 
Last edited:
on cart in Gen 4 the paralysis is cured when the Pokemon is switched out (like Natural Cure).
So how did you come to this conclusion? But yes, I can confirm with 100% certainty that is true.
1773707276816.png

The function CheckStatusHealSwitch (that checks for statuses abilities) is checked in the same place as Natural Cure.

Edit: this part is implemented here https://github.com/smogon/pokemon-showdown/pull/11823
 
Last edited:
This unfortunately is impossible to test - Limber will always cure paralysis whenever the Pokemon is switched out of the battle in Gen 4, even if it is roared out by a Mold Breaker mon.
Also, I meant roared in by a Mold Breaker Pokémon. You just use Gastro Acid to paralyzed it and switch it out.
 
Back
Top