• 💀 Happy Halloween! 💀 It's time to vote for the best terrain! Check out the entries to Hive's HD Terrain Contest #2 - Vampire Folklore.❗️Poll closes on November 14, 2023. 🔗Click here to cast your vote!
  • 🏆 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!
  • 🏆 HD Level Design Contest #1 is OPEN! Contestants must create a maze with at least one entry point, and at least one exit point. The map should be made in HD mode, and should not be openable in SD. Only custom models from Hive's HD model and texture sections are allowed. The only exceptions are DNC models and omnilights. This is mainly a visual and design oriented contest, not technical. The UI and video walkthrough rules are there to give everyone an equal shot at victory by standardizing how viewers see the terrain. 🔗Click here to enter!

Specific spell filter in the Damage Engine System

Not open for further replies.
Level 4
Dec 17, 2020
Hello everyone, thanks for the great work you do.

I have a question about the use of "Damage Engine System". How can I filter the damage of specific spells and put them as a condition for the final damage result?

For example, 2 warstomp based spells, one has fire graphics and the other shadows, depending on what items the hero is carrying, the damage can be increased from one or the other warstomp. Same for many other spells.


Warcraft Moderator
Level 58
Aug 10, 2018
If you're on 1.31+ you don't need to use a Damage Engine for this. You can modify abilities using the Set Ability Integer/Real/Boolean actions.

Otherwise, you can use a variable to mark that your next damage instance is going to be from your desired ability:
  • Events
  • Unit - A unit starts the effect of an ability
  • Conditions
  • (Ability being cast) Equal to Warstomp Fire
  • Actions
  • Set Variable WarstompFireDamage = True

Now in your DamageEvent trigger you can check if WarstompFireDamage is True, and if it is, do whatever you need to do. Then Set it back to False. For MUI purposes you could do this using a Unit Indexer / Hashtable.
Last edited:
Not open for further replies.