Research Scarlet & Violet Battle Mechanics Research

Things I thought of that probably aren't relevant; feel free to just skip answering if none are relevant - I'm having a hard time parsing out which things are relevant here:
Healing Wish / Lunar Dance - I assume they don't care about turn history. It looks like they stack FIFO? Would that change if one were before 255 and one was after (i.e. the game would look at the move order to see which one was used first to see which should come off the stack first, or is that info stored elsewhere?)
2-turn charge moves - again, probably not in the same category, but what would happen if you used Meteor Beam across the 255?
On the other hand, if you Hyper Beam on 255, will turn 1 remember that you need to recharge?
Wrap might be interesting. Could you infinitely trap someone?
Sleep; either Rested or random
I'm assuming defense curl is a status, and rollout/ice ball don't just check to see if the move was previously used?
Same assumption for stockpile, charge?
Lock On
Protect / Destiny Bond / Endure success
If you switch in on turn 254, waste turn 255, and then when it rolls over, does Mat Block work (again, if this works in Gen 7)

Mimic / Sketch / Instruct
Does Last Resort know you've used all other moves if you rolled over?
Is Yawn a status?
Gigaton Hammer?
 
Aha! I’d suspected the game kept a record of moves used and whether or not they succeeded. Can you check Stomping Tantrum? I’d bet it uses this record to check if it should be boosted and might have the same problems with turn count. Also, I’d like to know if moves called by other moves such as Sleep Talk are counted separately in this list from the moves that called them, and whether moves reflected by Magic Bounce are logged for both the original user and the bouncer.
This what happened in a battle vs what got recorded in this move record:

Turn 1
Hatterene Skill Swaps Magic Bounce onto Cubchoo.
Cubchoo uses Rest which fails because HP is full.
Turn 2
Hatterene uses Spore, which is bounced back onto itself.
Cubchoo uses Thrash.
Turn 3
Hatterene clicks Stomping Tantrum but is asleep.
Cubchoo uses Thrash.
Turn 4
Hatterene clicks Stomping Tantrum but is asleep.
Cubchoo uses Thrash and is confused.
Turn 5
Hatterene wakes up and uses Stomping Tantrum.
Cubchoo uses Rest which fails because HP is full. (I set all damage to 0 to make testing easier.)
Turn 6
Hatterene uses Echoed Voice.
Cubchoo uses Rest which fails because HP is full.
Turn 7
Hatterene uses Echoed Voice.
Cubchoo uses Blizzard which misses.
Turn 8
Hatterene uses Skill Swap to take back Magic Bounce.
Cubchoo uses Rest which fails because HP is full.
Turn 9
Hatterene uses Spore to put Cubchoo to sleep.
Turn 10
Hatterene uses Spore which fails because Cubchoo is asleep.
Turn 11
Hatterene uses Stomping Tantrum.
Cubchoo wakes up and uses Blizzard.
1732637893904.png

Turn 0
Hatterene used Skill Swap (effective).
Turn 1
Hatterene used Spore (effective).
Cubchoo used Thrash (effective).
Turn 2
Cubchoo used Thrash (effective).
Turn 3
Cubchoo used Thrash (effective).
Turn 4
Hatterene used Stomping Tantrum (effective).
Cubchoo used Thrash (effective).
Turn 5
Hatterene used Echoed Voice (effective).
Turn 6
Hatterene used Echoed Voice (effective).
Cubchoo used Blizzard (ineffective).
Turn 7
Hatterene used Skill Swap (effective).
Turn 8
Hatterene used Spore (effective).
Turn 9
Hatterene used Spore (ineffective).
Turn 10
Hatterene used Stomping Tantrum (effective).
Cubchoo used Blizzard (effective).
It doesn't log the failed Rests, but logs the missed Blizzard and ineffective Spore.

Stomping Tantrum is still 75 BP after I set all previously recorded moves to ineffective, so it probably uses something else to track it. I don't really understand why it tracks so many.

For my previous post, I reviewed some of the record handling and realized it counts backwards, then resets all the way to the end of the record list, so it's actually iterating through every entry until it gets back to the start or hits a blank. I updated it to reflect this information, which you can also see in the gist.
 
Last edited:
This what happened in a battle vs what got recorded in this move record:

Turn 1
Hatterene Skill Swaps Magic Bounce onto Cubchoo.
Cubchoo uses Rest which fails because HP is full.
Turn 2
Hatterene uses Spore, which is bounced back onto itself.
Cubchoo uses Thrash.
Turn 3
Hatterene clicks Stomping Tantrum but is asleep.
Cubchoo uses Thrash.
Turn 4
Hatterene clicks Stomping Tantrum but is asleep.
Cubchoo uses Thrash and is confused.
Turn 5
Hatterene wakes up and uses Stomping Tantrum.
Cubchoo uses Rest which fails because HP is full. (I set all damage to 0 to make testing easier.)
Turn 6
Hatterene uses Echoed Voice.
Cubchoo uses Rest which fails because HP is full.
Turn 7
Hatterene uses Echoed Voice.
Cubchoo uses Blizzard which misses.
Turn 8
Hatterene uses Skill Swap to take back Magic Bounce.
Cubchoo uses Rest which fails because HP is full.
Turn 9
Hatterene uses Spore to put Cubchoo to sleep.
Turn 10
Hatterene uses Spore which fails because Cubchoo is asleep.
Turn 11
Hatterene uses Stomping Tantrum.
Cubchoo wakes up and uses Blizzard.
View attachment 691302
Turn 0
Hatterene used Skill Swap (effective).
Turn 1
Hatterene used Spore (effective).
Cubchoo used Thrash (effective).
Turn 2
Cubchoo used Thrash (effective).
Turn 3
Cubchoo used Thrash (effective).
Turn 4
Hatterene used Stomping Tantrum (effective).
Cubchoo used Thrash (effective).
Turn 5
Hatterene used Echoed Voice (effective).
Turn 6
Hatterene used Echoed Voice (effective).
Cubchoo used Blizzard (ineffective).
Turn 7
Hatterene used Skill Swap (effective).
Turn 8
Hatterene used Skill Swap (effective).
Turn 9
Hatterene used Spore (ineffective).
Turn 10
Hatterene used Stomping Tantrum (effective).
Cubchoo used Blizzard (effective).
It doesn't log the failed Rests, but logs the missed Blizzard and ineffective Spore.

Stomping Tantrum is still 75 BP after I set all previously recorded moves to ineffective, so it probably uses something else to track it. I don't really understand why it tracks so many.

For my previous post, I reviewed some of the record handling and realized it counts backwards, then resets all the way to the end of the record list, so it's actually iterating through every entry until it gets back to the start or hits a blank. I updated it to reflect this information, which you can also see in the gist.
Quick note: I think your explanation of the move record for Turn 8 is wrong, as the log seems to show an effective use of Spore instead of Skill Swap
 
When using Wish on turn 255, or using Future Sight on turn 254, both Wish and Future Sight will become "stuck" and not able to actually heal the slot or deal damage to the slot. They'll be permanently stuck on the Y-info screen, and attempting to reuse Future Sight or Wish will fail. I recorded footage of this interaction. The final turns leading up to 256 are around the 53:32 mark. After this, I mashed A for another hour and a half and neither Wish nor Future Sight ever resolved, so I would speculate they would never resolve.

I think this is due to the turn counter variable being an unsigned 8-bit integer. Wish being used on turn 255, for example, causes turn 255 to be stored as the turn Wish was used. On the next turn, it checks if the turn value is greater than the stored value. But because the turn counter is an 8-bit unsigned integer, it's either capped at 255 or rolls over to 0. Either way, the check fails, so Wish never heals and as a result you can't use Wish ever again.

I am not exactly sure how this works, though. I wanted to check what happened if you used Wish / Future Sight after 256 turns. I did not count turns, but mashed A for about an hour, which was a bit beyond what I did in my original test. Using Wish worked, and would heal the slot, but using Future Sight got Future Sight similarly stuck. I predict you could test with Quick Ball, Timer Ball, and Echoed Voice to see additional unusual turn counter behavior. Because it takes roughly an hour to set up one attempt, I'm hopeful that other interested folks could test some of those interactions. I also am not sure if this has the same behavior in past generations.

EDIT: a Japanese account named @Venom_Drench responded to me indicating additional information from research they did on Echoed Voice. They report a bizarre non-linear set of base powers after turn 256.

EDIT 2: Anubis poked around at this a bit. The turn counter itself has a cap of 9999 (it's specifically prevented from being incremented higher than this). She found that the reason Wish is failing is because it stores the turn counter it was used on as an unsigned 8-bit integer, and then also casts the current turn to an 8-bit unsigned integer for comparison. So using Wish on a turn that is a multiple of 256-1 will always cause Wish to "get stuck" and fail. So Wish would "get stuck" when used on turns 255, 511, 767, etc. Future Sight is different - it does not appear to be doing casting in that same way. The reason it's getting stuck does not appear to be linked to turn count in the same way Wish is linked to turn count. More research will be needed there.
Is this only SV, or is this true for oldgens as well? Weird that this would change...
 
This what happened in a battle vs what got recorded in this move record:

Turn 1
Hatterene Skill Swaps Magic Bounce onto Cubchoo.
Cubchoo uses Rest which fails because HP is full.
Turn 2
Hatterene uses Spore, which is bounced back onto itself.
Cubchoo uses Thrash.
Turn 3
Hatterene clicks Stomping Tantrum but is asleep.
Cubchoo uses Thrash.
Turn 4
Hatterene clicks Stomping Tantrum but is asleep.
Cubchoo uses Thrash and is confused.
Turn 5
Hatterene wakes up and uses Stomping Tantrum.
Cubchoo uses Rest which fails because HP is full. (I set all damage to 0 to make testing easier.)
Turn 6
Hatterene uses Echoed Voice.
Cubchoo uses Rest which fails because HP is full.
Turn 7
Hatterene uses Echoed Voice.
Cubchoo uses Blizzard which misses.
Turn 8
Hatterene uses Skill Swap to take back Magic Bounce.
Cubchoo uses Rest which fails because HP is full.
Turn 9
Hatterene uses Spore to put Cubchoo to sleep.
Turn 10
Hatterene uses Spore which fails because Cubchoo is asleep.
Turn 11
Hatterene uses Stomping Tantrum.
Cubchoo wakes up and uses Blizzard.
View attachment 691302
Turn 0
Hatterene used Skill Swap (effective).
Turn 1
Hatterene used Spore (effective).
Cubchoo used Thrash (effective).
Turn 2
Cubchoo used Thrash (effective).
Turn 3
Cubchoo used Thrash (effective).
Turn 4
Hatterene used Stomping Tantrum (effective).
Cubchoo used Thrash (effective).
Turn 5
Hatterene used Echoed Voice (effective).
Turn 6
Hatterene used Echoed Voice (effective).
Cubchoo used Blizzard (ineffective).
Turn 7
Hatterene used Skill Swap (effective).
Turn 8
Hatterene used Spore (effective).
Turn 9
Hatterene used Spore (ineffective).
Turn 10
Hatterene used Stomping Tantrum (effective).
Cubchoo used Blizzard (effective).
It doesn't log the failed Rests, but logs the missed Blizzard and ineffective Spore.

Stomping Tantrum is still 75 BP after I set all previously recorded moves to ineffective, so it probably uses something else to track it. I don't really understand why it tracks so many.

For my previous post, I reviewed some of the record handling and realized it counts backwards, then resets all the way to the end of the record list, so it's actually iterating through every entry until it gets back to the start or hits a blank. I updated it to reflect this information, which you can also see in the gist.
Interesting that the bounced Spore was logged as effective. Would it still get logged that way if it failed upon being bounced back? …Does Stomping Tantrum get boosted in that case but not this one?
 
More information on turn counter behavior in other generations: the behavior is identical in in Gen 8, but it does not happen in Gen 7. In the video, you can see the behavior for Sword/Shield at 29:35, and the behavior for USUM at 59:08. As a bonus, in Sword/Shield, the Y-info display indicating how many turns are left for future attacks can go negative, and even display ? for turns remaining.

vlcsnap-2024-11-26-21h41m06s965.png
vlcsnap-2024-11-26-21h43m00s618.png
To answer some questions that haven't been addressed yet:
Probably obvious but I want to be sure. Would this also apply to Doom Desire?
Yes, Future Sight and Doom Desire behave identically in general.

Do Fury Cutter and Metronome work the same as Echoed Voice?
No, they use a completely different counter. The way that counter is fetched is the same for Fury Cutter, Metronome (item), and Destiny Bond.

Aha! I’d suspected the game kept a record of moves used and whether or not they succeeded. Can you check Stomping Tantrum? I’d bet it uses this record to check if it should be boosted and might have the same problems with turn count. Also, I’d like to know if moves called by other moves such as Sleep Talk are counted separately in this list from the moves that called them, and whether moves reflected by Magic Bounce are logged for both the original user and the bouncer.
The success flag stored in move records is completely independent from what Stomping Tantrum uses. A move record is only added in the checks done before move success at the point after Future Sight / Pledge combo moves get interrupted. So for example, using Follow Me in singles will double Stomping Tantrum, but it will not be added to the move record. Future Sight will not be added to the move record, but it stopping early doesn't double Stomping Tantrum. Using Quick Attack into Queenly Majesty will double Stomping Tantrum, but it will not be added to the move record. Using Aerial Ace into a fainted slot and using Tackle into a Pokemon in semi-invulnerability in the middle of Fly will added to the move record. It's just not related to Stomping Tantrum (thanks to Anubis for checking if all of these enter the move record).

Things I thought of that probably aren't relevant; feel free to just skip answering if none are relevant - I'm having a hard time parsing out which things are relevant here:
Healing Wish / Lunar Dance - I assume they don't care about turn history. It looks like they stack FIFO? Would that change if one were before 255 and one was after (i.e. the game would look at the move order to see which one was used first to see which should come off the stack first, or is that info stored elsewhere?)
2-turn charge moves - again, probably not in the same category, but what would happen if you used Meteor Beam across the 255?
On the other hand, if you Hyper Beam on 255, will turn 1 remember that you need to recharge?
Wrap might be interesting. Could you infinitely trap someone?
Sleep; either Rested or random
I'm assuming defense curl is a status, and rollout/ice ball don't just check to see if the move was previously used?
Same assumption for stockpile, charge?
Lock On
Protect / Destiny Bond / Endure success
If you switch in on turn 254, waste turn 255, and then when it rolls over, does Mat Block work (again, if this works in Gen 7)

Mimic / Sketch / Instruct
Does Last Resort know you've used all other moves if you rolled over?
Is Yawn a status?
Gigaton Hammer?
A few things here I can definitely answer:
  • Healing Wish / Lunar Dance - they aren't turn-dependent at all.
  • Rollout - Defense Curl can be used any time prior to Rollout, it doesn't have to be used right before Rollout.
  • Mat Block / Fake Out check if the Pokemon has a flag indicating it's completed an action at least once. It's not turn-dependent at all, definitely not dependent on it being the first turn of the game.
  • Recharge moves like Hyper Beam also use a flag, not turn-dependent.
  • Metronome (item), Mimic, Sketch, Fury Cutter, Protect variants (including Endure and Mat Block), Destiny Bond, and Ally Switch all use the same way of fetching what the Pokemon's previous move was.
  • Protect does already have an overflow condition documented, but not related to turn count, it's related to the Protection move counter. Using a protection move 256 times in a row will cause the next protection move to always succeed.
I am not especially hopeful that any of the effects you mentioned will be affected specifically by turn counter overflow. If they are affected by overflow, it wouldn't be from the turn counter.
 
The success flag stored in move records is completely independent from what Stomping Tantrum uses. A move record is only added in the checks done before move success at the point after Future Sight / Pledge combo moves get interrupted. So for example, using Follow Me in singles will double Stomping Tantrum, but it will not be added to the move record. Future Sight will not be added to the move record, but it stopping early doesn't double Stomping Tantrum. Using Quick Attack into Queenly Majesty will double Stomping Tantrum, but it will not be added to the move record. Using Aerial Ace into a fainted slot and using Tackle into a Pokemon in semi-invulnerability in the middle of Fly will added to the move record. It's just not related to Stomping Tantrum (thanks to Anubis for checking if all of these enter the move record).
Yesterday, while working on this, I noticed that Metronome simply logs the called move into the record.

Turn 1
Reshiram used Follow Me and failed.
Fletchling used Steel Wing.

Turn 2
Reshiram used Metronome -> Lava Plume.
Fletchling used Steel Wing.

Turn 3
Reshiram used Sleep Talk which fails because it's not asleep.
Fletchling used Tailwind.

Turn 4
Reshiram used Tackle.
Fletchling used Fly.

Turn 5
Reshiram used Tackle but missed due to semi-invulnerable.
Fletchilng used Fly (turn 2) and Reshiram dodged with friendship.

Turn 6
Reshiram used Tackle.
Fletchling used Fly.

Turn 7
Reshiram used Metronome -> Spirit Shackle which missed due to semi-invulnerable.
Fletchling used Fly (turn 2).
0 | Fletchling | Steel Wing | 1
1 | Reshiram | Lava Plume | 1
1 | Fletchling | Steel Wing | 1
2 | Fletchling | Tailwind | 1
3 | Reshiram | Tackle | 1
3 | Fletchling | Fly | 0
4 | Reshiram | Tackle | 0
4 | Fletchling | Fly | 0
5 | Reshiram | Tackle | 1
5 | Fletchling | Fly | 0
6 | Reshiram | Spirit Shackle | 0
6 | Fletchling | Fly | 1
You can see that the called Lava Plume and Spirit Shackle were recorded as Reshiram using them directly. The Fly turns were logged as 0 (ineffective) on turn 1 and 1 (effective) on turn 2.

This implies that called moves can be combo'd with each other since they are no different from being used directly.

I tried an extreme demo here: Turn 0: Reshiram was already asleep and used Sleep Talk to call Fusion Flare. It's holding Lagging Tail to ensure it goes last.
Turn 1: I used an Awakening on Reshiram.
Turn 2: Reshiram used Spore so Zangoose can't act.
Skip to turn 256.
Turn 256: Reshiram used Metronome to call Fusion Bolt, which has 200 BP because it thinks turn count is 0.

0 | Zangoose | Close Combat | 1
0 | Reshiram | Fusion Flare | 1
1 | Zangoose | Swords Dance | 1
2 | Zangoose | X-Scissor | 1
2 | Reshiram | Spore | 1
...
256 | Reshiram | Fusion Bolt | 1

---

Here's a list of what we know so far about record logging for unusual moves since this is important for proper simulator implementation:
- Magic Bounce logs the original user using the move.
- Future Sight logs nothing at all.
- Sleep Talk, Metronome, Copycat log the called move.
- Snatch, Mirror Move, Assist aren't in the game, but if you enable them, they always fail and get logged as ineffective.
- Me First isn't in the game, but if you enable it, it does a 1 BP attack.
- Struggle logs normally.
- Instruct logs both Instruct and the move the other Pokemon used.
- Dancer logs the Pokemon using an extra move that turn.

Examples:
Turn 1
My Oricorio used Swords Dance.
Wild Oricorio's Dancer causes it to use Swords Dance.
Wild Oricorio used Hurricane.

Turn 2
My Oricorio used Struggle because it's out of moves.
Wild Oricorio used Air Slash.
0 | Oricorio (mine) | Swords Dance | 1
0 | Oricorio (wild) | Swords Dance | 1
0 | Oricorio (wild) | Hurricane | 1
1 | Oricorio (mine) | Struggle | 1
1 | Oricorio (wild) | Air Slash | 1

Turn 1
I used a Potion to stall this turn.
Comfey used Play Rough.

Turn 2
Oricorio used Instruct.
Comfey used Play Rough due to Instruct.
Comfey used Grassy Terrain.

Turn 3
Oricorio used Copycat and uses Grassy terrain, which fails.
Comfey used Grassy Terrain which fails.

Turn 4
Oricorio used Copycat and uses Grassy terrain, which fails.
Comfey used Petal Dance.
Oricorio's Dancer causes it to use Petal Dance.
0 | Comfey | Play Rough | 1
1 | Oricorio | Instruct | 1
1 | Comfey | Play Rough | 1
1 | Comfey | Grassy Terrain | 1
2 | Oricorio | Grassy Terrain | 0
2 | Comfey | Grassy Terrain | 0
3 | Oricorio | Grassy Terrain | 0
3 | Comfey | Petal Dance | 1
3 | Oricorio | Petal Dance | 1

Turn 1
Oricorio uses Nature Power which calls Nature Power and fails.
Cyndaquil used Double-Edge.

Turn 2
Oricorio uses Me First which did a 1 BP attack.
Cyndaquil used Overheat.

Turn 3
Oricorio uses Mirror Move which failed.
Cyndaquil used Overheat.
0 | Oricorio | Nature Power | 0
0 | Cyndaquil | Double-Edge | 1
1 | Oricorio | Me First | 1
1 | Cyndaquil | Overheat | 1
2 | Oricorio | Mirror Move | 0
2 | Cyndaquil | Overheat | 1
 
Last edited:
Hello!

While battling with Indeedee-M against a Scizor, I used Encore to lock it on Bullet Punch while Psychic Terrain was up. However, Bullet Punch could be landed that very turn. Is it normal?

https://replay.pokemonshowdown.com/gen9monotype-2253413101-lct99p86073fjnao2074fw3m42rkgampw
Assuming the pokemon selected a move without priority, it should be a correct behaviour.

According to Bulbapedia, if the move selected in the turn they are encored is not with priority, the Pokemon will use the previous move but with the priority of the selected one, and thus the Scizor likely ended up using a 0 priority Bullet Punch, which Psychic Terrain would not block.

The behaviour was even changed to work in reverse in gen 7, where if f.e. a faster Prankster user encores you into a previous non-priority move while you have selected a priority one, the previous move will fire with the priority of the selected one, and then be blocked by Psychic Terrain.
 
Toxic Chain has different behavior in the checks done after move success than Poison Touch (see footage). For example, compare Nuzzle + Poison Touch vs Nuzzle + Toxic Chain, both into a target with Lum Berry; in Nuzzle + Poison Touch, first the opponent is paralyzed, then poisoned, but in Nuzzle + Toxic Chain, the opponent is only badly poisoned - they aren't also paralyzed after Lum cures the bad poison. In a similar way, Inferno + Toxic Chain + Lum Berry will only badly poison the target, and using Mortal Spin + Toxic Chain will cause the target to be badly poisoned, not normally poisoned. Fling with Light Ball + Toxic Chain will similarly only badly poison a Lum Berry target. I tested other secondary effects like flinch (Fake Out), stat boosting moves (Aqua Step), and stat lowering moves (Acid Spray), and none of those effects were negated when Toxic Chain badly poisoned the target.

We don't have great research on the order of effects that happen in the checks done after move success, but here's a couple tests by way of comparison with Poison Touch:
It's not very effective message > Aqua Step raises Speed > Toxic Chain > Gooey > Rocky Helmet
It's super effective message > Aqua Step raises Speed > Toxic Chain > Stamina > Absorb Bulb
It's not very effective message > Aqua Step raises Speed > Poison Touch > Gooey > Rocky Helmet
It's super effective message > Aqua Step raises Speed > Poison Touch > Stamina > Absorb Bulb

So I hypothesize that Toxic Chain still activates at the same (or at least close to the same) event timing, but it sets a flag earlier in the checks done after move success that it will badly poison, and if that flag is set, it doesn't attempt to set any other non-volatile status at an earlier point (burn, freeze, poison, etc.).
 
Last edited:
Toxic Chain has different behavior in the checks done after move success than Poison Touch (see footage). For example, compare Nuzzle + Poison Touch vs Nuzzle + Toxic Chain, both into a target with Lum Berry; in Nuzzle + Poison Touch, first the opponent is paralyzed, then poisoned, but in Nuzzle + Toxic Chain, the opponent is only badly poisoned - they aren't also paralyzed after Lum cures the bad poison. In a similar way, Inferno + Toxic Chain + Lum Berry will only badly poison the target, and using Mortal Spin + Toxic Chain will cause the target to be badly poisoned, not normally poisoned. Fling with Light Ball + Toxic Chain will similarly only badly poison a Lum Berry target. I tested other secondary effects like flinch (Fake Out), stat boosting moves (Aqua Step), and stat lowering moves (Acid Spray), and none of those effects were negated when Toxic Chain badly poisoned the target.

We don't have great research on the order of effects that happen in the checks done after move success, but here's a couple tests by way of comparison with Poison Touch:
It's not very effective message > Aqua Step raises Speed > Toxic Chain > Gooey > Rocky Helmet
It's super effective message > Aqua Step raises Speed > Toxic Chain > Stamina > Absorb Bulb
It's not very effective message > Aqua Step raises Speed > Poison Touch > Gooey > Rocky Helmet
It's super effective message > Aqua Step raises Speed > Poison Touch > Stamina > Absorb Bulb

So I hypothesize that Toxic Chain still activates at the same (or at least close to the same) event timing, but it sets a flag earlier in the checks done after move success that it will badly poison, and if that flag is set, it doesn't attempt to set any other non-volatile status at an earlier point (burn, freeze, poison, etc.).
What happens if the target is Poison type, or has Immunity? I wouldn’t put it past the devs to not check for a poison immunity when rolling the chance to set the flag early. If they don’t, then Toxic Chain Nuzzle into a Poison type would have a 30% chance to not inflict any status. Even if they do, there might be some way of enabling or disabling an immunity to poison between when it sets the flag and when it applies poison. Something to try for that would be Knock Off removing an Ability Shield during Neutralizing Gas, which could disable Immunity after the roll and guarantee Toxic Chain never poisons when Poison Touch could or disable Mimicry to return a Pokémon to its original Poison or Steel typing, restoring its natural immunity. Moves that remove an item like Knock Off or Pluck could also give a Pokémon an Ability Shield via Symbiosis. There’s also Steel Roller which removes terrain early enough (if PS’s implementation is correct) to be another way of changing a Pokémon’s type mid-hit via Mimicry or test the interaction with Misty Terrain.
 
So I hypothesize that Toxic Chain still activates at the same (or at least close to the same) event timing, but it sets a flag earlier in the checks done after move success that it will badly poison, and if that flag is set, it doesn't attempt to set any other non-volatile status at an earlier point (burn, freeze, poison, etc.).
The game performs the Toxic Chain roll, then the Nuzzle paralyze check. Even if Toxic Chain succeeds, it still performs the Nuzzle check. (In Misty Terrain, it also performs the Nuzzle check, so I guess later on somewhere, the fact that it succeeded is ignored or skipped.)

Below is what it does if the Toxic Chain roll passes. It looks like it stores some value up to 6 on success, but that looks like an index where it's storing the next of something since it's multiplying it by 4 to get to some address. I checked "Nuzzle + Toxic Chain into opponent with Lum Berry" and that value was 0, so it ended up storing a 1. I tried setting the stored value higher but didn't observe anything different.

1733331916859.png


"Storing something after success" isn't special to Toxic Chain; pretty much everything performs a check within its own handler, then does something if it passes. Here's Flame Body for comparison.
1733332465233.png


Since both Toxic Chain and Nuzzle can pass, but Lum Berry doesn't allow both to be inflicted, I would guess that the handling is somewhere later on when it resolves all the effects rather than early on when it performs the checks.

What happens if the target is Poison type, or has Immunity?
I tested this vs a wild Zangoose with Immunity, and it does not perform the check for Toxic Chain. It might be due to the unknown sub_710283E160 in my first image above. It's not very easy to look at and understand. I would have to manually check later to see if having Immunity causes that condition to be false.

Addendum: sub_710283E160 was false when the opponent was already statused, when Misty Terrain was up, when the opponent was steel type, and when the opponent had Immunity.
 
Last edited:
For example, compare Nuzzle + Poison Touch vs Nuzzle + Toxic Chain, both into a target with Lum Berry; in Nuzzle + Poison Touch, first the opponent is paralyzed, then poisoned, but in Nuzzle + Toxic Chain, the opponent is only badly poisoned - they aren't also paralyzed after Lum cures the bad poison.
Could this be because the cart checks for Lum Berry immediately after Poison Touch but not after Toxic Chain so it doesn't proc until later?
 
What happens if the target is Poison type, or has Immunity? I wouldn’t put it past the devs to not check for a poison immunity when rolling the chance to set the flag early. If they don’t, then Toxic Chain Nuzzle into a Poison type would have a 30% chance to not inflict any status. Even if they do, there might be some way of enabling or disabling an immunity to poison between when it sets the flag and when it applies poison. Something to try for that would be Knock Off removing an Ability Shield during Neutralizing Gas, which could disable Immunity after the roll and guarantee Toxic Chain never poisons when Poison Touch could or disable Mimicry to return a Pokémon to its original Poison or Steel typing, restoring its natural immunity. Moves that remove an item like Knock Off or Pluck could also give a Pokémon an Ability Shield via Symbiosis. There’s also Steel Roller which removes terrain early enough (if PS’s implementation is correct) to be another way of changing a Pokémon’s type mid-hit via Mimicry or test the interaction with Misty Terrain.
All good ideas; see footage of me testing these.

Knock Off and Pluck are definitely happening too late. Theorymon previously posted about the interaction of Knock Off and Toxic Chain; to more fully flesh that out, Knock Off + Toxic Chain and Knock Off + Poison Touch vs Lum Berry have boosted Knock Off BP, but of course Lum Berry is eaten, curing poison before it can be knocked off. You can also see that just straightforwardly knocking off a regular item, like Charcoal, the order of events is Toxic Chain -> item removed. Same for Poison Touch, Poison Touch -> item removed. So no shenanigans with removing Ability Shield are on the table. Pluck / Bug Bite is similarly later, so Toxic Chain and Poison Touch are before those as well.

As far as I can tell, Steel Roller removing Terrain happens very late in checks done after move success. It was removing Terrain after stuff like Life Orb damage and Pickpocket. We know Ice Spinner behaves differently from Steel Roller sometimes, but it removing Terrain also happens after Life Orb damage and Pickpocket. For Mimicry to do anything cool, we'd have to turn off Mimicry to make the Pokemon a natural Poison- or Steel-type like you said, but I can't think of a way to do that.
 
For Mimicry to do anything cool, we'd have to turn off Mimicry to make the Pokemon a natural Poison- or Steel-type like you said, but I can't think of a way to do that.
Turning Mimicry on could work if you do it in Grassy Terrain with Flower Veil support. To that end, some Symbiosis shenanigans might come in handy.

Edit: …in triples, maybe. Nevermind.
 
Can Doodle copy Good as Gold?
So I couldn't set up a battle to see if I could doodle Good As Gold, but I was able to Doodle over it. I took a Grafaiai & Gholdengo into a double battle in the terrarium, used Doodle on a Rotom and it applied Levitate to both of them.

Based on that I think that you could probably Doodle Good As Gold onto you party, but it'd need someone to test to make sure. For what it might be worth, Bulbapedia doesn't list Good as Gold as something that can't be Doodled
 
Can Doodle copy Good as Gold?
Yes, you can see this in Ability dumps posted by Anubis: https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/post-9899064

Like others said though, Good as Gold itself will block Doodle as a status move, so Good as Gold needs to be suppressed in some way first.

Core Enforcer + Toxic Chain? Just don't use Misty Terrain for doubly obvious reasons...
Core Enforcer is not clickable in Gen 9, so no luck there.
 
Back
Top