Appearance
Soul Devourer - Ability ID 765
In-Game Description
"Soul Eater + Phantom Pain"
Extended In-Game Description
For use in Elite Redux extended ability UI (IMPORTANT: exactly 280-300 chars counted WITH spaces)
Soul Devourer combines two abilities: Soul Eater and Phantom Pain. When this Pokémon defeats an opponent, it recovers 25% of its maximum HP. Additionally, Ghost-type moves can hit Normal-type Pokémon at 1x effectiveness instead of having no effect, breaking through Normal-type immunity.
Character count: 287
Detailed Mechanical Explanation
For Discord/reference use
Soul Devourer is a hybrid ability that grants two distinct effects by combining Soul Eater and Phantom Pain mechanics:
Core Mechanics
Soul Eater Component:
- Healing Effect: When this Pokémon knocks out an opponent with any damaging move, it recovers 25% of its maximum HP
- Trigger Condition: Must directly cause the opponent to faint with an attack
- Healing Requirements: Must not be at full HP and must be able to heal (not affected by Heal Block)
- Battle Script: Uses
BattleScript_HandleSoulEaterEffect
which callstryhealpercenthealth BS_STACK_1, 25
Phantom Pain Component:
- Type Effectiveness Modification: Ghost-type moves can hit Normal-type Pokémon
- Effectiveness Value: Changes Ghost vs Normal from 0x (no effect) to 1x (normal effectiveness)
- Scope: Only affects Ghost-type moves against Normal-type Pokémon
Technical Implementation
cpp
// Location: src/abilities.cc
constexpr Ability SoulDevourer = {
.onBattlerFaints = SoulEater.onBattlerFaints,
.onTypeEffectiveness = PhantomPain.onTypeEffectiveness,
.onBattlerFaintsFor = SoulEater.onBattlerFaintsFor,
};
Soul Eater Implementation:
cpp
constexpr Ability SoulEater = {
.onBattlerFaints = +[](ON_BATTLER_FAINTS) -> int {
CHECK_NOT(BATTLER_MAX_HP(battler));
CHECK(CanBattlerHeal(battler));
BattleScriptCall(BattleScript_HandleSoulEaterEffect);
return TRUE;
},
.onBattlerFaintsFor = APPLY_ON_ATTACKER,
};
Phantom Pain Implementation:
cpp
constexpr Ability PhantomPain = {
.onTypeEffectiveness = +[](ON_TYPE_EFFECTIVENESS) -> int {
CHECK(moveType == TYPE_GHOST)
CHECK(defType == TYPE_NORMAL)
CHECK_NOT(*mod)
*mod = UQ_4_12(1.0);
return TRUE;
},
};
Battle Script Details
assembly
BattleScript_HandleSoulEaterEffect::
tryhealpercenthealth BS_STACK_1, 25, BattleScript_Return
BattleScript_HandleSoulEaterEffect_AfterHeal:
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_STACK_1
datahpupdate BS_STACK_1
printstring STRINGID_STACKREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
return
Activation Conditions
Healing Trigger:
- Must defeat an opponent with a damaging move
- Cannot be at maximum HP
- Must not be affected by Heal Block
- Works with any damaging move type
- Applies to the attacking Pokémon only
Type Effectiveness Trigger:
- Only affects Ghost-type moves
- Only modifies effectiveness against Normal-type Pokémon
- Changes 0x effectiveness to 1x effectiveness
- Does not affect other type matchups
Numerical Values
- Healing Amount: 25% of maximum HP (same as Soul Eater)
- Type Effectiveness: Changes Ghost vs Normal from 0x to 1x
- Trigger Rate: 100% on qualifying events
Strategic Implications
Offensive Advantages:
- Enables Ghost-type moves to hit Normal-type Pokémon, removing a key immunity
- Provides sustain for sweep scenarios through healing on KO
- Excellent for prolonged battles and consecutive matchups
- Allows Ghost-type Pokémon to threaten Normal-types directly
Competitive Usage:
- Ideal for bulky offensive Pokémon that can secure KOs
- Synergizes well with multi-target moves in doubles
- Provides both offensive utility and defensive sustain
- Particularly valuable against Normal-type walls
Common Users
Mega Hisuian Typhlosion:
- Type: Fire/Ghost
- Stats: 93/89/101/145/108/99
- Innate Abilities: Hellblaze, Early Grave, Vengeful Spirit
- Perfect synergy with Ghost-type STAB moves
Interactions with Other Abilities
Synergies:
- Hellblaze: Innate ability that boosts Fire-type moves
- Early Grave: Innate ability that provides additional battle effects
- Vengeful Spirit: Innate ability that enhances Ghost-type utility
Limitations:
- Healing blocked by Heal Block
- Type effectiveness change doesn't affect other immunities
- Requires securing KOs to activate healing component
- Phantom Pain component only affects one specific type matchup
Counters
Healing Prevention:
- Heal Block prevents the healing component
- Abilities that prevent healing (e.g., some custom abilities)
- Keeping the user at full HP negates healing trigger
Type Effectiveness Counters:
- Dark-type Pokémon resist Ghost moves regardless
- Steel-type Pokémon resist Ghost moves
- Other Ghost-type Pokémon are immune to Ghost moves (unaffected by Phantom Pain)
Example Damage Calculations
Ghost vs Normal with Soul Devourer:
- Base damage × 1.0 (instead of × 0.0)
- Example: Shadow Ball vs Blissey becomes neutral damage instead of no effect
- Allows Ghost-type Pokémon to threaten Normal-type walls
Healing Calculation:
- Example: Pokémon with 400 max HP recovers 100 HP on each KO
- Minimum healing: 1 HP (if max HP ≤ 4)
- Maximum healing: 25% of max HP up to practical HP limits
Competitive Viability
Tier Assessment: High - Combination of offensive utility and sustain Best Formats: Singles and Doubles where securing KOs is feasible Team Synergy: Excellent with offensive teams that can facilitate KOs Meta Relevance: Strong against Normal-type cores and in sweep scenarios
Version History
- Elite Redux: Introduced as a combination ability for Mega Hisuian Typhlosion
- Implementation: Part of the advanced ability system combining multiple effects
- Balance: Provides both offensive and defensive utility without being overpowered