Research Scarlet & Violet Battle Mechanics Research

If you were to edit an Ogerpon form's typing to change the secondary type (i.e. changing Hearthflame Ogerpon from Grass/Fire to Grass/Fairy) would that in turn make Ivy Cudgel change into said secondary type? There's conflicting info on what exactly determines the Ivy Cudgel typing, I've seen some say it's based on Ogerpon's typing or that it's based on the code of the mask it's wearing.
Soaking Ogrepon doesn't make Ivy Cudgel become Water type, so it's just tied directly to the current form without regard for Ogerpon's actual type, like Tauros' Raging Bull.
 
If an Electric/Flying type has Tera Shell while Delta Stream is active, which effect takes precedence if that Pokémon takes an Electric type attack?
 
If an Electric/Flying type has Tera Shell while Delta Stream is active, which effect takes precedence if that Pokémon takes an Electric type attack?
Delta Stream is not properly coded to interact with new mechanics as Mega Rayquaza is not in the game. See also Desolate Land not interacting with Protosynthesis/Orichalcum Pulse.

The order doesn't really matter though Delta Stream makes all of Flying's weaknesses into neutralities, Tera Shell makes every move that isn't already not very effective not very effective. Flying not being weak to Electric wouldn't change that Tera Shell makes the move not very effective anyway. Same as how Tera Shell overrides the extra Fire weakness caused by Tar Shot, the actual type matchups are irrelevant unless the target already resists or double resists the attack. The only thing that would change is which message would proc.
 
The order doesn't really matter
The order always matters, and it doesn't even depend on the other type; the move would end up being doubly resisted if Tera Shell is checked first. (While I doubt this is the case, that's what research is for.)
Same as how Tera Shell overrides the extra Fire weakness caused by Tar Shot, the actual type matchups are irrelevant unless the target already resists or double resists the attack.
The order does matter for a simple resist: if Tera Shell was checked first, it would think the attack was going to be resisted, and not activate, with Tar Shot then changing the attack to be neutral, but with Tar Shot checked first, Tera Shell then steps in and makes the attack resisted again.
 
Hi, in the files you provided in the zip, there is an Eevee-1 and a Pikachu-8, which have matching base stats with the -Starter formes, so I'm assuming those are just the starter formes in the table. Does this mean these formes of Eevee/Pikachu are useable in SV. (Checking because current PS implementation for hackmons has them excluded)

Edit: If it is possible for whoever is able to test the above, would they also be able to verify Pikachu-Starter's compatibility with Light Ball, as well as help verify Ash-Greninja's behaviour with Water Shuriken if it has a different ability than Battle Bond (the video Anubis linked is no longer available)
There's nothing really special about the Starter Pikachu or Starter Eevee. Since neither is in the reversion table, I fully expected them to work just like any other alternate form that isn't in the table, and unsurprisingly, they do.

Left is both Starter forms (form 1 for Eevee and form 8 for Pikachu), right is both regular forms (form 0). They are all 6 IV. As you can see, the Starter forms use the higher base stats. I'm able to hack them in, look at their stats, and use them in battles without them reverting.

1743206933714.png


The handler for Light Ball only checks for species to be 25 (Pikachu), so I expected it to work fine for Starter Pikachu.
1743207179693.png


As expected, using Discharge doubled the Starter Pikachu's Special Attack from 186 to 372.
Thread 12 "JobThread1" hit Breakpoint 5, 0x00000053285823c8 in ?? ()
$1 = 8192
$2 = "attack mod"
$3 = 186
$4 = "attack power before mod"

Thread 12 "JobThread1" hit Breakpoint 2, 0x0000005328582eb4 in ?? ()
$5 = 100
$6 = "attacker level"

Thread 12 "JobThread1" hit Breakpoint 4, 0x0000005328582ec0 in ?? ()
$7 = 372
$8 = "final attack power"

Thread 12 "JobThread1" hit Breakpoint 3, 0x0000005328582ec8 in ?? ()
$9 = 80
$10 = "move BP"

Thread 12 "JobThread1" hit Breakpoint 6, 0x0000005328583a50 in ?? ()
$11 = 4096
$12 = "damage mod"
$13 = 822
$14 = "damage before mod"

Thread 12 "JobThread1" hit Breakpoint 1, 0x0000005328583b5c in ?? ()
$15 = 822
$16 = "final damage"

Water Shuriken still requires the user to be an Ash Greninja with Battle Bond to get the 20 BP move x3 hits.
It does the 15 BP move if used by a Pikachu with Battle Bond or an Ash Greninja with Static.
greninja-2 with static using water shuriken

Thread 2 "MainThread" hit Breakpoint 2, 0x0000005328582ec0 in ?? ()
$1 = 342
$2 = "final attack power"

Thread 2 "MainThread" hit Breakpoint 1, 0x0000005328582ec8 in ?? ()
$3 = 15
$4 = "move BP"

Thread 2 "MainThread" hit Breakpoint 2, 0x0000005328582ec0 in ?? ()
$7 = 342
$8 = "final attack power"

Thread 2 "MainThread" hit Breakpoint 1, 0x0000005328582ec8 in ?? ()
$9 = 15
$10 = "move BP"

---
pikachu with battle bond using water shuriken

Thread 2 "MainThread" hit Breakpoint 3, 0x0000005328582ec0 in ?? ()
$1 = 136
$2 = "final attack power"

Thread 2 "MainThread" hit Breakpoint 2, 0x0000005328582ec8 in ?? ()
$3 = 15
$4 = "move BP"

Thread 2 "MainThread" hit Breakpoint 3, 0x0000005328582ec0 in ?? ()
$7 = 136
$8 = "final attack power"

Thread 2 "MainThread" hit Breakpoint 2, 0x0000005328582ec8 in ?? ()
$9 = 15
$10 = "move BP"

Thread 2 "MainThread" hit Breakpoint 3, 0x0000005328582ec0 in ?? ()
$13 = 136
$14 = "final attack power"

Thread 2 "MainThread" hit Breakpoint 2, 0x0000005328582ec8 in ?? ()
$15 = 15
$16 = "move BP"

----
greninja-2 with battle bond using water shuriken

Thread 2 "MainThread" hit Breakpoint 3, 0x0000005328582ec0 in ?? ()
$43 = 342
$44 = "final attack power"

Thread 2 "MainThread" hit Breakpoint 2, 0x0000005328582ec8 in ?? ()
$45 = 20
$46 = "move BP"

Thread 2 "MainThread" hit Breakpoint 3, 0x0000005328582ec0 in ?? ()
$49 = 342
$50 = "final attack power"

Thread 2 "MainThread" hit Breakpoint 2, 0x0000005328582ec8 in ?? ()
$51 = 20
$52 = "move BP"

Thread 2 "MainThread" hit Breakpoint 3, 0x0000005328582ec0 in ?? ()
$55 = 342
$56 = "final attack power"

Thread 2 "MainThread" hit Breakpoint 2, 0x0000005328582ec8 in ?? ()
$57 = 20
$58 = "move BP"

I let this question sit for a week since checking the stats is technically doable by anyone with a modded console, so if you're interested in how to hack these alternate forms for testing, feel free to contact me.
 
If an Electric/Flying type has Tera Shell while Delta Stream is active, which effect takes precedence if that Pokémon takes an Electric type attack?
I used Reflect Type to turn Terapagos into an Electric/Flying type and under Delta Stream, the message from Delta Stream goes off and then Terapagos takes not very effective damage. Tera Shell doesn't go off at all.
Here is the footage: https://imgur.com/a/tera-shell-delta-stream-electric-flying-U2FtIDb

Delta Stream is not properly coded to interact with new mechanics as Mega Rayquaza is not in the game. See also Desolate Land not interacting with Protosynthesis/Orichalcum Pulse.

The order doesn't really matter though Delta Stream makes all of Flying's weaknesses into neutralities, Tera Shell makes every move that isn't already not very effective not very effective. Flying not being weak to Electric wouldn't change that Tera Shell makes the move not very effective anyway. Same as how Tera Shell overrides the extra Fire weakness caused by Tar Shot, the actual type matchups are irrelevant unless the target already resists or double resists the attack. The only thing that would change is which message would proc.
Respectfully, I wish you would quit telling people their questions are not worth answering or providing untested, speculative answers throughout this thread. As a researcher who occasionally looks at this thread for things to test, I find it incredibly difficult to figure out if what you are citing is a real answer or something you made up; I am not primarily a mechanics researcher who keeps track of every new minute development. This is discouraging for people who both ask questions and answer questions.
 
Last edited:
I had a theory about Glaive Rush being a nonstandard modifier in the damage formula, and Anubis confirmed that suspicion. She found that Glaive Rush's damage increase is not a typical modifier, but instead slotted in between weather and critical hits by multiplying by 200, then dividing by 100. See dumps at different stages of the damage formula by Anubis.

In addition, critical hits in Gen 9 are calculated by multiplying by 150, then dividing by 100. This is different from past games (for example, we can see in Gen 8 via BDSP that critical hits multiplied by 15 and divided by 10). Not especially relevant except for some niche damage overflow setups.
 
Last edited:
I had a theory about Glaive Rush being a nonstandard modifier in the damage formula, and Anubis confirmed that suspicion. She found that Glaive Rush's damage increase is not a typical modifier, but instead slotted in between weather and critical hits by multiplying by 200, then dividing by 100. See dumps at different stages of the damage formula by Anubis.

In addition, critical hits in Gen 9 are calculated by multiplying by 150, then dividing by 100. This is different from past games (for example, we can see in Gen 8 via BDSP that critical hits multiplied by 15 and divided by 10). Not especially relevant except for some niche damage overflow setups.
Just to clarify, I think this would mean that doing 328 damage before glaive rush would overflow to doing only 1, right? Or am I understanding it wrong?
 
Just to clarify, I think this would mean that doing 328 damage before glaive rush would overflow to doing only 1, right? Or am I understanding it wrong?
No - the variable used for keeping track of damage in that step of the damage formula is 32-bit unsigned. So you would need the damage to reach at least 21474837 damage at that point for 21474837 * 200 to jump past 2^32.
 
Questions about Body Press: last generation, Body Press was only boosted by Defense stage boosts, not any other passive Defensive boost (Evolite or Fluffy for example). Is this true of a Defense Protosynthesis/Quark Drive boost and Snow boost as well? If the Defense Protosynthesis/Quark Drive boost does not apply, does the Attack Protosynthesis/Quark Drive boost increase damage (similar to Choice Band interaction)?
Body Press is boosted by Booster Attack, not Defense, similar to Choice Band and Sword of Ruin
Snow unfortunately does not help Body Press do more damage. Luckily this only affects Crawbrawler and Lapras
 
During switch-ins, when does Symbiosis activate? For example, Oranguru + Booster Energy Iron Valiant vs Booster Energy Iron Hands. Does Symbiosis activate before Iron Hands' Booster Energy?
 
I was fixing some interactions between crystal-free Z-Moves (Hackmons) and certain moves: Disable, Encore, Imprison and Taunt.
I don’t know if anyone can test these interactions with Max Moves used by non-Dynamaxed Pokémon.

The current PR is here https://github.com/smogon/pokemon-showdown/pull/11090
 
Last edited:
Symbiosis activation timing
TL;DR: Based on my current knowledge, Symbiosis always activates right after the ally’s item is consumed, EXCEPT after Gen 6 during move executions, where it waits for the execution to end.



I usually don’t report things here (I report them on the PRs), but I discovered something very cool that may raise more questions and encourage people to explore it further. I’m also not used to recording videos, so I’ll have to explain it in writing.
I was fixing some Symbiosis bugs. So far, we knew that:
  • In Gen 6, if Eject Button activates, Symbiosis would activate before the Pokémon switched out;
  • After Gen 6, if Eject Button activates, Symbiosis would not activate (the Pokémon would switch out first);
  • There was a bug reported that, in Gen 9, if Power Herb is consumed, Symbiosis would only activate after the move finished.
That made me ask a question: what if in Gen 6, Symbiosis activates right after the item is consumed, and after Gen 6, it only activates after the move is completely executed?
I searched the Bulbapedia page for Symbiosis (https://bulbapedia.bulbagarden.net/wiki/Symbiosis_(Ability)#Effect), and it said exactly this for Gems:

Generation VI​

If the ally of a Pokémon with Symbiosis consumes a Gem by using a move, Symbiosis activates immediately.

Generation VII​

If the ally of a Pokémon with Symbiosis consumes a Gem by using a move, Symbiosis does not activate until after the move is executed.
But Gems have some weird interactions, so I tested it myself.

I tested Florges with Symbiosis and Life Orb, paired with Venusaur with Power Herb. When Venusaur used Solar Beam in Pokémon X, it would receive the Life Orb before the move executed and would take the recoil. In Pokémon Ultra Sun, it would only get the Life Orb after the move executed and would not take any recoil.
The last question I had was: "what about switches?"

In this video, DarkFE shows that Symbiosis activates right after Booster Energy is consumed, even before Quark Drive activates.

So, my current thesis is: Symbiosis always activates right after the ally’s item is consumed, EXCEPT after Gen 6 during move executions, where it waits for the execution to end.

This is it for me—I have a kinda difficult time testing things because of my lack of knowledge about software (especially for the Switch games), but feel free to test and report things so I can implement them :))

Edit: The PR that implements this is here https://github.com/smogon/pokemon-showdown/pull/10898
 
Last edited:
Back
Top