• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Spell/Ability Damage Types and what they mean

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
For information on cross-referencing the terminology used below, please review: Wc3C.net - View Single Post - ATTACK_TYPE and DAMAGE TYPE testing. Big shout out to @Tasyen for helping me to fill out this list and also providing good feedback.

Damage TypeUsed by AbilitiesBehavior
MagicAerial Shackles
Mana Burn
Finger of Death/Pain
Life Drain
Dispel/Devour Magic/Purge/Abolish Magic
(Damage Summon)
Cannot damage spell immune; bypasses Armor.
FireRain of Fire
Flame Strike
Firebolt
Immolation
Liquid Fire
Soul Burn
Phoenix Fire
Drunken Haze+Breath of Fire
(DoT only)
Incinerate (proxy damage source: exploded unit)
Same as Magic
SonicStorm Bolt
Frost Bolt
Hurl Boulder
Thunder Clap
War Stomp
Shockwave
Breath of Fire
Crushing Wave
Carrion Swarm
Same as Magic
ForceCluster Rockets
Impale
Bash
Tornado
(building)
Inferno (proxy damage source - Infernal)
Same as Magic
LightningChain Lightning
Forked Lightning
Mana Flare
Lightning Shield
(proxy damage source - shield wielder)
Healing Wave (when set to negative)
Same as Magic
ColdBlizzard
Frost Nova
Cold/Frost Arrows/Freezing breath
(zero-damage event on top of the normal attack; only on-buff)
Same as Magic
Shadow StrikeShadow Strike
Acid Bomb
Same as Magic
DefensiveSpiked Carapace
Spiked Defenses
(Orc building)
Same as Magic
PlantThorns Aura
Entangling Roots
Same as Magic
DeathDeath Coil
Unholy Frenzy
Same as Magic
DivineHoly LightSame as Magic
Mind<None>Same as Magic
NormalAll Melee/Ranged Attacks
Volcano
Suicide
(Unstable Concoction/Kaboom!)
Locust Swarm (proxy damage source - Locust)
Can’t affect Ethereal, but can affect Spell immune (unless applied with ATTACK_TYPE_MAGIC, in which case this is inverted), applies Armor.
EnhancedCleaving Attack (subsequent targets only)
Pulverize
Fan of Knives
Bladestorm
Burning Oil
Same as Normal, but bypasses Armor.
PoisonParasite
Envenomed Weapons
Same as Enhanced
DiseaseDisease CloudSame as Enhanced
AcidDevourSame as Enhanced
Slow PoisonSlow PoisonSame as Enhanced
DemolishUnsummonSame as Enhanced
UniversalEarthquake
Doom
Stampede
Starfall
Death and Decay
Monsoon
Orb of Fire
(splash only)
Healing Spray (when set to negative)
Can affect both Ethereal and Spell Immune when using ATTACK_TYPE_NORMAL (Spells in GUI), bypasses Armor.
UnknownThis is always a zero damage event.
Used when most debuffs are applied, also when Stuns wear off.
Used by almost all Orbs - even Orb of Frost.
Same as Universal

Slightly reformatted chart from Sophismata from wc3c.net:

Damage TypeAttack TypeAffects EtherealAffects Spell Immune
MagicNormalNoNo
MagicSpellsYesNo
MagicMagicYesNo
UniversalNormalNoYes
UniversalSpellsYesYes
UniversalMagicYesNo
NormalNormalNoYes
NormalSpellsNoYes
NormalMagicYesNo

Attack type classifications from the above table:

Normal (can never damage Ethereal targets):
  • ATTACK_TYPE_MELEE ("Normal" in GUI)
  • ATTACK_TYPE_PIERCE
  • ATTACK_TYPE_SIEGE
  • ATTACK_TYPE_CHAOS
  • ATTACK_TYPE_HERO
Spells (only this attack type applies the Spell Damage Reduction and Spell component of Elune's Grace):
ATTACK_TYPE_NORMAL ("Spells" in GUI)​
Magic (can never damage Spell Immune targets but will always damage Ethereal ones):
ATTACK_TYPE_MAGIC​
Added notes: Ability damage types cannot be changed via Object Editor tweaks, which is why only a spell based on an ULTIMATE has the ability to hit both ethereal and magic immune.

Additionally:
DEFENSIVE and the PLANT damage from Thorns aura fire recursively - The DAMAGING event fires from the melee attacker, then the retaliating damage from the damaged unit applies the DAMAGING and DAMAGED event, then finally the DAMAGED event from the melee attacker is deployed. Damage engines need to be built around this, and Damage Engine 5.1.2.1 already compensates for this behavior.​
Lastly, SPIRIT_LINK damage works like this: attacker fires DAMAGING event, then all the spirit link damage is applied (the original target is included among these, but not necessarily damaged first), then the DAMAGED event fires for the original target. Damage engines need to be built around this, and Damage Engine 5.1.2.1 already compensates for this behavior.​
 
Last edited:
You should also include:
Incinerate (Fire lord attack orb + explosion)
Soul Burn (Fire lord dot)
Finger of death/Pain.
Monsun (channeled Lightning strikes)
devour magic (undead unit spell)
dispell magic (human and hostile)
purge
parasit

I did tests myself.

mana flare
DAMAGE_TYPE_LIGHTNING

burning oil
DAMAGE_TYPE_ENHANCED

liquid fire
DAMAGE_TYPE_FIRE

unstable concoction
DAMAGE_TYPE_NORMAL

Vulkan
DAMAGE_TYPE_NORMAL

Bash is force not sonic.

Edit: It might be good to mention that Inferno and Lightning Shield have not the caster as damage source.
 
Last edited:
Level 9
Joined
Jul 20, 2018
Messages
176
So is it an attack type? But there is no Enhanced or Universal attack type. Damage type is mentioned in 1st column.

Notes about spell interactions with armor are useful, but what mean Magic, Physical, Enhanced and Universal words?

Did you check Possession or Charm?
 
Last edited:
Level 9
Joined
Jul 20, 2018
Messages
176
So is it an attack type? But there is no Enhanced or Universal attack type. Damage type is mentioned in 1st column.

Notes about spell interactions with armor are useful, but what mean Magic, Physical, Enhanced and Universal words?
I read original post and understood it. It is necessary to add such table here.

Снимок 204.PNG


To @Bribe: remove excess colons in 1st column. In 3rd column place only "pure" damage types, i. e. Normal, Enhanced, Magic (not Magical) and Universal. Place the table above (screenshot) before main table.
This will help to make the main table more understandable. For now, it seems like Fire and etc. has unknown behavior with armor.

Added notes: Ability damage damage types
Here is a typo.

which is why only a spell based on an ULTIMATE has the ability to hit both ethereal and magic immune.
ULTIMATE = 4th spell of a hero which requires 6th level?
AFAIK, heroes with level 2+ can launch abilities on magic immune targets.

You lost highlighted with yellow information.

Снимок 205.PNG
 
Last edited:

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
Did you check Possession or Charm?

Yes, they don't use it. Mind isn't used anywhere in WarCraft 3.

I read original post and understood it. It is necessary to add such table here.

View attachment 330011

No need for yet another table - I already added the classification of what is affected by armor into the first big table, in the "Spell Behavior" column.

To @Bribe: remove excess colons in 1st column.

Done.

In 3rd column place only "pure" damage types, i. e. Normal, Enhanced, Magic (not Magical) and Universal. Place the table above (screenshot) before main table.
This will help to make the main table more understandable. For now, it seems like Fire and etc. has unknown behavior with armor.

I tried to merge the rows in that final column to make it more understandable, but Hive's BBCode doesn't support things like column /row span the method I did here was to signpost.

In response to your feedback, I've made it more clear that I'm signposting and have changed the text to read "Same as <parent type>".

I've also changed the terminology to get rid of keywords like "Magical" and "Physical", instead they are Magic and Normal and the behavior types formerly attributed to those are now instead defined when I define the damage type in the parent row.

Here is a typo.

Thanks, fixed!

ULTIMATE = 4th spell of a hero which requires 6th level?
AFAIK, heroes with level 2+ can launch abilities on magic immune targets.

I'm not sure which abilities you refer to here, but I'd like to know. The only abilities that use UNIVERSAL damage are:

Earthquake
Doom
Stampede
Starfall
Death and Decay
Monsoon
Orb of Fire
(splash only)

You lost highlighted with yellow information.

View attachment 330013

Thanks, I've added that to the attack type spread as well as some other patterns to their respective attack types.
 
Level 9
Joined
Jul 20, 2018
Messages
176
Now it looks much better. Thanks a lot!


I'm not sure which abilities you refer to here, but I'd like to know. The only abilities that use UNIVERSAL damage are:
I didn't get what means ULTIMATE here.
Added notes: Ability damage types cannot be changed via Object Editor tweaks, which is why only a spell based on an ULTIMATE has the ability to hit both ethereal and magic immune.


AFAIK, heroes with level 2+ can launch abilities on magic immune targets.
Seems this is wrong.

Some question related to this topic.
1. Which attack type do spells have?
2. I heard what Bash has different damage type (or attack type?) if it's used by ranged units. Did you test this?
3. What this constants do? Especially the selected one.

Снимок 206.PNG
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
Ultimate is the level 6 ability (ie. Resurrection, Animate Dead) of a hero. Those are the only types of spells using UNIVERSAL damage.

1. Spells in WarCraft 3 is always ATTACK_TYPE_NORMAL ("Spells" in GUI). So Mana Burn uses DAMAGE_TYPE_MAGIC and ATTACK_TYPE_SPELLS for example.

2. Bash has a separate attack type (Sonic) if used as a percentage, but if it is set to 100% then the Bash becomes integrated into the unit's own attack and you can no longer determine a unique damage type from that attack instance (although if using Damage Engine you would notice that the DamageEventLevel is greater than 1 because the attack was preceded by DAMAGE_TYPE_UNKNOWN).

3. That constant would make units like Dryad invulnerable to ultimates such as Starfall.
 
Level 9
Joined
Jul 20, 2018
Messages
176
Bash has a separate attack type (Sonic)
You meant Force damage type as said in the table?

2. I heard what Bash has different damage type (or attack type?) if it's used by ranged units. Did you test this?
This is true, if a ranged unit has Bash, Bash damage will be always a part of attack damage. Test map.


I also tested next thing. Setting level requirements to 6 allows a spell to hit Magic Immune targets, but do 0 damage EVEN if you change Magic Damage Factor in Spell Immunity ability or change Gameplay - Magic Imunes Resist Damage to False in gameplay constants. This can be useful in making custom Bash with dummy cast.


In addition, in Gameplay - Magic Imunes Resist Ultimates Ultimates = any hero ability with requirement 6+ level. In test map a made a Storm Bold an ultimate, so it can hit Magic Immune targets, if Gameplay - Magic Imunes Resist Ultimates is false, otherwise it cannot.

Text below should be edited, since any spell can become an ultimate and can hit both Magic Immune and Ethereal, but only spells based on the spells with Universal damage type can damage both Magic Immune and Ethereal.
Added notes: Ability damage types cannot be changed via Object Editor tweaks, which is why only a spell based on an ULTIMATE has the ability to hit both ethereal and magic immune.



I updated test map, added Banish to heroes.
 

Attachments

  • tmp.w3x
    13.7 KB · Views: 209
Last edited:

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
I wonder what type Mind Rot is, it is one of those unused spells that is still in the editor.
It is unfortunately incapable of dealing damage so we can't know.

You meant Force damage type as said in the table?
yes pardon me.

This is true, if a ranged unit has Bash, Bash damage will be always a part of attack damage. Test map.
Interesting I will check it out.

I also tested next thing. Setting level requirements to 6 allows a spell to hit Magic Immune targets, but do 0 damage EVEN if you change Magic Damage Factor in Spell Immunity ability or change Gameplay - Magic Imunes Resist Damage to False in gameplay constants. This can be useful in making custom Bash with dummy cast.


In addition, in Gameplay - Magic Imunes Resist Ultimates Ultimates = any hero ability with requirement 6+ level. In test map a made a Storm Bold an ultimate, so it can hit Magic Immune targets, if Gameplay - Magic Imunes Resist Ultimates is false, otherwise it cannot.
I'll have to test if the damage type itself has changed or just if the WC3 engine has allowed a zero damage event from whatever the original damage type was.

Text below should be edited, since any spell can become an ultimate and can hit both Magic Immune and Ethereal, but only spells based on the spells with Universal damage type can damage both Magic Immune and Ethereal.

I updated test map, added Banish to heroes.

What is the purpose of adding the Banish?
 
Last edited:

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
I added to check that a common spell with 6+ level requirements can hit both Magic Immune and Ethereal.


Damage type remains the same.
So I have tried this a month or two ago with Inferno against a magic immune target. The target was stunned and the DAMAGED event fired with the full amount, but no damage was taken (the second event didn't go off).

Also I've tried it with Carrion Swarm against spell immune targets - the targets take 0 damage and trigger just the first event runs.

I tried tinkering with the Damage Types and changing to UNIVERSAL helped in the case of Inferno but did nothing for Carrion Swarm (unless I changed the value of that damage via triggers). I'll run some tests with Carrion Swarm and others being level 6 required and see if the pre-event then retains the damage value.
 
Level 9
Joined
Jul 20, 2018
Messages
176
Hey, is there an info about Poisoned Arrows (both autocast and passive) and Searing Arrows?

UPD: I tested this on a ranged unit, extra damage from autocast Poisoned Arrows and Searing Arrows is added to the unit attack damage. DoT damage from autocast Poisoned Arrows has damage type Poison.

This is true, if a ranged unit has Bash, Bash damage will be always a part of attack damage. Test map.
Another thing: Bash from a ranged unit does not stun Magic Immune, from a melee unit - stuns.
 

Attachments

  • DamageTypeTest.w3x
    14.1 KB · Views: 142
Last edited:
Level 4
Joined
Nov 20, 2006
Messages
70
So why does fan of knives not damage ethereal units? Why does only some of Shadow Strike's damage work on ethereal?

Acid Bomb can't be dispelled but still otherwise behaves like a spell effect (can't cast on spell immune)

Bat Riders explosion damage is reduced flat by anti-magic shell, but armor is calculated in once the shell is broken.
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
So why does fan of knives not damage ethereal units? Why does only some of Shadow Strike's damage work on ethereal?

Acid Bomb can't be dispelled but still otherwise behaves like a spell effect (can't cast on spell immune)

Bat Riders explosion damage is reduced flat by anti-magic shell, but armor is calculated in once the shell is broken.
If you read the third column, you see why. Bat Riders deal Spell attack type so get reduced by the shell but with damage type Normal so also get reduced by armor.

FoK is enhanced so doesn't get reduced by armor but doesn't affect ethereal.

The data which answers your questions is already listed in my chart.

Acid Bomb uses a targeted spell ability but this has nothing to do with my chart. The damage is independent of the spell's own targeting mechanics.
 
Level 4
Joined
Nov 20, 2006
Messages
70
If you read the third column, you see why. Bat Riders deal Spell attack type so get reduced by the shell but with damage type Normal so also get reduced by armor.

Thanks I think I started reading the chart as though it was exhaustive of all the used spell combinations for some reason. That spell isn't called out but I see the combination you mentioned that would explain it.

Thanks for the work here.
 
Level 4
Joined
Nov 20, 2006
Messages
70
Sorry to bump again, but it has been almost a year. Referencing this again and still not clear on something. Also want to note that "http://www.wc3c.net/showpost.php?p=1030046&postcount=19" appears to be dead but accessible here: https://web.archive.org/web/20160305184757/http://www.wc3c.net/showpost.php?p=1030046&postcount=19

FoK is enhanced so doesn't get reduced by armor but doesn't affect ethereal.

Its listed as Enhanced in the chart (same as normal but bypassing armor) so in theory it "Can’t affect Ethereal, but can affect Spell immune". But while ignoring armor, FoK does not affect ethereal or spell immune. Seems to function as Damage Type Magic, Attack Type: Normal.
 
Its listed as Enhanced in the chart (same as normal but bypassing armor) so in theory it "Can’t affect Ethereal, but can affect Spell immune". But while ignoring armor, FoK does not affect ethereal or spell immune. Seems to function as Damage Type Magic, Attack Type: Normal.
No, FoK is spell - enhanced, but most spells can not affect spell immune units on default. One can make any spell penetrate spell immunity. Let it require not HeroLevel 0, nor HeroLevel 1. Such a FoK ability will damage spell immune units.
 
Level 4
Joined
Nov 20, 2006
Messages
70
No, FoK is spell - enhanced, but most spells can not affect spell immune units on default. One can make any spell penetrate spell immunity. Let it require not HeroLevel 0, nor HeroLevel 1. Such a FoK ability will damage spell immune units.

So there is another variable here? How it is handled in the object editor? Maybe this should be noted on the op? I set the rquired level to -1 and it did indeed damage spell immune but not ethereal.
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
So there is another variable here? How it is handled in the object editor? Maybe this should be noted on the op? I set the rquired level to -1 and it did indeed damage spell immune but not ethereal.

The attack type mixed with the damage type is what causes things to change depening on spell immunity, ethereal, armor.

A unit attacking with enhanced damage type (Cleaving attack for example) will penetrate all armor and can damage spell immune, however FoK cannot affect spell immune on its own due to it having ATTACK_TYPE_SPELLS.

Tasyen mentioned how you can make WC3 think that a non-ultimate spell is an ultimate spell, thereby changing the Damage Type from Enhanced to Universal. I guess I could note this on the guide, however I don't quite understand it and I'm not sure how many different spells this could affect (and whether any normal damage type spell would automatically convert to universal, or if there are some exceptions to it).
 
Last edited:
Level 9
Joined
Jul 20, 2018
Messages
176
Aerial Shackles
Mana Burn
Finger of Death/Pain
Life Drain
Dispel
(Damage Summon) Rain of Fire
Flame Strike
Firebolt
Immolation
Liquid Fire
Soul Burn
Phoenix Fire
Drunken Haze+Breath of Fire
(DoT only)
Incinerate (proxy damage source: exploded unit) Storm Bolt
Frost Bolt
Hurl Boulder
Thunder Clap
War Stomp
Shockwave
Breath of Fire
Crushing Wave
Carrion Swarm
Cluster Rockets
Impale
Bash
Tornado
(building)
Inferno (proxy damage source - Infernal) Chain Lightning
Forked Lightning
Mana Flare
Lightning Shield
(proxy damage source - shield wielder)
Blizzard
Frost Nova
Cold/Frost Arrows/Freezing breath
(zero-damage event on top of the normal attack; only on-buff)
Shadow Strike
Acid Bomb
Spiked Carapace
Spiked Defenses
(Orc building) Thorns Aura
Entangling Roots
Death Coil
Unholy Frenzy
Holy Light
<None>
All Melee/Ranged Attacks
Volcano
Suicide
(Unstable Concoction/Kaboom!)
Locust Swarm (proxy damage source - Locust) Cleaving Attack (subsequent targets only)
Pulverize
Fan of Knives
Bladestorm
Burning Oil
Parasite
Envenomed Weapons
Disease Cloud Devour Slow Poison Unsummon Earthquake
Doom
Stampede
Starfall
Death and Decay
Monsoon
Orb of Fire
(splash only)
Healing Spray (negative) This is always a zero damage event.
Used when most debuffs are applied, also when Stuns wear off.
Used by almost all Orbs - even Orb of Frost.
@Bribe I just want to remind to fix this, seems like it is broken since HIVE update.
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
Now I'm screwing around to find out if Heal Event and Damage Event can work together, using a technique similar to Runed Bracers:

Healing abilities as negative damaging abilities:

Spell | Damage Type

Healing Wave: Lightning
Heal: Not detected as damage
Death Coil: Death (but it changes damage dealt to enemy living units to a heal that fires a "0.00" damage event of type UNKNOWN but does not record the damage being applied to the unit via a damage event.
Death Pact: not detected as damage to self
Essence of Blight (Obsidian Statue) : not detected as damage.
Healing Ward: not detected as damage.
Holy Light: not detected as damage.
Rejuvenation is not detected as a Heal.

Altogether, a pretty fruitless venture. Only one ability of these actually enables detection when used. We'd need a Microsoft Miracle to have a true healing event in WarCraft 3.
 
Level 38
Joined
Feb 27, 2007
Messages
4,951
Is there any way to deal spell damage from code? As in, damage reduced by spell resistance and the "spells" section under gameplay constants.
If ATTACK_TYPE_NORMAL doesn't work, you could always create a dummy spell based on Finger of Death or Forked Lightning (with targets set to 1) in the OE and then manually change its damage value with the new natives before ordering an instant-cast-configured dummy unit to use it on the desired target.
 
Top