Appearance
Contrary - Ability ID 126
In-Game Description
"Stat raises turn into stat drops for this Pokémon and vice versa."
Extended In-Game Description
For use in Elite Redux extended ability UI (280-300 chars max)
Contrary reverses all stat changes affecting this Pokémon. Stat increases become decreases and vice versa. Works with self-inflicted changes (moves like Overheat, Leaf Storm), opponent moves (Intimidate, Growl), and abilities (Simple). The reversed stats still respect the +6/-6 stage limits.
Character count: 292
Detailed Mechanical Explanation
For Discord/reference use
CONTRARY is a stat-manipulation ability that reverses the direction of all stat changes affecting the Pokémon.
Core Mechanics:
- Trigger: All stat changes, regardless of source
- Effect: Multiplies the stat change value by -1 (
statValue *= -1
) - Scope: Affects Attack, Defense, Speed, Special Attack, Special Defense, Accuracy, and Evasion
- Limits: Reversed stats still respect the standard -6 to +6 stage limits
Technical Implementation:
c
// In ChangeStatBuffs function (battle_script_commands.c:9616-9621)
if (BATTLER_HAS_ABILITY(battler, ABILITY_CONTRARY)) {
statValue *= -1;
if (updateMoveEffect) {
gBattleScripting.moveEffect = ReverseStatChangeMoveEffect(gBattleScripting.moveEffect);
}
}
The ability also reverses move effects through ReverseStatChangeMoveEffect()
, which converts effects like:
MOVE_EFFECT_ATK_PLUS_1
→MOVE_EFFECT_ATK_MINUS_1
MOVE_EFFECT_DEF_MINUS_2
→MOVE_EFFECT_DEF_PLUS_2
- And all other stat change effects
Interaction Order:
- Contrary check: Stat value is reversed first
- Simple interaction: If the Pokémon also has Simple, the reversed value is then doubled
- Other modifiers: Subdue and similar effects apply after Contrary
c
// Order of operations in ChangeStatBuffs:
if (BATTLER_HAS_ABILITY(battler, ABILITY_CONTRARY)) {
statValue *= -1; // Step 1: Reverse
}
if (BattlerHasAbility(battler, ABILITY_SIMPLE, FALSE)) {
statValue *= 2; // Step 2: Double if Simple
}
Affected Sources:
- Self-inflicted moves: Overheat (-2 SpA → +2 SpA), Close Combat (-1 Def/SpD → +1 Def/SpD), V-Create (-1 Def/SpD → +1 Def/SpD)
- Opponent moves: Growl (-1 Atk → +1 Atk), Leer (-1 Def → +1 Def)
- Abilities: Intimidate (-1 Atk → +1 Atk), Download effects
- Items: Stat-boosting berries, White Herb (prevents stat drops, so Contrary makes them prevent stat rises)
- Battle effects: Sticky Web (-1 Spe → +1 Spe), stat-changing Z-moves
Battle Message Changes:
The ability also changes battle text through BufferStatChange()
:
- "Attack fell!" becomes "Attack rose!" and vice versa
- Messages are swapped in real-time to match the actual effect
Strategic Applications:
- Power moves with drawbacks: Leaf Storm, Draco Meteor, Overheat become setup moves
- Intimidate immunity: Turns Attack drops into Attack boosts
- Sticky Web weakness: Entry hazards that lower Speed become Speed boosts
- Stat-drop moves: King's Shield, Icy Wind become beneficial to the user
Example Damage Calculations:
Serperior with Contrary using Leaf Storm:
- Leaf Storm: 130 BP, normally -2 SpA
- With Contrary: 130 BP, +2 SpA instead
- Next Leaf Storm: 130 BP × 1.5 (SpA boost) = 195 effective BP
- After 3 uses: +6 SpA, Leaf Storm hits with ~260 effective BP
Common Users:
Notable Pokémon with Contrary in Elite Redux:
- Serperior line (Snivy evolution): Grass starter with access to Leaf Storm
- Inkay/Malamar: Dark/Psychic types with Topsy-Turvy synergy
- Shuckle: Defensive user that benefits from stat drop immunity
- Various legendaries: Including Houndoom-Redux and Enamorus forms
Competitive Interactions:
- Simple + Contrary: Stat changes are reversed then doubled (e.g., -1 becomes +2)
- Unaware opponents: Cannot ignore Contrary-boosted stats
- Haze/Clear Smog: Still resets stats normally, ignoring Contrary
- Topsy-Turvy: Reverses stats again, effectively canceling Contrary for that turn
Counters:
- Haze users: Reset all stat changes
- Spectral Thief: Steals stat boosts (treats Contrary boosts as normal boosts)
- Clear Smog: Resets target's stats while dealing damage
- Status moves: Paralysis, sleep, etc. bypass stat manipulation entirely
- Fixed damage: Seismic Toss, Night Shade ignore stat changes
Synergies:
- Self-debuffing moves: V-Create, Close Combat, Superpower, Hammer Arm
- High-power special moves: Overheat, Draco Meteor, Leaf Storm, Psycho Boost
- Entry hazard setup: Benefits from opponent's Sticky Web
- Baton Pass: Can pass reversed stat boosts to teammates
Breakable Nature:
Contrary has .breakable = TRUE
, meaning it can be suppressed by:
- Mold Breaker and variants
- Neutralizing Gas
- Other ability-suppressing effects
Version History:
- Generation 5: Introduced with Snivy line and Inkay line
- Elite Redux: Expanded to more Pokémon as a balancing option for powerful moves with drawbacks