Research Scarlet & Violet Battle Mechanics Research

Something notable about Sword of Ruin and Beads of Ruin is that they are the first non-stat-stage scale factors in the history of the modern stat system that apply any amount of decrease to a defense stat.

The absence of such factors before was, it seemed, deliberate: the raw stat formula refuses to output a stat value of less than 4, even for a level 0 or 1 Pokemon with a negative nature in the stat and a low base stat. Combined with the +6/-6 cap, this means they can be divided by 4 but no further, so a 4-point stat (indeed, even a 7-point stat) will remain at 1 after all those drops. Other factors that claimed to make a Pokemon weaker to certain things, like Dry Skin or Fluffy, were always coded as an increase to incoming move power or damage, rather than admitting the existence of any factor that could ever possibly reduce a defense stat beyond what the stages already do.

Early on in RBY, you had some mechanics that understandably weren't very polished: if you Screeched the opponent's defense down to 1, you could then use Explosion to cut that value in half for the duration of the move. Or any physical move used with at least 256 attack into 3 defense would divide both values by 4, and get a 0 that way. This resulted in a division by 0, and a game crash. Modern games aren't quite as fragile when you throw those challenges at them, and will catch the attempted division by 0 before it happens, with the failsafe being to zero out the result of the calculation up to that point, and any attacks aimed at that side will do only single-digit damage no matter how powerful they are or if they're super effective. In effect, this means if you can get a 0-point defensive stat, the game will treat that as an infinitely high stat. The trouble, of course, lies in getting that zero in the first place--it requires either direct stat hacking, or Sw/Sh introduced a vector involving overflow of the positive nature calculation to the unobtainable Eternatus-E form (thereby introducing the mechanic to Pure Hackmons). It's clear from the damage-mitigation behavior of 0 defense that this failsafe mechanic was never supposed to be accessible for general use.

Did the Ruins change all that? If you stat-drop a low-level Pokemon down to 1 defense or SpD, then bring in the appropriate Ruin ability to affect that stat, will this result in a further reduction to 0, and if so then does the game still treat attempted division by a 0-point defense stat the same way it has based on the precedent of gens 5-8?
 
I want someone to test if Bulbapedia correctly claims that Pokemon with Ruin abilities (Sword of Ruin, Tablets of Ruin, etc.) are immune to the same Ability.

Someone on Bulbapedia added this to the Ability pages, but I want to support such a claim, needed to research this PS bug: https://www.smogon.com/forums/threa...inal-post-before-posting.3663703/post-9468014

The sets are used are in the linked post.
Confirmed. Video proof.

Lvl 45 208+ Atk Breloom Seed Bomb vs. Lvl 65 0 HP / 76 Def Chien-Pao: 51-61 (25.6 - 30.6%) -- Possible damage amounts: (51, 52, 52, 54, 54, 54, 55, 55, 57, 57, 57, 58, 58, 60, 60, 61)

Lvl 45 208+ Atk Sword of Ruin Breloom Seed Bomb vs. Lvl 65 0 HP / 76 Def Chien-Pao: 67-81 (33.6 - 40.7%) -- Possible damage amounts: (67, 69, 69, 70, 72, 72, 73, 73, 75, 75, 76, 76, 78, 78, 79, 81)

First Seed Bomb without an opposing Chien Pao on the field did 58, the 2 following one with an opposing Chien Pao on the field did 55 and 57 respectively, so lower than what it should've done if Sword of Ruin actually activated.
 

Anubis

HONK
is a Community Contributoris a Top Researcheris a Battle Simulator Admin Alumnusis a Community Leader Alumnusis a Smogon Discord Contributor Alumnus
Something notable about Sword of Ruin and Beads of Ruin is that they are the first non-stat-stage scale factors in the history of the modern stat system that apply any amount of decrease to a defense stat.

The absence of such factors before was, it seemed, deliberate: the raw stat formula refuses to output a stat value of less than 4, even for a level 0 or 1 Pokemon with a negative nature in the stat and a low base stat. Combined with the +6/-6 cap, this means they can be divided by 4 but no further, so a 4-point stat (indeed, even a 7-point stat) will remain at 1 after all those drops. Other factors that claimed to make a Pokemon weaker to certain things, like Dry Skin or Fluffy, were always coded as an increase to incoming move power or damage, rather than admitting the existence of any factor that could ever possibly reduce a defense stat beyond what the stages already do.

Early on in RBY, you had some mechanics that understandably weren't very polished: if you Screeched the opponent's defense down to 1, you could then use Explosion to cut that value in half for the duration of the move. Or any physical move used with at least 256 attack into 3 defense would divide both values by 4, and get a 0 that way. This resulted in a division by 0, and a game crash. Modern games aren't quite as fragile when you throw those challenges at them, and will catch the attempted division by 0 before it happens, with the failsafe being to zero out the result of the calculation up to that point, and any attacks aimed at that side will do only single-digit damage no matter how powerful they are or if they're super effective. In effect, this means if you can get a 0-point defensive stat, the game will treat that as an infinitely high stat. The trouble, of course, lies in getting that zero in the first place--it requires either direct stat hacking, or Sw/Sh introduced a vector involving overflow of the positive nature calculation to the unobtainable Eternatus-E form (thereby introducing the mechanic to Pure Hackmons). It's clear from the damage-mitigation behavior of 0 defense that this failsafe mechanic was never supposed to be accessible for general use.

Did the Ruins change all that? If you stat-drop a low-level Pokemon down to 1 defense or SpD, then bring in the appropriate Ruin ability to affect that stat, will this result in a further reduction to 0, and if so then does the game still treat attempted division by a 0-point defense stat the same way it has based on the precedent of gens 5-8?
DaWoblefet and I tried this experiment:
He brought a level 1 Happiny with a starting Defense of 4.
I used Screech 3 times and then Icicle Crash from a Chien-Pao, which KO'd it.

Looking at the debug output, the Defense was still treated as 1, so it took 27k damage.
Thread 12 "JobThread1" hit Breakpoint 1, 0x0000005444767298 in ?? ()
$1 = 4096
$2 = "attack mod"
$3 = 272
$4 = "attack power before mod"

Thread 12 "JobThread1" hit Breakpoint 6, 0x00000054447675b4 in ?? ()
$5 = 272
$6 = "attack power"

Thread 12 "JobThread1" hit Breakpoint 2, 0x0000005444767d74 in ?? ()
$7 = 3072
$8 = "defense mod"
$9 = 1
$10 = "defense power before mod"

Thread 12 "JobThread1" hit Breakpoint 9, 0x0000005444767d88 in ?? ()
$11 = 1
$12 = "defense power"

Thread 12 "JobThread1" hit Breakpoint 7, 0x0000005444767d98 in ?? ()
$13 = 100
$14 = "attacker level"

Thread 12 "JobThread1" hit Breakpoint 8, 0x0000005444767d9c in ?? ()
$15 = 85
$16 = "move BP"

Thread 12 "JobThread1" hit Breakpoint 4, 0x00000054447688d0 in ?? ()
$17 = 6144
$18 = "STAB/tera mod"
$19 = 18062
$20 = "damage before STAB/tera mod"

Thread 12 "JobThread1" hit Breakpoint 3, 0x0000005444768bd4 in ?? ()
$21 = 4096
$22 = "damage mod"
$23 = 27093
$24 = "damage before mod"

Thread 12 "JobThread1" hit Breakpoint 5, 0x0000005444768ce4 in ?? ()
$25 = 27093
$26 = "final damage"

The place where the Defense modifier applied follows:
Code:
          if ( ((defGuard_before_mod * def_mod) & 0xFFFu) <= 0x800 )
            defGuard = (defGuard_before_mod * def_mod) >> 12;
          else
            defGuard = ((defGuard_before_mod * def_mod) >> 12) + 1;
where defGuard_before_mod = 1 and def_mod = 3072. Essentially this is a "round half down" step and since 3072 * 1 / 4096 never hits 0.5, it gets rounded up.

I did try a second experiment where I straight up set the opposing Pokémon's defense, defGuard_before_mod to 0, and the opposing Pokémon took 2 damage.
Thread 13 "JobThread2" hit Breakpoint 1, 0x0000005444767298 in ?? ()
$27 = 4096
$28 = "attack mod"
$29 = 346
$30 = "attack power before mod"

Thread 13 "JobThread2" hit Breakpoint 6, 0x00000054447675b4 in ?? ()
$31 = 346
$32 = "attack power"

Thread 13 "JobThread2" hit Breakpoint 10, 0x0000005444767d74 in ?? ()
$33 = 4096
$34 = "defense mod"
$35 = 0
$36 = "defense power before mod"

Thread 13 "JobThread2" hit Breakpoint 9, 0x0000005444767d88 in ?? ()
$37 = 0
$38 = "defense power"

Thread 13 "JobThread2" hit Breakpoint 7, 0x0000005444767d98 in ?? ()
$39 = 100
$40 = "attacker level"

Thread 13 "JobThread2" hit Breakpoint 8, 0x0000005444767d9c in ?? ()
$41 = 90
$42 = "move BP"

Thread 13 "JobThread2" hit Breakpoint 4, 0x00000054447688d0 in ?? ()
$43 = 6144
$44 = "STAB/tera mod"
$45 = 1
$46 = "damage before STAB/tera mod"

Thread 13 "JobThread2" hit Breakpoint 3, 0x0000005444768bd4 in ?? ()
$47 = 4096
$48 = "damage mod"
$49 = 2
$50 = "damage before mod"

Thread 13 "JobThread2" hit Breakpoint 5, 0x0000005444768ce4 in ?? ()
$51 = 2
$52 = "final damage"
 
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
  • Illusion Dondozo works just fine with Commander, which leads to some funny animations.
  • When Arceus Terastallizes, its typing is updated to be the Tera Type (which might sound weird to even test but Arceus, even without a Plate, is immune to things like Soak). Judgment still uses the type of the corresponding Plate.
  • Originally found by Zaggyo, using Double Shock as a pure Electric-type or Burn Up as a pure Fire-type, then checking the Pokemon's summary screen will crash the game.
  • If Dondozo uses Explosion while being Commanded, it won't hit Tatsugiri.
  • If Dondozo uses Ally Switch while being Commanded, it will successfully switch slots.
  • If a Sword of Ruin Pokemon uses Explosion, damage calculation includes the target's Defense drop from Sword of Ruin.
  • Baton Pass doesn't pass the stat boosts of the Paradox Abilities in any circumstance.
  • If a Good as Gold Poemon uses a status move into Magic Bounce, the move will be bounced back and blocked by Good as Gold.
  • Court Change changing Tailwind won't cause either Wind Power or Wind Rider to activate if they are out on the field.
  • Origin form items don't seem to impact the Sinnoh trio's signature moves. I didn't notice a difference in base power from Adamant Crystal Roar of Time on Origin Dialga.
  • Purifying Salt's reduction vs Ghost-types is an Attack modifier, like Thick Fat.
  • The Choice item lock glitch still exists, and it has identical behavior to Gen 8 (Choice lock -> Magic Room -> remove Choice item -> Magic Room ends -> still Choice locked during move execution but not move selection).
Does every mon have the rage fist volatile? If you copycat Fist does it work?
Yes.

View attachment 483814
What's the correct value used on cart?
Flittle's Sp. Def is 30, as per Kaphotics.
926 - Flittle #263 (Stage: 1)
======
Base Stats: 30.35.30.55.30.75 (BST: 255)
 
Hi!

I'm seeing Pollen Puff on Bulbapedia note that it's "no longer blocked by Bulletproof". However, it still seems to carry the ballistic flag. Is this just referring to the healing effect, or does the damaging move also hit through?
 
Hi!

I'm seeing Pollen Puff on Bulbapedia note that it's "no longer blocked by Bulletproof". However, it still seems to carry the ballistic flag. Is this just referring to the healing effect, or does the damaging move also hit through?
I did this, and it's because its entry is unchecked on the page about the Ability, in the Gen 9 column.
 

Mathy

i'm not chien pao
is a Programmeris a Battle Simulator Moderator
Does Ally Switch stack with other stall moves in its failure chance? Does it fail if it is the last move to be used in a turn?
 

3d

継続は力なり
is a Tutor Alumnusis a Top Team Rater Alumnusis a Forum Moderator Alumnusis a Tiering Contributor Alumnus
World Defender
Does Ally Switch stack with other stall moves in its failure chance? Does it fail if it is the last move to be used in a turn?
Tested the first question with an espathra with protect and ally switch.
After 15 attempts it did not fail so I'm gonna say that it does not stack with other moves.

The second question was tested with pokemon using helping hand, endure and protect and it did not fail.

Edit: I can provide video footage of the first one but it'll be very long since it was 15 turns, but if needed I can do that.
 
Last edited:
In a 1-vs-1 situation, if a Pokemon KOes both itself and its opponent with Steel Beam, who wins?

This is already causing controversy in The Loser's Game this generation because Pokemon Showdown's implementation of who wins seems to have flipped for Gen 9 vs. Gen 8 games; see https://replay.pokemonshowdown.com/gen9thelosersgame-1791285130 for what triggered this question from me.

EDIT: Actually, while I'm here, it would be nice to get confirmation of Bulbapedia's statements that Shed Tail rounds up its HP loss and fails if the user already has a Substitute.
 
Last edited:

DarkFE

Heal Bells ringing
is a Pokemon Researcher
In a 1-vs-1 situation, if a Pokemon KOes both itself and its opponent with Steel Beam, who wins?

EDIT: Actually, while I'm here, it would be nice to get confirmation of Bulbapedia's statements that Shed Tail rounds up its HP loss and fails if the user already has a Substitute.
If a paradox Pokemon holding a booster energy takes hazard damage in harsh sunlight/electric terrain, it will activate the item instead of activating the ability through the field effect
As the Tweets state, this also applies to Toxic Spikes, but only if they Poison the Booster Energy user. I also tested Sticky Web, which does not trigger this interaction.

*Slight edit for clarity of meaning in the Shed Tail question.
 
Last edited:
Hi! Uh, really small thing, but I've been looking at the move data and I've... been unable to find a column for the "aura and pulse moves" flag anywhere. (It's obviously not one of the unlabeled columns either - I did check the pulse moves that exist for any of those being true, but it was pretty easy to conclude that that was a dead end, since all of the flags on moves like Aura Sphere and Origin Pulse are accounted for by other things: Protect and Mirror Move for both, and then Metronome, distance in Triples and Bulletproof for Aura Sphere, all of which are expected. There were no unknown columns set to true on either of those.)

Does anyone know, uh, why that would be? Mega Launcher is obviously still in the game (it's on Clawitzer, which is in the dex); would anyone know if there's a list of these hard-coded somewhere other than the move data?

Part of why I ask is also because Order Up is considered a pulse move on Showdown and I can't find anything backing that, so I was trying to see for myself if it was correct,
but looking at the move data and not finding a flag for any of the pulse moves also made me a lot more curious about how it even worked / where else that might be found; I didn't see any other expected flags that were outright missing, you know?
 
Last edited:
Part of why I ask is also because Order Up is considered a pulse move on Showdown and I can't find anything backing that, so I was trying to see for myself if it was correct,
but looking at the move data and not finding a flag for any of the pulse moves also made me a lot more curious about how it even worked / where else that might be found; I didn't see any other expected flags that were outright missing, you know?
I think I remember years ago hearing something about some Gen 6 boosting abilities being hard coded to boost certain attacks on the ability itself instead of being a flag on the attack. I can't verify that claim at all though, so don't run with that as an explanation without someone with more knowledge then me verifying things.

At any rate, I tested singles Order Up being a pulse move in game a few times vs a wild Ditto. The damage rolls of ~20 stayed the same regardless of whether or not the ditto had Mega Launcher or not.
 
Last edited:

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
Game Freak has several move tables separate from the effects that use them, but pulse moves have never been one of them. All the flags in SV after Metronome were part of these tables in previous games, they have simply refactored them into flags. The only move tables left unrefactored are generic Z-Moves, signature Z-Moves, a table just for Max Guard, generic Max Moves, and moves that bypass Max Guard. Presumably pulse moves were never shoved in a table because Heal Pulse doesn't behave like the rest; it has special handling separate from the others in Mega Launcher's implementation.

It looks like whoever initially implemented Order Up on PS just copied Origin Pulse (which is right next to it) and forgot to change the flags, since Order Up is supposed to lack the Mirror Move flag as well. Good catch, will be fixed soon.
 

DarkFE

Heal Bells ringing
is a Pokemon Researcher
Hi. Another set of minor, mostly expected results sorted roughly from most interesting to least interesting. Some may have already been tested, but I couldn't find the tests in a quick search if so.
 
Not relevant for multiplayer, but I have noticed an oddity with the wild Tera Salandit in East Province Area One.
If the player's first attack is enough to deplete its Terastalization, its turn is skipped as usual.
However it can still use Fake Out just after, even if it is technically turn 2.
I guess the skipped turn does not get counted for it.
 

Fragmented

procrastinating...
is a Pokemon Researcher
For some reason Jet Punch is boosted by Sheer Force on PS.

This does not happen in game and not sure why its even a thing on PS.
per https://www.serebii.net/abilitydex/sheerforce.shtml and can also be verified if anyone has a hacked switch which I do not have access to.
This post is the reason for Sheer Force boosted Jet Punch, tested around 1:51:40. While it isn't very clear whether Jet Punch receives the 1.3x boost from Sheer Force, Sheer Force did negate the Life Orb damage, which gives the appearance that Jet Punch is Sheer Force boosted.

1675683557419.png

These are Pawniard's health bars before and after the first Jet Punch which was only Life Orb boosted. The second Jet Punch, which is supposedly Sheer Force boosted as well, KOs Pawniard. The health lost by Pawniard from the first Jet Punch is slightly less than the health lost from the second Jet Punch, however, this could be due to a high-low damage roll.
 
Just for some extra confirmation on the Sheer Force + Entrainment interaction, I got a complicated set up going where I can get a wild ditto transformed into a Vaporeon to Jet Punch with Sheer Force. I had to fight it across a few different reloads because it kept knocking itself out from PP issues, but it was the same Ditto. Without Sheer Force, it kept bringing my 125 HP banette down to 106 or 107. When it got the Sheer Force boost, it started taking it down to 100. That lines up just about perfectly with the 30% damage increase.


1675687734948.png

1675687741199.png

1675687750404.png
 
Last edited:

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

Top