Sword & Shield Battle Mechanics Research

Almost, but instead of a 3-sided die, it uses a 30-sided die with asymmetric outcomes. Poison gets 9 slots out of 30 (and thus 9% overall, when factoring in the probability for Effect Spore to trigger at all), paralysis gets 10 slots, and sleep gets 11.
According to Bulbapedia, it was 10 slots each in Generation IV. Are they correct?
 
Can someone do mechanics test for stomping tantrum's interactions with spread moves? On Pokemon Showdown, it seems like there are contradictory ways for the doubled base power to activate. On turn 4, I used earthquake which failed to hit both of my opponents (one was immune, one had protect), but hit my ally. Stomping tantrum's base power was not doubled. However, on turn 7, Garbodor used poison gas which was bounced from one of my opponents' pokemon and stopped by protect on the other. This still successfully inflicted poison status on my ally. Interestingly, this also activated the doubled power of Garbodor's stomping tantrum, despite successfully hitting a pokemon.

https://replay.pokemonshowdown.com/gen8doublescustomgame-1320206423
 
Can someone do mechanics test for stomping tantrum's interactions with spread moves? On Pokemon Showdown, it seems like there are contradictory ways for the doubled base power to activate. On turn 4, I used earthquake which failed to hit both of my opponents (one was immune, one had protect), but hit my ally. Stomping tantrum's base power was not doubled. However, on turn 7, Garbodor used poison gas which was bounced from one of my opponents' pokemon and stopped by protect on the other. This still successfully inflicted poison status on my ally. Interestingly, this also activated the doubled power of Garbodor's stomping tantrum, despite successfully hitting a pokemon.

https://replay.pokemonshowdown.com/gen8doublescustomgame-1320206423
There’s nothing inconsistent about this. Hitting your ally is still successfully doing something, so the move didn’t fail. When a move gets bounced, however, it’s considered a new move being used by the Pokémon that bounced it. All of Garbodor’s original targets of Poison Gas were not poisoned, and the move has no other effects, so it’s considered to have failed.
 
There’s nothing inconsistent about this. Hitting your ally is still successfully doing something, so the move didn’t fail. When a move gets bounced, however, it’s considered a new move being used by the Pokémon that bounced it. All of Garbodor’s original targets of Poison Gas were not poisoned, and the move has no other effects, so it’s considered to have failed.
Thanks for the info. Magic bounce had previously been confusing me because if you have a magic bounce move fail on the same turn that you use stomping tantrum (but before you actually use stomping tantrum), it won't do anything to boost stomping tantrum's power. What I have seen from looking closer into this is that when a pokemon uses a move that gets reflected by magic bounce, it counts as both of them using a move. Something else that I did not know was that triggering magic bounce on a pokemon is considered as a fail (ex. turn 8 & 9). I'm guessing that has already been tested in-game?

replay: https://replay.pokemonshowdown.com/gen8customgame-1320280146
 

DaWoblefet

Demonstrably so
is a Battle Simulator Administratoris a Community Leaderis a Programmeris a Community Contributoris a Top Researcheris a Top Tiering Contributoris a Social Media Contributor Alumnus
PS Admin
Some info on Protective Pads! Protective Pads only announces itself for a select number of contact abilities, and will not announce itself in all other cases. Protective Pads will always block the effect from occurring, but the effect itself may not be announced. Some examples:
  • Protective Pads user uses Poison Jab into a Rocky Helmet target. Neither Rocky Helmet nor Protective Pads is announced, and the user is not damaged.
  • Protective Pads user uses Poison Jab into a Flame Body target. Even if Flame Body rolled the RNG to trigger, neither Flame Body nor Protective Pads is announced, and the user is not burned.
  • Protective Pads user uses Poison Jab into a Gooey target. Gooey is announced and Protective Pads plays the "[Pokemon] protected itself with the Protective Pads" message, and the user's Speed is not dropped.

List of effects that reveal Protective Pads:
  • Aftermath
  • Gooey
  • Iron Barbs
  • Mummy
  • Rough Skin
  • Tangling Hair
List of effects that do not reveal Protective Pads:
  • Baneful Bunker
  • Beak Blast
  • King's Shield
  • Obstruct
  • Spiky Shield
  • Rocky Helmet
  • Wandering Spirit
  • Perish Body
  • All of the 30% status abilities: Poison Point, Static, Flame Body, Cute Charm, Effect Spore
For completeness, Protective Pads can be stolen by Pickpocket.
 
Last edited:
Some info on Protective Pads! Protective Pads only announces itself for a select number of contact abilities, and will not announce itself in all other cases. Protective Pads will always block the effect from occurring, but the effect itself may not be announced. Some examples:
  • Protective Pads user uses Poison Jab into a Rocky Helmet target. Neither Rocky Helmet nor Protective Pads is announced, and the user is not damaged.
  • Protective Pads user uses Poison Jab into a Flame Body target. Even if Flame Body rolled the RNG to trigger, neither Flame Body nor Protective Pads is announced, and the user is not burned.
  • Protective Pads user uses Poison Jab into a Gooey target. Gooey is announced and Protective Pads plays the "[Pokemon] protected itself with the Protective Pads" message, and the user's Speed is not dropped.

List of effects that reveal Protective Pads:
  • Aftermath
  • Gooey
  • Iron Barbs
  • Mummy
  • Rough Skin
  • Tangling Hair
List of effects that do not reveal Protective Pads:
  • Baneful Bunker
  • Beak Blast
  • King's Shield
  • Obstruct
  • Spiky Shield
  • Rocky Helmet
  • Wandering Spirit
  • Perish Body
  • All of the 30% status abilities: Poison Point, Static, Flame Body, Cute Charm, Effect Spore
For completeness, Protective Pads can be stolen by Pickpocket.
Does Long Reach behave the exact same way as Protective Pads announcement-wise (except for item-related interactions and interactions with abilities that can displace it like Mummy and Wandering Spirit)?
 

DaWoblefet

Demonstrably so
is a Battle Simulator Administratoris a Community Leaderis a Programmeris a Community Contributoris a Top Researcheris a Top Tiering Contributoris a Social Media Contributor Alumnus
PS Admin
Does Long Reach behave the exact same way as Protective Pads announcement-wise (except for item-related interactions and interactions with abilities that can displace it like Mummy and Wandering Spirit)?
Great question! I actually checked this out because I was surprised it was so different. Long Reach completely removes the "contact" part from the move. So if a Long Reach Pokemon uses Poison Jab, it just treats the move as not being a contact move, and so none of the aforementioned contact effects will announce. So Long Reach into Mummy, Gooey, Rocky Helmet, etc. won't announce any of those effects. It's moreso like it temporarily deletes the "contact" flag from that move's properties.
 

Anubis

HONK
is a Community Contributoris a Top Researcheris a Battle Simulator Admin Alumnusis a Community Leader Alumnusis a Smogon Discord Contributor Alumnus
Last August, Quint_ found that Keldeo with Secret Sword plus any SWSH-specific move forced it to Resolute Form. This was a change from prior to IoA when the form only updated in battle and not with move changes.

The behavior works in reverse in most cases too... TMing or tutoring a move over Secret Sword updates the form to Ordinary.

I noticed today that there's yet another edge-case way to mismatch Keldeo. If you level up Keldeo with items and replace Secret Sword with a level-up move, it doesn't fix the form to Ordinary. That means that Resolute Form doesn't necessarily mean that Keldeo has Secret Sword even if it has SWSH-specific moves like Flip Turn, as long as it has at least one other level-up move that it could have learned.

Demonstration:
 

Anubis

HONK
is a Community Contributoris a Top Researcheris a Battle Simulator Admin Alumnusis a Community Leader Alumnusis a Smogon Discord Contributor Alumnus
Feels kind of unlikely that nobody tested this in 1.5 years (?), but I couldn't find this anywhere. Showdown doesn't implement Dynamax levels, so I guess this is purely curiosity.

If Ditto uses Transform/Imposter and then Dynamaxes, it uses its own Dynamax level, not the target's Dynamax level.

- Ditto with level 10 Dynamax transforming into Morimoto's Grapploct (Dynamax Level 0) goes from 146 to 292 HP with Dynamax.
- Ditto with level 0 Dynamax transforming into Morimoto's Grapploct (Dynamax Level 0) goes from 146 to 219 HP with Dynamax.

Makes sense since it uses its own HP.

See: https://imgur.com/a/ldYT3m4
 
Last edited:

DaWoblefet

Demonstrably so
is a Battle Simulator Administratoris a Community Leaderis a Programmeris a Community Contributoris a Top Researcheris a Top Tiering Contributoris a Social Media Contributor Alumnus
PS Admin
Self-hit confusion damage has behaved rather unusually as a form of damage. Thanks to additional USUM research, we know the reason why! Self-hit confusion is sequestered in its own unique damage formula. Nearly all modifiers and events related to damage don't happen, which explains things such as why:
  • Berserk / Emergency Exit doesn't trigger on self-hit confusion damage
  • Sitrus Berry doesn't trigger on self-hit confusion damage
  • Life Orb doesn't boost damage nor damages the user, and Shell Bell doesn't restore HP
  • Huge Power, Power Spot, Helping Hand, Eviolite etc. doesn't change the amount of damage the user takes
Here's what happens in the "confusion damage formula":
  1. Get variables for the base damage formula.
    1. Get the user's level.
    2. Get the user's starting Attack stat with stat boosts / drops, but no other modifiers. (For example, Power Trick, Power Split, +3 Atk, or -4 Atk work because they modify the attack stat directly, but Choice Band or Guts don't count because they're attack modifiers).
    3. Get the user's starting Defense stat with stat boosts / drops, but no other modifiers. (same deal as for attack).
  2. Run a base damage calculation with 40 base power, user Attack, user Defense, and user level (the standard way base damage is calculated).
  3. Apply the random damage roll (multiply by a value from 85-100 and divide by 100, flooring the result) (the standard way damage rolls are applied).
  4. If the damage is 0, make it 1.
Afterwards, you run checks for Disguise and whether or not a Pokemon should be surviving from effects like Focus Sash, Sturdy, etc. Then you check if the Pokemon should faint, and associated things that come with fainting start (like Unnerve allowing Berries to be eaten, etc.), which takes you beyond self-hit confusion-specific behavior.

Another peculiar feature of the confusion damage formula is that the variables for level, Attack, Defense, and the random damage roll are in 32-bit context, but the damage itself is 16-bit throughout. The only time this can even come up is when calculating base damage; with a large enough Attack and a low enough Defense, you can shoot past the 65535 benchmark and overflow to low amounts of confusion damage. Here's a proof of concept in Sword and Shield of confusion damage formula overflow (with credit to SadisticMystic for helping with the math and Nol for helping with the testing!).

Base damage variables:
Base Power: 40
Level: 100 (so the level calculation evaluates to 42)
Attack: Power Tricked Shuckle with 488 Def-turned-Attack at +6 Attack (effective 1952 Attack)
Defense: Power Tricked Shuckle with 22 Atk-turned-Defense, Guard Split with a 4 Chansey 3 times, at -6 Defense (effective 1 Defense)

Base damage = floor[floor[(BP * Attack * floor[(2 * level / 5) + 2] / Def] / 50] + 2
Base damage = floor[floor[(40 * 1952 * 42 / 1] / 50] + 2
Base damage = floor[3279360 / 50] + 2
Base damage = 65587 + 2
Base damage = 65589

16-bit truncation forces 65589 to become (65589 % 65536) = 53, making base damage 53.

Possible damage rolls with 53 base damage are: [45, 45, 46, 46, 47, 47, 48, 48, 49, 49, 50, 50, 51, 51, 52, 53]

And in the linked video, I hit 45, 46, 48, 50, 51, and 53 damage.
 

Anubis

HONK
is a Community Contributoris a Top Researcheris a Battle Simulator Admin Alumnusis a Community Leader Alumnusis a Smogon Discord Contributor Alumnus
Nol and I tested that SWSH version 1.3.2 fixed the bug where Kyogre/Groudon with no item couldn't be given an item with Trick.


EDIT:
When I was looking through disassembly, I noticed a function in 1.3.1 that was treating Kyogre/Groudon with item index 0 the same as Giratina with Griseous Orb and Arceus with any plates; it would return "true" for Kyogre/Groudon and item 0 (aka no item) or Giratina and Griseous Orb.

I suspected this was a check for if a Pokemon considers an item a special one it can't gain or lose ("true" if it is, "false" if it isn't). In 1.3.1, Kyogre could not be Tricked if either it or the other Pokemon held item 0 (no item).

The same function changed in 1.3.2 so that any item index of 0 automatically returns "false", and every Kyogre/Groudon returns "false". The other Pokemon and their special items were still "true".

Compare 1.3.1 vs 1.3.2.
 
Last edited:

DaWoblefet

Demonstrably so
is a Battle Simulator Administratoris a Community Leaderis a Programmeris a Community Contributoris a Top Researcheris a Top Tiering Contributoris a Social Media Contributor Alumnus
PS Admin
Adding onto the above, the leak of whether Zacian / Zamazenta / Xerneas was brought to a match was fixed as well. Thanks to PsyJ for the footage! Some other unchanged interactions tested (thanks Anubis and OPBreloom!):
  • Keldeo still behaves like last patch, where it can be Ordinary or Resolute Form and have Secret Sword in battle.
  • You can still select Dynamax, be forced in and out via two Eject Packs, and Dynamax in the other slot without using a Max Move.
  • Fly still leaks its target via animation.
  • You can still target yourself twice with Dragon Darts via Ally Switch + Telepathy and targeting an ally.
There's still plenty of glitches that can be tested, but it's pretty likely based on the "patch notes" that this was a patch aimed at fixing the [+] info leaks with Zacian / Zamazenta / Xerneas.
 
Tried Transforming into an Eternamax in Gen 8 Pure Hackmons on Pokemon Showdown and that failed entirely; however, Bulbapedia says in https://bulbapedia.bulbagarden.net/wiki/Transform_(move) that I should be able to Transform into Eternatus here:
If the target is Eternamax Eternatus, the user transforms into the regular version of Eternatus.
Can I please have this confirmed or refuted, assuming Eternamax is hacked into local battle? I've heard that Bulbapedia isn't always accurate....
 
Tried Transforming into an Eternamax in Gen 8 Pure Hackmons on Pokemon Showdown and that failed entirely; however, Bulbapedia says in https://bulbapedia.bulbagarden.net/wiki/Transform_(move) that I should be able to Transform into Eternatus here:


Can I please have this confirmed or refuted, assuming Eternamax is hacked into local battle? I've heard that Bulbapedia isn't always accurate....
Not only should it successfully transform, it should copy the Eternamax stats even though it technically transforms into base Eternatus.
 

Anubis

HONK
is a Community Contributoris a Top Researcheris a Battle Simulator Admin Alumnusis a Community Leader Alumnusis a Smogon Discord Contributor Alumnus
Just a couple of things to add to the Eternatus question...

- Eternatus-0 (base) and Eternatus-1 (Eternamax) can Transform into other Eternatus, but their model does not change (i.e. base stays base, Eternamax stays Eternamax). Stats do, however.
- Eternatus-0 can Transform into other Pokémon, but Eternatus-1 Transforming into non-Eternatus crashes the game.

EDIT: Dynamax crash is due to scenario, see this post for more information.

A series of clips to illustrate this: https://imgur.com/a/MeXiTs6
 
Last edited:

DaWoblefet

Demonstrably so
is a Battle Simulator Administratoris a Community Leaderis a Programmeris a Community Contributoris a Top Researcheris a Top Tiering Contributoris a Social Media Contributor Alumnus
PS Admin
I recorded some footage to complement Anubis's above post with some footage of Eternamax both being Transformed into and crashing on attempting to itself use Transform.

In that same video, I also have some Illusion mechanics to showcase! Typically, Zoroark hides itself in the [+] info screen by only brightening the Pokemon it is Illusioned as, leaving Zoroark as the unrevealed grayed out sprite. Once Illusion breaks, the [+] info screen updates to brighten Zoroark's sprite too. However, status conditions and fainting can also leak that a Pokemon was a Zoroark due to those effects applying to the Zoroark sprite, not the Illusioned target's sprite.
  • If the Illusion Pokemon is given a status condition, the status condition is displayed on the Illusion Pokemon, not what it's pretending to be.
    • Example: Zoroark, Illusioned as Dragapult, is Toxiced. Zoroark's sprite is still the unrevealed gray, but the poison indicator reveals which it is.
    • This behavior is identical in Generation VII.
  • If the Illusion Pokemon faints from damage without Illusion breaking formally (e.g. after Toxic or Life Orb), it is displayed as having fainted, ultimately revealing that the Pokemon was in fact Zoroark.
    • Example: Zoroark, Illusioned as Dragapult, faints from Toxic damage. Gastrodon replaces the Zoroark. Zoroark is indicated as being fainted, not Dragapult.
    • In Generation VII, Pokemon don't get marked as officially being fainted through an indicator like in SwSh. The Y-info screen brightens the sprite once the Pokemon is revealed, and doesn't darken it again later after it's fainted. Instead, Zoroark remains grayed out and unrevealed for the remainder of the game, even after all other Pokemon are revealed. Because of this, you don't gain any extra information in Gen VII.
  • Dynamax doesn't leak Illusion at all. Dynamaxing Zoroark while Illusioned as Dragapult shows a big Dragapult in the [+] info screen.
 

Marty

Always more to find
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Member of Senior Staffis a Community Contributoris a Top Researcheris a Top Tiering Contributor
Research Leader
Apparently I forgot to write a post about this when I researched it several months ago. Battery and Power Spot boost an ally's Future Sight when it hits even if the ally that used it isn't active at the time, which makes them not 100% useless in Singles.

I was working on implementing this on PS yesterday while fixing something else and thought about Steely Spirit Doom Desire, so I asked DaWoblefet to check that for me and sure enough it works the same way. Can't wait for the Jirachi+Perrserker gimmick teams!
 

DaWoblefet

Demonstrably so
is a Battle Simulator Administratoris a Community Leaderis a Programmeris a Community Contributoris a Top Researcheris a Top Tiering Contributoris a Social Media Contributor Alumnus
PS Admin
ive heard a rumour that sound moves (eg. hyper voice, boomburst) bypass reflect/light screen/aurora veil. is this so?
No, sound moves don't bypass screens. Sound moves bypass Substitute like Infiltrator, but they don't have any special interaction with screens. The two are completely independent effects.

Following up on some more Eternamax mechanics: both Illusion Eternamax and a Pokemon under the Illusion of Eternamax behave "normally". That is, Illusion Eternamax will appear as the last Pokemon in the party, and upon being damaged, Illusion will break and reveal Eternamax with no game crashes. Additionally, a Pokemon with the ability Illusion can hide itself as a sixth-member Eternamax, and breaking its Illusion causes it to go back to normal with no game crashes.

Also, this should surprise no one, but an Eternamax with Imposter crashes in the same way an Eternamax using Transform does.
 

Anubis

HONK
is a Community Contributoris a Top Researcheris a Battle Simulator Admin Alumnusis a Community Leader Alumnusis a Smogon Discord Contributor Alumnus
Eternatus-1 can Transform only in scenarios where Dynamax is possible, and will appear as the Dynamaxed form of the target Pokemon. Otherwise the game will crash. Previous crashes were within the Pokemon cafe in a doubles battle where Dynamax is not possible.

Versus Morimoto, Eternatus-1 can Transform into his Grapploct (shows up Dynamaxed) or your ally Charizard with GMax factor (shows up as GMax Charizard).

I confirmed this behavior in local battle. Eternatus-1 Transforms without a crash into opposing Sirfetch'd, which again shows up as its Dynamaxed model.

Eternatus-1 does not need the GMax factor for this behavior. Transforming into Eternatus-1 still gives you Eternatus-0.

I've added additional clips to the end of https://imgur.com/a/MeXiTs6, and edited my original post to clarify the new findings.
 
Eternatus-1 can Transform only in scenarios where Dynamax is possible, and will appear as the Dynamaxed form of the target Pokemon. Otherwise the game will crash. Previous crashes were within the Pokemon cafe in a doubles battle where Dynamax is not possible.

Versus Morimoto, Eternatus-1 can Transform into his Grapploct (shows up Dynamaxed) or your ally Charizard with GMax factor (shows up as GMax Charizard).

I confirmed this behavior in local battle. Eternatus-1 Transforms without a crash into opposing Sirfetch'd, which again shows up as its Dynamaxed model.

Eternatus-1 does not need the GMax factor for this behavior. Transforming into Eternatus-1 still gives you Eternatus-0.

I've added additional clips to the end of https://imgur.com/a/MeXiTs6, and edited my original post to clarify the new findings.
I'd like these confirmed since Eternatus cannot Dynamax but can be Transformed into by Eternamax: can Eternamax Transform into Zacian, Zacian-Crowned, Zamazenta, and/or Zamazenta-Crowned without crashing the game? (If Eternamax cannot Transform into Zac-C without crashing, there go some of my Imprisonform dreams.)
 

Anubis

HONK
is a Community Contributoris a Top Researcheris a Battle Simulator Admin Alumnusis a Community Leader Alumnusis a Smogon Discord Contributor Alumnus
I'd like these confirmed since Eternatus cannot Dynamax but can be Transformed into by Eternamax: can Eternamax Transform into Zacian, Zacian-Crowned, Zamazenta, and/or Zamazenta-Crowned without crashing the game? (If Eternamax cannot Transform into Zac-C without crashing, there go some of my Imprisonform dreams.)
Eternatus-1 can Transform into Zacian, Zamazenta, and their Crowned forms. However, it will always appear Dynamaxed in Hero form. This is true whether Zacian is a hacked, out-of-battle Zacian-1 or a legal Zacian-0 with Rusted Sword allowed to change into Zacian-1 naturally in battle.

Holding Rusted Sword doesn't make the transformed Eternatus-1 appear any differently. If Eternatus is transformed into Crowned Zacian, it will be weak to fire despite its appearance.

I added 3 clips to the same imgur album to illustrate this. (Bonus: Zacian with a giant claw sticking out of its chest.)
 
Last edited:

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top