Open Aeliko opened 2 months ago
Order | Effect | Text | Stomping Tantrum? | If multiple are present? | Additional notes | Vanilla Location | Implementation Remarks |
---|---|---|---|---|---|---|---|
1 | Recharge from a move that requires recharging | [Pokemon] must recharge! | No | N/A | e.g. Hyper Beam, Blast Burn, etc. | ov12_0224B528 | |
2 | Sleep turn | [Pokemon] is fast asleep. | Yes | N/A | Check is skipped is using Sleep Talk or Snore | ov12_0224B528 | |
Waking up from sleep | [Pokemon] woke up! | N/A | N/A | ov12_0224B528 | |||
Continued to be frozen | [Pokemon] is frozen solid! | Yes | N/A | Check is skipped if using a move that auto-thaws, e.g. Flare Blitz | ov12_0224B528 | ||
Thawing from freeze naturally | [Pokemon] thawed out! | N/A | N/A | Check is skipped if using a move that auto-thaws, e.g. Flare Blitz | ov12_0224B528 | ||
3 | No PP remaining for move | [Pokemon] used [move]! But there was no PP left for the move! | Yes | N/A | The trainer throws out their arm. | ov12_0224C5F8 | |
G7_1 | If move is Z powered, display Z dance, and if move is status, APPLY Z effect | ||||||
4 | Truant | (Truant triggers) [Pokemon] is loafing around! | Yes | N/A | ov12_0224B528 | ||
5 | Focus Punch loses focus | [Pokemon] lost its focus and couldn't move! | Yes | N/A | effect_script_0170_HIT_LAST_WHIFF_IF_HIT.s, subscript_0007_MISSED.s | ||
6 | Flinch | [Pokemon] flinched and couldn't move! | Yes | N/A | ov12_0224B528 | ||
7 | Disabled | [Pokemon]'s [move] is disabled! | Yes | N/A | ov12_0224B528 | ||
G7_2 | Heal Block | ov12_0224B528 | Could test using Psychic Noise | ||||
8 | Gravity | [Pokemon] can't use [move] because of gravity! | Yes | N/A | ov12_0224B528 | ||
Throat Chop | The effects of Throat Chop prevent [Pokemon] from using certain moves! | Yes | N/A | Modernise | |||
9 | Using a move you're not Choice locked into | [Pokemon] used move! But it failed! | Yes | N/A | Choice item lock glitch is easiest to set this up; Choice lock -> Magic Room -> Trick / Knock Off choice item -> undo Magic Room | Modernise | |
10 | Taunt | [Pokemon] can't use [move] after the taunt! | Yes | N/A | ov12_0224B528 | ||
11 | Imprison | [Pokemon] can't use its sealed [move]! | Yes | N/A | ov12_0224B528 | ||
12 | Self-hit confusion damage | [Pokemon] is confused! (if it hits itself) It hurt itself in its confusion! | Yes | N/A | ov12_0224B528 | ||
Confusion wearing off | [Pokemon] snapped out of its confusion! | N/A | N/A | ov12_0224B528 | |||
13 | Full paralysis | [Pokemon] is paralyzed! It can't move! | Yes | N/A | ov12_0224B528 | ||
14 | Infatuation | [Pokemon] is immobilized by love! | Yes | N/A | ov12_0224B528 | ||
Infatuation check | [Pokemon] is in love with [Pokemon that originally infatuated]! | N/A | N/A | ov12_0224B528 | |||
15 | Sleep Talk / Snore sleep announcement | [Pokemon] is fast asleep. | N/A | N/A | effect_script_0092_DAMAGE_WHILE_ASLEEP.s |
Order | Effect | Text | Stomping Tantrum? | If multiple are present? | Additional notes | Vanilla Location | Implementation Remarks |
---|---|---|---|---|---|---|---|
16 | Submoves | N/A | Replace the current move and repeat check 8. Submove announcement guarantees PP deduction. The trainer throws out their arm in PvP battles except for Metronome and Nature Power. | ||||
Copycat | [Pokemon] used Copycat! (check 8 begins) | N/A | N/A | effect_script_0242_USE_LAST_USED_MOVE.s | |||
Metronome | [Pokemon] used Metronome! Waggling a finger let it use [move]! (check 8 begins) | N/A | N/A | effect_script_0083_CALL_RANDOM_MOVE.s | |||
Nature Power | [Pokemon] used Nature Power! Nature Power turned into [move]! (check 8 begins) | N/A | N/A | effect_script_0173_NATURE_POWER.s | |||
Sleep Talk submove | [Pokemon] used Sleep Talk! (check 8 begins) | N/A | N/A | effect_script_0097_USE_RANDOM_LEARNED_MOVE_SLEEP.s | |||
Sleep Talk with no eligible moves to call | But it failed! | Yes | N/A | With animations off, it also plays "[Pokemon] used Sleep Talk!" between the messages. Regardless of animations, check 8 does NOT begin. | effect_script_0097_USE_RANDOM_LEARNED_MOVE_SLEEP.s | ||
17 | Autothaw freeze from certain moves | [Pokemon]'s [move] melted the ice! | N/A | N/A | All checks that can be run will run for the autothaw move. For example, a Pokemon using Flare Blitz while frozen could be prevented from thawing because of infatuation, Imprison, etc. | ov12_0224B528 | |
18 | Stance Change | (Ability triggers) Changed to [Blade / Shield] Forme! | N/A | N/A | ServerWazaBefore | ||
19 | Move is announced | [Pokemon] used [move]! | N/A | N/A | Move announcement guarantees PP deduction. The trainer throws out their arm. | ||
20 | Check for move type change from type-changing Ability (non-Max Move) | N/A | N/A | N/A | GetAdjustedMoveTypeBasics | ||
21 | Set move type for Multi-Attack / Techno Blast Terrain Pulse / Weather Ball | N/A | N/A | N/A | This will override move type changes from check 18. | GetDynamicMoveType | |
22 | Check for move type change from Electrify / Plasma Fists | N/A | N/A | N/A | Modernise | ||
23 | Check for move type change from type-changing Ability (Max Move) | N/A | N/A | N/A | Modernise | ||
24 | Set random target for multi-turn moves like Outrage | N/A | N/A | N/A | ov12_022506D4 | ||
Set random target for single-target submoves (e.g. Sleep Talk calling single-target move like Scald) | N/A | N/A | N/A | ov12_022506D4 (?) | |||
Set random target for single-target move if the player timed out on move selection | N/A | N/A | N/A | I don’t think Link Battles have timers in G4 | |||
Set random target for Ghost-type Curse | N/A | N/A | N/A | Modernise | Ghost-type Pokémon are no longer able to choose targets for Curse in a Double Battle, and will always attempt to inflict the curse on a random opponent. | ||
25 | Check for target redirection via Lightning Rod / Storm Drain | (Ability triggers) [Pokemon] took the attack! | N/A | Raw Speed with non-RNG speed tie | Check is skipped for effects that ignore redirection. | ov12_02250A18 | |
26 | Check for target redirection via Follow Me / Rage Powder | N/A | N/A | First use of Follow Me / Rage Powder takes precedence | Check is skipped for effects that ignore redirection. | ov12_022506D4 | |
27 | Deduct the appropriate amount of PP from the move | N/A | N/A | N/A | Can vary due to Pressure. | ||
28 | If user has a Choice item or Gorilla Tactics, lock into the chosen move | N/A | N/A | Choice item lock > Gorilla Tactics lock | Modernise | ||
29 | Burn Up when user is not Fire-type | But it failed! | Yes | N/A | A frozen Pokemon using non-Fire type Burn Up will not thaw; it will just play "frozen solid" without consuming PP. | Modernise | |
30 | Primal Weather | Yes | N/A | Hacking-only | |||
Desolate Land stopping Water-type moves | The Water-type attack evaporated in the extremely harsh sunlight! | MoveCheckDamageNegatingAbilities | |||||
Primordial Sea stopping Fire-type moves | The Fire-type attack fizzled out in the heavy rain! | MoveCheckDamageNegatingAbilities | |||||
31 | Micle Berry's accuracy check consumed | N/A | N/A | N/A | BattleSystem_CheckMoveHit |
Order | Effect | Text | Stomping Tantrum? | If multiple are present? | Additional notes | Vanilla Location | Implementation Remarks |
---|---|---|---|---|---|---|---|
32 | Move failure checks, part 1 | ||||||
Aura Wheel when user isn't Morpeko | But [Pokemon] can't use the move! | Yes | N/A | Modernise | |||
Aurora Veil when it is not hailing | But it failed! | Yes | N/A | Modernise | |||
Clangorous Soul when user lacks HP to execute the move | But it failed! | Yes | N/A | Modernise | |||
Counter / Mirror Coat / Metal Burst when user hasn't been damaged | But it failed! | Yes | N/A | effect_script_0089_COUNTER.s, effect_script_0144_MIRROR_COAT.s, effect_script_0227_METAL_BURST.s | |||
Destiny Bond when user has "Destiny Bond" Y-info volatile | But it failed! | Yes | N/A | Modernise | |||
Fake Out / First Impression / Mat Block after user has already performed an action | But it failed! | Yes | N/A | effect_script_0158_ALWAYS_FLINCH_FIRST_TURN_ONLY.s | |||
Fling with no item | But it failed! | Yes | N/A | effect_script_0233_FLING.s | |||
Follow Me / Rage Powder in singles | But it failed! | Yes | N/A | Modernise | |||
Future Sight / Doom Desire into target that already has future attack | But it failed! | Yes | N/A | effect_script_0148_HIT_IN_3_TURNS.s | |||
Last Resort when user has not used all its other moves once or user does not have Last Resort in its moveslot | But it failed! | Yes | N/A | Easiest way to trigger "doesn't have Last Resort in moveslot" failure is with Copycat | effect_script_0246_FAIL_IF_NOT_USED_ALL_OTHER_MOVES.s | ||
No Retreat when user has Can't Escape flag set by No Retreat | But it failed! | Yes | N/A | The flag must be set by No Retreat; Mean Look, Block, etc. won't count and do not place any restriction on move usage. | Modernise | ||
Poltergeist when the target does not have an item | But it failed! | Yes | N/A | Modernise | |||
Protecting move when user failed to repeat a successive protecting move | But it failed! | Yes | N/A | subscript_0087_PROTECT.s | |||
Protecting move when move is the last used in the turn | But it failed! | Yes | N/A | subscript_0087_PROTECT.s | |||
Rest while user is already asleep | But it failed! | Yes | N/A | Called via Sleep Talk / Comatose | effect_script_0037_RECOVER_HEALTH_AND_SLEEP.s | ||
Sucker Punch when target doesn't have an eligible move pending | But it failed! | Yes | N/A | effect_script_0248_HIT_FIRST_IF_TARGET_ATTACKING.s | |||
Sleep Talk / Snore while not asleep | But it failed! | Yes | N/A | effect_script_0097_USE_RANDOM_LEARNED_MOVE_SLEEP.s | |||
Steel Roller when there is no Terrain | But it failed! | Yes | N/A | Modernise | |||
Stockpile with 3 Stockpiles already | But it failed! | Yes | N/A | effect_script_0160_STOCKPILE.s, subscript_0124_STOCKPILE.s | |||
Stuff Cheeks when user doesn't have a Berry | But it failed! | Yes | N/A | This has to be done mid-turn with Trick, otherwise it blocks at move selection with "It can't use the move because it doesn't have a Berry!" | Modernise | ||
Swallow / Spit Up with 0 Stockpiles | But it failed! | Yes | N/A | effect_script_0161_SPIT_UP.s, effect_script_0162_SWALLOW.s | |||
Teleport with nothing to switch to | But it failed! | Yes | N/A | Modernise | |||
Weight moves into Dynamax | [Pokemon] shook its head. It seems like it can't use this move... | Yes | N/A | Does not reveal target, because it announces the user's name | Modernise | ||
33 | Rest while user is at full HP | [Pokemon]'s HP is full! | Yes | N/A | subscript_0055_REST.s | ||
34 | Rest while user has Insomnia / Vital Spirit | (Ability triggers) [Pokemon] stayed awake! | Yes | N/A | Only for sure happens before Rest vs. Uproar and after Rest at full HP | subscript_0055_REST.s | |
35 | Ability failures, part 1 | Raw Speed with non-RNG speed tie | |||||
Damp | (Ability triggers) [Pokemon] cannot use [move]! | Yes | effect_script_0007_HALVE_DEFENSE.s | ||||
Dazzling / Queenly Majesty | (Ability triggers) [Pokemon] cannot use [move]! | Yes | Modernise | ||||
36 | Interruptible moves | ||||||
Future Sight / Doom Desire | [Pokemon] foresaw an attack! | No | N/A | The move checks end here. | move_script_0248_FUTURE_SIGHT.s | ||
Pledge move combos | [Pokemon] is waiting for [ally Pokemon]'s move... | Yes | N/A | The move checks end here, and the ally starts over at the start of the checks again. | Modernise | ||
The two moves have become one! It's a combined move! | N/A | N/A | If the second user of the Pledge combo passed all checks up to this point. | Modernise | |||
37 | Libero / Protean | (Ability triggers) [Pokemon]'s type changed to [move type]! | N/A | N/A | Does not trigger if user is of same type as move | ServerWazaBefore | |
38 | Charging move message | Varies on move | N/A | N/A | Power Herb triggers here; Skull Bash Defense boost triggers here; Meteor Beam Sp. Atk boost triggers here | effect_script_0026_BIDE.s, effect_script_0039_CHARGE_TURN_HIGH_CRIT.s, effect_script_0075_CHARGE_TURN_HIGH_CRIT_FLINCH.s, effect_script_0145_CHARGE_TURN_DEF_UP.s, effect_script_0151_CHARGE_TURN_SUN_SKIPS.s, effect_script_0155_FLY.s, effect_script_0255_DIVE.s, effect_script_0256_DIG.s, effect_script_0263_BOUNCE. seffect_script_0272_SHADOW_FORCE.s, effect_script_0318_CHARGE_TURN_ATK_SP_ATK_SPEED_UP_2.s | |
G7_3 | Check if move is STOLEN by a pending Snatch (go back to step 12 for the Pokemon who snatched it) | ||||||
39 | Set flag to lose 100% HP from Explosion / Self-Destruct | N/A | N/A | N/A | Does not fail the move from this check alone, and does not reduce HP until before damage calculation. | effect_script_0007_HALVE_DEFENSE.s | |
40 | Failure due to no target for move or target is self when it shouldn't be | But it failed! | Yes | N/A | Example of target being itself when it shouldn't be: Ally Switch + attacking an ally. Dragon Darts and most status moves skip this check. | ||
41 | Set flag to lose 50% HP from Steel Beam | N/A | N/A | N/A | Does not fail the move from this check alone, and does not reduce HP until before damage calculation. | Modernise | |
G7_4 | Sky Drop: target is a teammate | ||||||
42 | Semi-invulnerability | [Pokemon] avoided the attack! | Yes | Ally -> opponent's left slot -> opponent's right slot | first turn of Fly, Phantom Force, etc. | BattleSystem_CheckMoveEffect | |
43 | Psychic Terrain | [Pokemon] is protected by the Psychic Terrain! | Yes | Opponent's left slot -> opponent's right slot | MoveCheckDamageNegatingAbilities |
Order | Effect | Text | Stomping Tantrum? | If multiple are present? | Additional notes | Vanilla Location | Implementation Remarks |
---|---|---|---|---|---|---|---|
44 | Teammate Protection Effects | First use of Quick Guard / Wide Guard / Crafty Shield takes precedence | |||||
Quick Guard | Quick Guard protected [Pokemon]! | No | Modernise | ||||
Wide Guard | Wide Guard protected [Pokemon]! | No | Modernise | ||||
Crafty Shield | Crafty Shield protected [Pokemon]! | No | Modernise | ||||
45 | Protect and equivalents (except Max Guard) | [Pokemon] protected itself! | No | Ally -> opponent's left slot -> opponent's right slot | Baneful Bunker, Detect, King's Shield, Obstruct, Protect, and Spiky Shield all belong here. | BattleSystem_CheckMoveEffect (?) | |
46 | Mat Block | [move] was blocked by the kicked-up mat! | No | Impossible to tell | Target is revealed via animation | Modernise | |
47 | Max Guard | [Pokemon] protected itself! | No | Opponent's left slot -> opponent's right slot | Modernise | ||
48 | Magic Coat | [Pokemon] bounced the [move] back! | Yes | Ally -> opponent's left slot -> opponent's right slot | Called moves meeting a fail condition will NOT double Stomping Tantrum. If the move is a spread move, set a flag for Magic Coat to trigger after all other targets have been resolved. |
ServerWazaKoyuuCheck | |
G7_5 | If move is Telekinesis, check for failure vs. Diglett / Dugtrio / Sandygast /Palossand / Mega Gengar, Smacked Down, or Ingrained target | ||||||
49 | Magic Bounce | (Ability triggers) [Pokemon] bounced the [move] back! | Yes | Ally -> opponent's left slot -> opponent's right slot | Called moves meeting a fail condition will NOT double Stomping Tantrum. If the move is a spread move, set a flag for Magic Bounce to trigger after all other targets have been resolved. |
Modernise | |
50 | Ability failures, part 2 | Ally -> opponent's left slot -> opponent's right slot | |||||
Dry Skin | (Ability triggers) It doesn't affect [Pokemon]... | Yes | If at full HP | MoveCheckDamageNegatingAbilities | |||
(Ability triggers) [Pokemon] had its HP restored. | Yes | If not at full HP | MoveCheckDamageNegatingAbilities | ||||
Flash Fire | (Ability triggers) The power of [Pokemon]'s Fire-type moves rose! | Yes | If it does not have a Flash Fire boost | MoveCheckDamageNegatingAbilities | |||
(Ability triggers) It doesn't affect [Pokemon]... | Yes | If it already has a Flash Fire boost | MoveCheckDamageNegatingAbilities | ||||
Lightning Rod | (Ability triggers) [Pokemon]'s Sp. Atk rose! | Yes | If not at +6 Sp. Atk | MoveCheckDamageNegatingAbilities | |||
(Ability triggers) It doesn't affect [Pokemon]... | Yes | If at +6 Sp. Atk | MoveCheckDamageNegatingAbilities | ||||
Overcoat | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Modernise | ||||
Sap Sipper | (Ability triggers) [Pokemon]'s Attack rose! | Yes | MoveCheckDamageNegatingAbilities | ||||
Soundproof | (Ability triggers) It doesn't affect [Pokemon]... | Yes | MoveCheckDamageNegatingAbilities | ||||
Storm Drain | (Ability triggers) [Pokemon]'s Sp. Atk rose! | Yes | If not at +6 Sp. Atk | MoveCheckDamageNegatingAbilities | |||
(Ability triggers) It doesn't affect [Pokemon]... | Yes | If at +6 Sp. Atk | MoveCheckDamageNegatingAbilities | ||||
Telepathy | (Ability triggers) [Pokemon] can't be hit by attacks from its ally Pokémon! | Yes | CalcAccuracy | Seems like wrong implementation in hg-engine | |||
Volt Absorb | (Ability triggers) It doesn't affect [Pokemon]... | Yes | If at full HP | MoveCheckDamageNegatingAbilities | |||
(Ability triggers) [Pokemon] had its HP restored. | Yes | If not at full HP | MoveCheckDamageNegatingAbilities | ||||
Water Absorb | (Ability triggers) It doesn't affect [Pokemon]... | Yes | If at full HP | MoveCheckDamageNegatingAbilities | |||
(Ability triggers) [Pokemon] had its HP restored. | Yes | If not at full HP | MoveCheckDamageNegatingAbilities | ||||
Wonder Guard | (Ability triggers) It doesn't affect [Pokemon]... | Yes | ServerDoTypeCalcMod | ||||
51 | Type chart immunity | It doesn't affect [Pokemon]... | Yes | Ally -> opponent's left slot -> opponent's right slot | The only status move checked here is Thunder Wave vs. Ground-types | ServerDoTypeCalcMod | |
52 | Levitate Ground-type immunity | (Ability triggers) It doesn't affect [Pokemon]... | Yes | Ally -> opponent's left slot -> opponent's right slot | ServerDoTypeCalcMod | ||
53 | Air Balloon / Magnet Rise Ground-type immunity | It doesn't affect [Pokemon]... | Yes | Ally -> opponent's left slot -> opponent's right slot | ServerDoTypeCalcMod | Wrong implementation | |
54 | Safety Goggles | [Pokemon] is not affected by [move] thanks to its Safety Goggles! | Yes | Opponent's left slot -> opponent's right slot | Modernise | ||
55 | Ability failures, part 3 | ||||||
Bulletproof | (Ability triggers) It doesn't affect [Pokémon]… | Yes | N/A | MoveCheckDamageNegatingAbilities | |||
Sticky Hold against Trick / Switcheroo / Corrosive Gas | (Ability triggers) It doesn't affect [Pokémon]… | Yes | Ally -> opponent's left slot -> opponent's right slot | Modernise | |||
56 | Type-based move condition immunities, part 1 | Opponent's left slot -> opponent's right slot | |||||
Dark-type Prankster immunity | It doesn't affect [Pokemon]... | Yes | CalcAccuracy | ||||
Ghost-type immunity to trapping moves | It doesn't affect [Pokemon]... | Yes | Block / Mean Look / Spider Web / Octolock | Modernise | |||
Grass-type powder immunity | It doesn't affect [Pokemon]... | Yes | CalcAccuracy | ||||
Ice-type immunity to Sheer Cold | It doesn't affect [Pokemon]... | Yes | ServerDoTypeCalcMod | ||||
G7_6 | Sky Drop on the way down: Flying type |
Order | Effect | Text | Stomping Tantrum? | If multiple are present? | Additional notes | Vanilla Location | Implementation Remarks |
---|---|---|---|---|---|---|---|
57 | Move failure checks, part 2 | ||||||
Attract into a target with same gender / genderless | It doesn't affect [Pokemon]... | Yes | N/A | subscript_0106_INFATUATE.s | |||
G7_7 | If move is Captivate, check for gender immunity | ||||||
Torment into Dynamax | It doesn't affect [Pokemon]... | Yes | N/A | Modernise | |||
Venom Drench when target is not poisoned | But it failed! | Yes | Stat failure success check | Modernise | |||
58 | Move failure checks, part 3 | ||||||
Attract into a target already infatuated | But it failed! | Yes | N/A | subscript_0106_INFATUATE.s | |||
Clangorous Soul / No Retreat with all stats maxed out | [Pokemon]'s [stat] won't go any higher! (repeat for Atk/Def/Sp.Atk/Sp.Def/Speed) | Yes | N/A | Modernise | |||
Coaching in singles or when there is no ally target available in doubles | But it failed! | Yes | N/A | Modernise | |||
Dream Eater when target is awake | It doesn't affect [Pokemon]... | Yes | N/A | effect_script_0008_RECOVER_DAMAGE_SLEEP.s | |||
Endeavor when target has equal or less HP than the user | It doesn't affect [Pokemon]... | Yes | N/A | effect_script_0189_SET_HP_EQUAL_TO_USER.s | |||
Ingrain when user already has Ingrain | But it failed! | Yes | N/A | effect_script_0181_GROUND_TRAP_USER_CONTINUOUS_HEAL.s | |||
Leech Seed when target already has Leech Seed | But it failed! | Yes | N/A | subscript_0068_LEECH_SEED_START.s | |||
OHKO moves against a target with higher level than the user / target is Dynamaxed | [Pokemon] is unaffected! | Yes | N/A | Modernise | |||
Perish Song when all targets have Perish Song | But it failed! | Yes | N/A | If another failure condition would prevent success (e.g. semi-invulernability), both failure messages play. | subscript_0101_PERISH_SONG_START.s | ||
Status move into target that already has that status | [Pokemon] is already [asleep / burned / paralyzed / poisoned / confused]! | Yes | Ally -> opponent's left slot -> opponent's right slot | Includes Toxic into regular poison and vice versa | subscript_0018_FALL_ASLEEP.s, subscript_0025_BURN.s, subscript_0031_PARALYZE.s, subscript_0022_POISON.s, subscript_0047_BADLY_POISON.s, subscript_0037_CONFUSE.s | ||
Status move into target that already has another major status condition (but not the same one) | But it failed! | Yes | Two "But it failed!" occur; highly probable to be opponent's left slot -> opponent's right slot | subscript_0018_FALL_ASLEEP.s, subscript_0025_BURN.s, subscript_0031_PARALYZE.s, subscript_0022_POISON.s, subscript_0047_BADLY_POISON.s, subscript_0037_CONFUSE.s | Not sure | ||
Stat changing moves that can't go any higher | [Pokemon]'s [stat] won't go any higher! | Yes | N/A | Individual subscripts | |||
Stat changing moves that can't go any lower | [Pokemon]'s [stat] won't go any lower! | Yes | Stat failure success check | Individual subscripts | |||
Stuff Cheeks with Defense maxed out | [Pokemon]'s Defense won't go any higher! | Yes | N/A | Modernise | |||
Torment when target already has Torment | But it failed! | Yes | N/A | subscript_0127_TORMENT_START.s | |||
Worry Seed when target has Insomnia / Truant | It doesn't affect [Pokemon]... | Yes | N/A | subscript_0167_GIVE_TARGET_INSOMNIA.s | |||
Yawn into target with status condition / already has Yawn | But it failed! | Yes | N/A | subscript_0141_YAWN.s | |||
G7_8 | Synchronoise: non-matching type | ||||||
59 | Type-based move condition immunities part 2 | ||||||
Electric-type paralysis immunity | It doesn't affect [Pokemon]... | Yes | N/A | subscript_0031_PARALYZE.s | Correct flags set? | ||
Fire-type burn immunity | It doesn't affect [Pokemon]... | Yes | N/A | subscript_0025_BURN.s | Correct flags set? | ||
Grass-type Leech Seed immunity | It doesn't affect [Pokemon]... | Yes | N/A | subscript_0068_LEECH_SEED_START.s | Correct flags set? | ||
Poison / Steel-type poison / badly poison immunity | It doesn't affect [Pokemon]... | Yes | Opponent's left slot -> opponent's right slot | Corrosion bypasses this check | subscript_0022_POISON.s, subscript_0047_BADLY_POISON.s | Correct flags set? | |
60 | Uproar stopping a sleep move other than Rest | But [Pokemon] can't sleep in an uproar! | Yes | N/A | subscript_0018_FALL_ASLEEP.s | ||
Uproar stopping Rest | But the uproar kept [Pokemon] awake! | No | N/A | subscript_0055_REST.s | |||
61 | Safeguard | [Pokemon] is protected by Safeguard! | Yes | Ally -> opponent's left slot -> opponent's right slot | subscript_0018_FALL_ASLEEP.s, subscript_0025_BURN.s, subscript_0031_PARALYZE.s, subscript_0022_POISON.s, subscript_0047_BADLY_POISON.s, subscript_0037_CONFUSE.s, subscript_0141_YAWN.s | ||
62 | Electric Terrain blocking sleep | [Pokemon] is protected by the Electric Terrain! | Yes | N/A | subscript_0018_FALL_ASLEEP.s, subscript_0141_YAWN.s | Wrong text | |
Electric Terrain blocking Rest | [Pokemon] is protected by the Electric Terrain! | No | N/A | subscript_0055_REST.s | Wrong text | ||
Misty Terrain blocking status | [Pokemon] surrounds itself with a protective mist! | Yes | Ally -> opponent's left slot -> opponent's right slot | subscript_0018_FALL_ASLEEP.s, subscript_0025_BURN.s, subscript_0031_PARALYZE.s, subscript_0022_POISON.s, subscript_0047_BADLY_POISON.s, subscript_0037_CONFUSE.s, subscript_0141_YAWN.s | Wrong text | ||
Misty Terrain blocking Rest | [Pokemon] surrounds itself with a protective mist! | No | N/A | subscript_0055_REST.s | Wrong text | ||
63 | Substitute blocking stat drop / Decorate | It doesn't affect [Pokemon]... | Yes | Stat failure success check | Individual subscripts, Modernise | Not sure | |
64 | Mist | [Pokemon] is protected by the mist! | Yes | Stat failure success check | Not sure |
Order | Effect | Text | Stomping Tantrum? | If multiple are present? | Additional notes | Vanilla Location | Implementation Remarks |
---|---|---|---|---|---|---|---|
65 | Ability failures, part 4 | ||||||
Stat-based failures | Stat failure success check | ||||||
Big Pecks | (Ability triggers) [Pokemon]'s Defense was not lowered! | Yes | If the move is Tickle, first attack will drop, then Big Pecks will prevent the Defense drop. | Individual subscripts, Modernise | Not sure | ||
Clear Body | (Ability triggers) [Pokemon]'s stats were not lowered! | Yes | Individual subscripts, Modernise | Not sure | |||
Flower Veil | (Ability triggers) [Pokemon] surrounded itself with a veil of petals! | Yes | Individual subscripts, Modernise | Not sure | |||
Full Metal Body | (Ability triggers) [Pokemon]'s stats were not lowered! | Yes | Individual subscripts, Modernise | Not sure | |||
Hyper Cutter | (Ability triggers) [Pokemon]'s Attack was not lowered! | Yes | If the move is Tickle, first Hyper Cutter will block the Attack drop, then Defense will drop. | Individual subscripts, Modernise | Not sure | ||
Keen Eye | (Ability triggers) [Pokemon]'s accuracy was not lowered! | Yes | Individual subscripts, Modernise | Not sure | |||
White Smoke | (Ability triggers) [Pokemon]'s stats were not lowered! | Yes | Individual subscripts, Modernise | Not sure | |||
Status condition-based failures | Raw Speed with non-RNG speed tie | ||||||
Comatose | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Hacking only | Individual subscripts, Modernise | Not sure | ||
Flower Veil | (Ability triggers) [Pokemon] surrounded itself with a veil of petals! | Yes | Individual subscripts, Modernise | Not sure | |||
Immunity | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Insomnia | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Leaf Guard | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Leaf Guard (Rest) | (Ability triggers) It doesn't affect [Pokemon]… | No | Individual subscripts, Modernise | Not sure | |||
Limber | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Oblivious | (Ability triggers) It doesn't affect [Pokémon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Own Tempo | (Ability triggers) [Pokemon] cannot be confused! | Yes | Individual subscripts, Modernise | Not sure | |||
Pastel Veil | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Shields Down | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Shields Down (Rest) | (Ability triggers) It doesn't affect [Pokemon]… | No | Individual subscripts, Modernise | Not sure | |||
Sweet Veil | (Ability triggers) [Pokemon] can't fall asleep due to a veil of sweetness! | Yes | Individual subscripts, Modernise | Not sure | |||
Sweet Veil (Rest) | (Ability triggers) [Pokemon] can't fall asleep due to a veil of sweetness! | No | Individual subscripts, Modernise | Not sure | |||
Vital Spirit | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Water Bubble | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Water Veil | (Ability triggers) It doesn't affect [Pokemon]… | Yes | Individual subscripts, Modernise | Not sure | |||
Other | |||||||
Aroma Veil (Attract, Torment) | (Ability triggers) [Pokémon] is protected by an aromatic veil! | Yes | Individual subscripts, Modernise | Not sure | |||
Sturdy against OHKO moves | (Ability triggers) It doesn't affect [Pokemon]… | Yes | N/A | Individual subscripts, Modernise | Not sure | ||
66 | Move accuracy | [Pokemon] avoided the attack! | Yes | Ally -> opponent's left slot -> opponent's right slot | CalcAccuracy | ||
67 | Substitute blocking effect other than stat drop | But it failed! | Yes | Consolidated into one "But it failed!" message | List of effects tested: attempting to inflict a major status condition, Acupressure, Block / Mean Look / Spider Web / Octolock, Electrify / Quash, Flower Shield, Forest's Curse / Trick-or-Treat / Soak / Magic Powder, Gastro Acid, Guard Split / Power Split, Heal Pulse, Leech Seed, Lock-On, Mind Reader, Pain Split, Psycho Shift, Purify, Simple Beam, Tar Shot, Topsy-Turvy, Transform, Worry Seed | Individual subscripts, Modernise | Not sure |
68 | Mirror Armor | (Ability triggers) (attempts to lower stats of the Pokemon it was targeted by) | No | Opponent's left slot -> opponent's right slot | Modernise | ||
69 | Roar / Whirlwind into Dynamaxed target | The move was blocked by the power of Dynamax! | No | N/A | Modernise | ||
70 | Roar / Whirlwind into Suction Cups target | (Ability triggers) [Pokemon] is anchored in place with its suction cups! | No | N/A | subscript_0091_FORCE_TARGET_TO_SWITCH_OR_FLEE.s | Wrong text | |
71 | Roar / Whirlwind into target with Ingrain | [Pokemon] is anchored in place with its roots! | No | N/A | subscript_0091_FORCE_TARGET_TO_SWITCH_OR_FLEE.s | Wrong text |
Order | Effect | Text | Stomping Tantrum? | If multiple are present? | Additional notes | Vanilla Location | Implementation Remarks |
---|---|---|---|---|---|---|---|
72 | Move failure checks, part 4 | ||||||
Ability failures | |||||||
Entrainment failures | But it failed! | No | N/A | Dynamax, same Ability, target / user cannot meet conditions for Entrainment, used into Truant | Modernise | ||
Gastro Acid into already has Gastro Acid / unchangeable ability | But it failed! | No | N/A | subscript_0163_SUPPRESS_TARGET_ABILITY.s | Modernise | ||
Role Play when target has same ability as user or cannot take target's Ability | But it failed! | No | N/A | effect_script_0178_COPY_ABILITY.s, subscript_0135_COPY_ABILITY.s | Unify checks | ||
Simple Beam into target that has Simple / unreplaceable Ability | But it failed! | No | N/A | Including into Truant | Modernise | ||
Skill Swap when target or user cannot swap Ability / target is Dynamaxed | But it failed! | No | N/A | subscript_0143_EXCHANGE_ABILITIES.s | |||
Worry Seed when target has unreplaceable Ability | But it failed! | No | N/A | Not including into Insomnia or Truant | subscript_0167_GIVE_TARGET_INSOMNIA.s | ||
Full HP Failures | |||||||
Heal Pulse / Floral Healing into target at full HP | [Pokemon]'s HP is full! | No | N/A | Modernise | |||
Jungle Healing when both targets are at full HP and have no status conditions | But it failed! | No | N/A | Always heals from user -> ally if multiple heals necessary; otherwise just fails or heals once | Modernise | ||
Life Dew into target at full HP | [Pokemon]'s HP is full! | No | N/A | Always heals from user -> ally; always plays both Pokemon healing or failing to heal | Modernise | ||
Pollen Puff into target at full HP | It doesn't affect [Pokemon]... | No | N/A | Modernise | |||
Self-target recovery moves when user has full HP | [Pokemon]'s HP is full! | No | N/A | subscript_0111_RECOVER_HP.s | |||
Stat-related failures | |||||||
Belly Drum when user is at less than 50% HP or already at +6 Attack | But it failed! | No | N/A | subscript_0120_BELLY_DRUM.s | |||
Flower Shield with no Grass-type targets | But it failed! | No | User -> ally -> opponent's left slot -> opponent's right slot | Modernise | |||
Strength Sap into target at -6 Attack | But it failed! | No | N/A | Modernise | |||
Swagger / Flatter when target is already at +6 and confused | [Pokemon]'s [stat] won't go any higher! | No | N/A | There is no failure message for already being confused. | |||
Topsy-Turvy when target has no stat changes | But it failed! | No | N/A | Modernise | |||
Type failures | |||||||
Conversion when user is already the same type as its first move | But it failed! | No | N/A | ||||
Conversion 2 into target that hasn't moved, or into target that most recently used Struggle | But it failed! | No | N/A | ||||
Reflect Type when user is same type as target | But it failed! | No | N/A | ||||
Soak into a pure Water-type / Magic Powder into a pure Psychic-type / Soak | Magic Powder into Silvally with RKS System | But it failed! | No | N/A | No animation plays for Soak failure. | |||
Trick-or-Treat into a Ghost-type / Forest's Curse into a Grass-type | But it failed! | No | N/A | Modernise | |||
Failures that always play additional text | Even if the move wasn't successful, play the associated text. If another failure condition would prevent success (e.g. semi-invulernability), both failure messages play. | ||||||
Aromatherapy while no party Pokemon have status conditions | But it failed! | No | Heals status from left slot -> right slot (does not fail from left -> right) | Text: "A soothing aroma wafted through the area!" Aromatherapy does not cure the status when an ally is behind a Substitute or the ally has Sap Sipper. It has no other means of failing on the user except by not having a status condition curable by Aromatherapy. Aromatherapy never doubles Stomping Tantrum, despite both Sap Sipper and Substitute independently causing Stomping Tantrum to double in non-Aromatherapy situations. We also know that Aromatherapy heals statuses normally from left -> right. But if you use left slot Aromatherapy with Sap Sipper in the right slot, it plays Sap Sipper, then but it failed. So I think Aromatherapy without status conditions is a post-Sub failure, and that the game would have doubled ST on Aromatherapy failing vs. Sap Sipper / Sub; however, because it will always either do a non-ST fail (user lacks status condition) or a success (user has status condition) we can't know for sure. |
|||
Heal Bell while no party Pokemon have status conditions | But it failed! | No | Heals status from left slot -> right slot (does not fail from left -> right) | Text: "A bell chimed!" | |||
Teatime when no Pokemon on the field have Berries to eat | But nothing happened! | No | Consumes Berry's from user -> ally -> opponent's left slot -> opponent's right slot | Text: "It's Teatime! Everyone dug into their Berries!" | Modernise | ||
Redundancy failures | |||||||
Attempting to create a weather / Terrain that already exists / field effect that already exists | But it failed! | No | N/A | Sample field effects: Tailwind, Reflect, Gravity | |||
Aqua Ring while the user already has Aqua Ring | But it failed! | No | N/A | ||||
Baton Pass / Healing Wish / Lunar Dance with nothing to switch to | But it failed! | No | N/A | ||||
Curse (user Ghost-type) into target that already has Curse | But it failed! | No | N/A | ||||
Entry hazard when that entry hazard is already fully set | But it failed! | No | N/A | ||||
Focus Energy when user already has "Critical Hit Boost" Y-info volatile | But it failed! | No | N/A | ||||
Helping Hand when target has already moved | But it failed! | No | N/A | Via two Helping Hands, or Instruct | |||
Lock-On / Mind Reader when user already has "Lock-On" Y-info volatile | But it failed! | No | N/A | ||||
Magnet Rise when user already has Magnet Rise | But it failed! | No | N/A | ||||
Substitute when user already has a Substitute | [Pokemon] already has a substitute! | No | N/A | ||||
Taunt into target already taunted | But it failed! | No | N/A | ||||
Trapping move while target already has "Can't Escape" Y-info volatile | But it failed! | No | N/A | Block / Mean Look / Spider Web / Octolock | |||
Wish while a Wish is already active | But it failed! | No | N/A | ||||
Other | |||||||
After You / Electrify / Quash into a target that has already moved | But it failed! | No | N/A | ||||
Corrosive Gas | But it failed to affect [Pokemon]! | No | Ally -> opponent's left slot -> opponent's right slot | Modernise | |||
Copycat with no moves to copy | But it failed! | No | N/A | ||||
Court Change when neither side has field effects | But it failed! | No | N/A | Modernise | |||
Disable failures | But it failed! | No | N/A | Disable into target that hasn't moved, Disable into Struggle, Disable into Max Move, Disable into already disabled target | |||
Encore failures | But it failed! | No | N/A | Target has not moved, or the target used a move that cannot be locked into Encore, or target's move has 0 PP, or target is Dynamaxed | |||
G7_9 | Sketch vs. no move, or ineligible move (note that Encore is checked earlier) | ||||||
Helping Hand / Ally Switch / Aromatic Mist / Hold Hands in singles or when there is no ally target available in doubles | But it failed! | No | N/A | ||||
Instruct failures | But it failed! | No | N/A | Target hasn't moved, target most recently used consecutively executed move (e.g. Rollout), target most recently used a move with recharge (Hyper Beam), target Dynamaxed, target most recently used Max Move, target's move has 0 PP | Modernise | ||
Mimic into target that hasn't moved / target used unMimicable move | But it failed! | No | N/A | ||||
Primal weather active and trying to set a regular weather | (if Primordial Sea) There is no relief from this heavy rain! | No | N/A | Hacking only | |||
(if Desolate Land) The extremely harsh sunlight was not lessened at all! | No | N/A | Hacking only | ||||
(if Delta Stream) The mysterious strong winds blow on regardless! | No | N/A | Hacking only | ||||
Psycho Shift when user has no status condition / target has same status condition / target has different status condition | But it failed! | No | N/A | ||||
Purify when target does not have a status condition | But it failed! | No | N/A | Neither being at full HP nor target not having status will double Stomping Tantrum | Modernise | ||
Roar / Whirlwind into target with no Pokemon remaining to switch into | But it failed! | No | N/A | ||||
Transform while user / target is already Transformed | But it failed! | No | N/A | ||||
Trick / Switcheroo with neither having items or has unTrickable item | But it failed! | No | N/A | e.g. Memory on Silvally |
Order | Effect | Text | Stomping Tantrum? | If multiple are present? | Additional notes | Vanilla Location | Implementation Remarks |
---|---|---|---|---|---|---|---|
73 | Move failure checks, part 5 | ||||||
Psycho Shift when target is immune to status condition | It doesn't affect [Pokemon]... | No | N/A | E.g. Paralyzed Psycho Shift into Electric-type, burned Psycho Shift into Fire-type | |||
Substitute when user lacks enough HP to execute the move | But it does not have enough HP left to make a substitute! | No | N/A | ||||
74 | Aroma Veil (Disable, Encore, Taunt) | (Ability triggers) [Pokémon] is protected by an aromatic veil! | No | Raw Speed with non-RNG speed tie | Modernise |
https://www.smogon.com/forums/threads/sword-shield-battle-mechanics-research.3655528/post-8548957
"We can use this data to determine, for example, what effects will and won't change a user's typing with Libero, where PP is deducted from the move, where Protect stops an effect before revealing an ability/item, what checks are blocked before/after Substitute, and so on."