• Check out the relaunch of our general collection, with classic designs and new ones by our very own Pissog!

Research Legends: Z-A Mechanics Research

I'm fairly sure I just found either a very weird mechanic, or a very broken bug.

If you:
- Approach an alpha without engaging
- Save the game
- Engage the alpha (my tests were by hitting it with an attack) (EDIT: It seems it might also occur by just aggro'ing too.)
- Close the game
- Reload the game
- Engage the alpha again

The alpha will now take far more damage than it did in the initial battle. In my testing, it's been consistently close to double the damage they'd take in the initial fight. I tested on both static and randomly generated alphas.

I'm thinking there's some sort of bug with the 252 HP evs it's meant to have not generating? I'd be very curious to see if someone else is interested in looking deeper into this odd behavior.
Cool find! I confirmed this happens, but the process can be simplified a bit. All you have to do is:
  1. Approach an alpha to load it (best not to aggro so you can save right away, but doesn't matter either way).
  2. Save the game.
  3. Close and reopen the game.
Now it should take higher damage.

It doesn't affect the EVs because you can catch it after it takes the higher damage and see that it still has 252 HP EVs.

While playing, I suspected the alpha Pokémon have some property that makes them take less damage and deal more damage. It's possible this attribute isn't saved which is why we are seeing this phenomenon. It might be possible to match some of our modifiers by comparing damage before and after rebooting on an alpha Pokémon.

Below was an example of Ice Fang damage from full HP before and after rebooting the game.
2025110123091200-406E08C26FAE3D61E0FDD492A49B8D8E.jpg

2025110123095200-406E08C26FAE3D61E0FDD492A49B8D8E.jpg
 
Last edited:
I'm 99.9% sure that "DamagePerTrainerBattle" and "DamagePerWildBattle" are just plain scalar. Modding both values to 100 make super fang deal exactly 50% damage. Also worth noting maybe for modders, both values are capped at 127 (half of 255), and applies to damage done to your mon as well.

There are definitely other values affecting damages done to alphas. When "DamagePerWildBattle" is modded to 100, super fang does exactly 50% to everything else but only ~30% to alphas, regardless of species. Their HP stat during battle is also different when caught, which makes me think there's a flat hp buff applied during initial battle thats not related to EV.

I put together a list of how many times alphas were hit with super fang (modded to deal 50% for easy calc) vs their actural hp when caught, so maybe someone can speculate a formula:

Hit with 1 Super Fang:
- everything caught with full HP
Hit with 2 Super Fang:
- everything caught with full HP
Hit with 3 Super Fang:
- caught with HP 169/198 ~84.85% (Scrafty, lv63, 6iv in hp)
- caught with HP 200/236 ~84.75%(Metagross, lv64, 31iv in hp)
Hit with 4 Super Fang:
- caught with HP 146/229 ~63.76% (Barbaracle, lv65, 31iv in hp)
- caught with HP 150/236 ~63.56%(Garbodor, lv64, 31iv in hp)
Hit with 5 Super Fang:
- caught with HP 119/247 ~48.18% (Malamar, lv65, 31iv in hp)
- caught with HP 88/183 ~48.09%(Carbink, lv63, 12iv in hp)
Hit with 6 Super Fang:
- caught with HP 63/173 ~36.42% (Charmander, lv63, 18iv in hp)
Hit with 7 Super Fang:
- caught with HP 53/195 ~27.18% (Totodile, lv63, 31iv in hp)
 
I haven't seen much analysis on this yet, so I wanted to dig into frame data (charge-up and attack time) and distance. The one thing about distance is that, very generally speaking, chaining certain moves after another feels really clunky, and it turns out distance ranges explain some of it.

But with all these various factors affecting how fast moves execute-- none of them affected by Speed-- I really wonder if there is an optimal case for investing in Speed for anyone.


Full analysis on r/stunfisk

Link to spreadsheet data (data from Serebii)
 
Do we know anything about how the probability of Pokemon sizes function?

The raw Scale Value Range implies that there should be a 6.25% chance of an XL or XS, a 12.5% chance of an L or S, and 62.50% chance of a Medium. (With Alphas overriding this)

In practice, I have across my entire save file caught
2 Extra Small
39 Smalls
Approximately 780 Medium/Large/Extra large/Alpha

I could count out the exact number of larger Pokemon if necessary, but at a glance that definitely looks extremely statistically improbable.
 
Do we know anything about how the probability of Pokemon sizes function?

The raw Scale Value Range implies that there should be a 6.25% chance of an XL or XS, a 12.5% chance of an L or S, and 62.50% chance of a Medium. (With Alphas overriding this)

In practice, I have across my entire save file caught
2 Extra Small
39 Smalls
Approximately 780 Medium/Large/Extra large/Alpha

I could count out the exact number of larger Pokemon if necessary, but at a glance that definitely looks extremely statistically improbable.
I believe it follows the usual triangular distribution like the other Switch games.

A Pokémon's height and weight are determined by two separate values between 0 and 255, the height scalar and weight scalar respectively. These values are obtained by generating two numbers, one between 0 and 127, and the other between 0 and 128. The numbers are then added together, which forms a triangular distribution that results in average-sized Pokémon being more common.
https://bulbapedia.bulbagarden.net/wiki/Size_and_weight_variation#Pokémon:_Let's_Go,_Pikachu!_and_Let's_Go,_Eevee!
 
Last edited:
I'm 99.9% sure that "DamagePerTrainerBattle" and "DamagePerWildBattle" are just plain scalar. Modding both values to 100 make super fang deal exactly 50% damage. Also worth noting maybe for modders, both values are capped at 127 (half of 255), and applies to damage done to your mon as well.

There are definitely other values affecting damages done to alphas. When "DamagePerWildBattle" is modded to 100, super fang does exactly 50% to everything else but only ~30% to alphas, regardless of species. Their HP stat during battle is also different when caught, which makes me think there's a flat hp buff applied during initial battle thats not related to EV.

I put together a list of how many times alphas were hit with super fang (modded to deal 50% for easy calc) vs their actural hp when caught, so maybe someone can speculate a formula:

Hit with 1 Super Fang:
- everything caught with full HP
Hit with 2 Super Fang:
- everything caught with full HP
Hit with 3 Super Fang:
- caught with HP 169/198 ~84.85% (Scrafty, lv63, 6iv in hp)
- caught with HP 200/236 ~84.75%(Metagross, lv64, 31iv in hp)
Hit with 4 Super Fang:
- caught with HP 146/229 ~63.76% (Barbaracle, lv65, 31iv in hp)
- caught with HP 150/236 ~63.56%(Garbodor, lv64, 31iv in hp)
Hit with 5 Super Fang:
- caught with HP 119/247 ~48.18% (Malamar, lv65, 31iv in hp)
- caught with HP 88/183 ~48.09%(Carbink, lv63, 12iv in hp)
Hit with 6 Super Fang:
- caught with HP 63/173 ~36.42% (Charmander, lv63, 18iv in hp)
Hit with 7 Super Fang:
- caught with HP 53/195 ~27.18% (Totodile, lv63, 31iv in hp)
Seems to me, like Alphas start with about 200% HP and still only take 25% damage from Super Fang in this example.
If caught, HP then gets capped at full (100%) HP.

No Super Fang: 200% (capped at 100%)
1 Super Fang: 200*0.75 = 150% (Capped at 100%)
2 Super Fangs: 200*0.75^2 = 112.5% (Capped at 100%)
3 Super Fangs: 200*0.75^3 ≈ 84.38%
4 Super Fangs: 200*0.75^4 ≈ 63.28%
5 Super Fangs: 200*0,75^5 ≈ 47.46%
6 Super Fangs: 200*0,75^6 ≈ 35,60%
7 Super Fangs: 200*0,75^7 ≈ 26,70%
 
Ok so I did some digging in the game files and found a few more stuff.

The data responsible for alpha scaling is "oyabun_setting". Here's the converted json:
JSON:
{
  "MaxTalentValueCount": 3,
  "StrengthenValue": 20
}
"MaxTalentValueCount" is almost certainly the amount of guaranteed max ivs, "StrengthenValue" I believe to be the buff amount given to alphas.
Combine this with the numbers ChrisNockerI posted, it looks like alphas not only have 2x hp but also take 50% less damage. Changing this number to 10, super fang will do 50% damage and alpha will be caught at that hp after 1 super fang. Changing it to 15, an alpha Sharpedo I caught after 3 super fangs has 64/144 hp, which is 150*(1-0.5/1.5)^3, consistent to what ChrisNockerI found. Alphas damage output also seems to be scaled by the same amount at 2x, although this needs more testing to verify.

I've also found some data entries for rogue mega buff located in encount_data_array. The first entry should be absol:
JSON:
{
  "id": "ect_boss_0359_01",
  "devNo": 359,
  "minLevel": 25,
  "maxLevel": 25,
  "sex": 0,
  "formNo": 0,
  "rare": 536870911,
  "tokusei": 255,
  "seikaku": 0,
  "talentScale": 255,
  "talentVNum": 0,
  "oyabunProbability": 0.0,
  "oyabunAdditionalLevel": 0,
  "talentValue": {
    "hp": 31,
    "atk": 31,
    "def": 31,
    "spAtk": 31,
    "spDef": 31,
    "agi": 31
  },
  "strengthenValue": {
    "hp": 220,
    "atk": 10,
    "def": 10,
    "spAtk": 10,
    "spDef": 10,
    "agi": 10
  },
  "wazaList": {
    "waza1": 399,
    "waza2": 232,
    "waza3": 109,
    "waza4": 43
  }
},
{
  "id": "btl_ect_boss_0359_01",
  "devNo": 359,
  "minLevel": 25,
  "maxLevel": 25,
  "sex": 0,
  "formNo": 1,
  "rare": 536870911,
  "tokusei": 255,
  "seikaku": 0,
  "talentScale": 255,
  "talentVNum": 0,
  "oyabunProbability": 0.0,
  "oyabunAdditionalLevel": 0,
  "talentValue": {
    "hp": 31,
    "atk": 31,
    "def": 31,
    "spAtk": 31,
    "spDef": 31,
    "agi": 31
  },
  "strengthenValue": {
    "hp": 220,
    "atk": 10,
    "def": 10,
    "spAtk": 10,
    "spDef": 10,
    "agi": 10
  },
  "wazaList": {
    "waza1": 399,
    "waza2": 232,
    "waza3": 109,
    "waza4": 43
  }
}
It's unclear if "strengthenValue" is in the same scaling unit used by alphas as I haven't done any testing on this.

On the waza data, AddMegaPower is indeed responsible for charging the mega gauge. Keep increasing this number eventually using 1 move will fully charge the gauge from 0.

"DamagePerMegaAura" is still a mystery to me. Changing this value from 0 to 127 doesn't seem to alter damages at all. Going above 127 will overflow it, and damage output and taken will become very little across the board. I tested on regular wild battle, alpha, rogue mega, and trainer battle, different mega gauge levels, and whether or not in mega form. So far none make a difference, and I'm starting to think it might be DLC gimmick.
 
On the waza data, AddMegaPower is indeed responsible for charging the mega gauge. Keep increasing this number eventually using 1 move will fully charge the gauge from 0.

"DamagePerMegaAura" is still a mystery to me. Changing this value from 0 to 127 doesn't seem to alter damages at all. Going above 127 will overflow it, and damage output and taken will become very little across the board. I tested on regular wild battle, alpha, rogue mega, and trainer battle, different mega gauge levels, and whether or not in mega form. So far none make a difference, and I'm starting to think it might be DLC gimmick.
This might be a long shot coming from someone not brushed up on the inner naming conventions and data level info, so apologies if this was discussed in a prior page and ruled out. Is there any chance this value relates to the Mega Power dropped by Rogue Megas, like the pick ups rather than the energy generated from moves? The fact that it affects damage intake/output if you overflow it probably says it wouldn't but it's at least a not-un-intuitive idea for the variable name (Damage Per Mega Aura as in the damage per unit dropped when you hit the boss)?
 
I've collected a few data points to try to figure out how the red and blue items work in in online battles. Since I only have a few observed damage values, this isn't definitive proof, but what I've seen so far is consistent with a 2x boost to the affected stats.

I'm working on a ZA fork of the damage calculator, which I used to predict damage ranges and compare them with damage observed in-game (shown below).

Code:
Red Item
    Case 1
        original calc:
        Lvl 98 252+ SpA Slowbro Surf vs. 252 HP / 4 SpD Metagross: 141-166 (38.7 - 45.6%) -- guaranteed 3HKO

        with LZA modifiers (0.7x for all damage, 2x SpA mod for red item):
        Lvl 98 252+ SpA Slowbro Red Item boosted Surf vs. 252 HP / 4 SpD Metagross: 196-231 (53.8 - 63.4%) -- guaranteed 2HKO

        observed value: 207

    Case 2
        original calc:
        252+ Atk Metagross Brick Break vs. 252 HP / 0 Def Noivern: 56-66 (14.9 - 17.6%) -- possible 6HKO
       
        with LZA modifiers (0.7x for all damage, 2x Atk mod for red item, 1.2x for resisted damage):
        252+ Atk Metagross Red Item boosted Brick Break vs. 252 HP / 0 Def Noivern: 93-109 (24.8 - 29.1%) -- 99.9% chance to 4HKO
       
        observed value: 97

    Case 3
        original calc:
        252+ Atk Metagross Zen Headbutt vs. Lvl 94 252 HP / 0 Def Skarmory: 59-69 (18.7 - 21.9%) -- possible 5HKO
       
        with LZA modifiers (0.7x for all damage, 2x Atk mod for red item, 1.2x for resisted damage):
        252+ Atk Metagross Red Item boosted Zen Headbutt vs. Lvl 98 252 HP / 0 Def Skarmory: 94-112 (28.7 - 34.2%) -- 2.1% chance to 3HKO      
       
        observed value: 104



Blue Item
    Case 1
        original calc:
        252+ SpA Life Orb Glaceon Icy Wind vs. 252 HP / 0 SpD Garchomp on a critical hit: 889-1050 (211.6 - 250%) -- guaranteed OHKO

        with LZA modifiers (0.7x for all damage, 2x SpD mod for blue item, 1.2x for resisted damage):
        252+ SpA Life Orb Glaceon Icy Wind vs. 252 HP / 0 SpD Blue Item boosted Garchomp on a critical hit: 316-375 (75.2 - 89.2%) -- guaranteed 2HKO

        observed value: 326
   
    Case 2
        original calc:
        252+ Atk Garchomp Earthquake vs. Lvl 91 252 HP / 4 Def 19 IVs Ampharos: 476-564 (136 - 161.1%) -- guaranteed OHKO

        with LZA modifiers (0.7x for all damage, 2x SpD mod for blue item, 1.3x for SE Plus moves):
        252+ Atk Garchomp Earthquake+ vs. Lvl 91 252 HP / 4 Def 19 IVs Blue Item boosted Ampharos: 218-257 (62.2 - 73.4%) -- guaranteed 2HKO

        observed value: 218
 
Metronome is picking a couple moves it shouldn't be able to. I spent the day spamming Metronome n the Justice Dojo and got footage of it picking Snarl and Breaking Swipe a number of times in both 1.0.1 and 1.0.2.

1762448027902.png

1762448063796.png


Here's a video of someone rolling Breaking Swipe during normal gameplay.

After nearly 2000 tries, these are the moves I haven't seen yet.

1762448251687.png


I'm sure Double Team is possible as it's the only "regular" move left and I'm going to keep trying until it happens.

The moves marked in yellow have not been pickable by Metronome in previous games/gens and the Metronome flag for these is False as expected, except for Snarl and Breaking Swipe. (Interestingly, Oblivion Wing used to be Metronome-able in Gen 6 & 7 but is no longer). Checking the rest of Snarl and Breaking Swipe's flags against the other disallowed moves doesn't show a consistent pattern. I wish I had something more concrete, but simply, this feels like unintended behavior.

Also, imo Nihil Light going unseen is a little conspicuous, though I can only offer speculation why. I've been checking various discords and forums and on twitter to see if anyone has posted about Metronome picking Nihil Light and I've yet to see proof it exists. Is it just confirmation bias that it seems odd that the only new move, the last move in the list, hasn't shown up yet?

In past generations, have moves had an equal chance to be picked by Metronome? Is it possible any of these unseen moves are just exceedingly rare? Please, drop a link if you've seen someone's gotten Nihil Light on video! I'm going mad over here!
 
Metronome is picking a couple moves it shouldn't be able to. I spent the day spamming Metronome n the Justice Dojo and got footage of it picking Snarl and Breaking Swipe a number of times in both 1.0.1 and 1.0.2.

View attachment 784773
View attachment 784774

Here's a video of someone rolling Breaking Swipe during normal gameplay.

After nearly 2000 tries, these are the moves I haven't seen yet.

View attachment 784776

I'm sure Double Team is possible as it's the only "regular" move left and I'm going to keep trying until it happens.

The moves marked in yellow have not been pickable by Metronome in previous games/gens and the Metronome flag for these is False as expected, except for Snarl and Breaking Swipe. (Interestingly, Oblivion Wing used to be Metronome-able in Gen 6 & 7 but is no longer). Checking the rest of Snarl and Breaking Swipe's flags against the other disallowed moves doesn't show a consistent pattern. I wish I had something more concrete, but simply, this feels like unintended behavior.

Also, imo Nihil Light going unseen is a little conspicuous, though I can only offer speculation why. I've been checking various discords and forums and on twitter to see if anyone has posted about Metronome picking Nihil Light and I've yet to see proof it exists. Is it just confirmation bias that it seems odd that the only new move, the last move in the list, hasn't shown up yet?

In past generations, have moves had an equal chance to be picked by Metronome? Is it possible any of these unseen moves are just exceedingly rare? Please, drop a link if you've seen someone's gotten Nihil Light on video! I'm going mad over here!

The general move table is functionally unused, with Nihil Light being a Core Enforcer clone in flags and all. The used move data is in https://github.com/projectpokemon/za-textport/blob/main/Raw/personal_waza_param_array.x.txt / https://github.com/projectpokemon/za-textport/blob/main/Raw/personal_waza_param_array.json and the Metronome flag for moves is IsYubiWoHuruPermit which should confirm these discrepancies.
 
Looking at the new arrays Anubis posted. The Real Time data table has the 247 entries corresponding to usable moves, plus about 400 more that likely represent various moves used by bosses and non-Pokemon enemies.

The personal table is interesting though. Moves have a minimum of two entries on the table, up to 3, where the values that differ are ExtensionType, Power and IsMamoruEnable (Protect-related). For most cases, the Power value is lower on the third entry EXCEPT for:
  • Rock Smash (which is increased from 40 to 90)
  • Core Enforcer (which is increased from 100 to 200, Nihil Light still has its own entry so it's not that)
  • Aqua Jet (which is increased from 30 to 45)
  • Liquidation, which is 85 on all three entries
  • Quick Attack (30 -> 40)
  • Take Down (90 ->100)
  • Twister (40 -> 45)
  • Whirlpool (20 -> 40)
Flamethrower, conversely, goes from 90 to 4. Additionally there's a flag "IsSick" that only applies to the third instance of Sludge Bomb, likely related to the Aron quest where you Sludge Bomb some metal, the only use of the move in the overworld. This is making me think that the third entries are possibly related to overworld function in some way.
ExtentionType 2 is the moves when used by the Rogue Megas. I was able to set up some debugging breakpoints like I did for SV so I can go through the details of the damage formula, and noticed that Rogue Mega Dragonite is hitting me with Flamethrower with BP of 4, Outrage with BP of 17, and Air Slash with BP of 25.

Why is the damage so low on many of them? When I look at my debug log, there are whole stretches of the damage from the same attack even though it used the move once, so I think they dialed down the BP of each move and made them more into spread effects. This would keep the Rogue Megas from instantly one-shotting you with 120 BP moves, allow it to hit both you and the NPC ally, and give you some leeway if you're good at dodging/running.

For example, when Dragonite used Outrage against my Florges and Taunie's Meganium, it hit them both a total of 8 times with a BP of 17 each time.
 
Last edited:
Back
Top