Healers Have To Die
Healers have to die like anyone else, this is a fact of WoW. This add-on helps
you influence this unfortunate destiny in a way or another depending on the
HHTD automatically adds healer symbols on top of players nameplate indicating
their class and healing rank. Unlike other add-ons it only takes into account
actively healing players. (It uses different symbols for friends and foes).
HHTD lets you apply custom marks on top of any unit's nameplate. These are the
same marks as the default raid markers but you can set as many as you want
and customize their look.
These marks persist across game sessions. (They are only visible to you)
IMPORTANT NOTE: You have to enable nameplates, else you won't see any healer symbol!
Healer Have To Die lets you announce through a customizable message who the
enemy and friendly healers are (using the Raid Warning channel if possible).
It will also help you protect the healers who are on your side alerting you
when they are being attacked (check the option panel for details).
Helps you target healers easily when they are in a pack.
All of this applies to PVP and PVE.
NOTE: Type /HHTDG to open the configuration panel. There are many settings
HHTD's options are not directly available in the "Interface" panel due to ongoing tainting issues Blizzard is not willing to fix.
How it works
HHTD uses the combat log events to detect friendly and enemy healers who are
currently healing other players (during the last 60s).
HHTD detects specialized healers spells (for human players only)
and differentiates specialized healers from hybrid ones.
HHTD also lets you choose a specified amount of healing healers have to
reach before being marked as such (50% of your own health by default).
This threshold is the only criterion used for NPCs.
When a healer is identified it will be marked with a healer symbol above
their nameplate. If the healer is specialized, the symbol's background
will be colored according to their class. In other cases the background will be
In all cases a number in the center of the symbol indicates the rank of the
healer, the lowest the number the better the healer (ie: '1' represents the
most effective healer while '9' is the least effective).
You can force HHTD to only report specialized healers through HHTD's options (/hhtdg).
Needless to say that self-heals and heals to pets are filtered out.
- /HHTDP (or /hhtdp): Post healers name to the raid channel ordered by
effectiveness for all to see (Will use the Raid Warning channel if possible).
You need to configure the messages in the announce module options first.
You can bind this command to a key (WoW key-bindings interface)
/HHTDG: Open option panel
/HHTD: access to command line configuration interface (for changing settings
- Detection when a friendly healer is being attacked and alert others through
/yell, /say and emote.
HHTD is only compatible with nameplate add-ons which have been coded
responsibly and do not modify internal parts of Blizzard nameplates (a very
selfish behaviour as it prevents any other add-on from re-using them).
HHTD will detect these incompatibilities and report to you so that you can ask
the culprit add-on authors to fix their code and make it compatible with ALL
Guidelines for other add-on authors:
- Do not call :Hide() or :Show() on nameplates' base frame. This breaks
nameplate tracking for other add-ons by unduly firing OnHide/OnShow hooks...
Instead, make its sub-frames invisible by changing their size and/or setting them to
the empty (not nil) texture. (check out how TidyPlates does)
Do not call :SetParent() on nameplates' subframes, this would prevent other
add-ons from finding and hooking nameplate elements.
Do not use SetScript() EVER. You don't need it. :SetScript() shall only
be used on frames YOU create. You can simply replace all your SetScript()
calls by HookScript().
Here is a video by Hybridpanda featuring HHTD in the Eye of the Storm
Curse.com interviewed me for an 'Add-on Spotlight' article focused on the
controversy around this add-on, you can find this interview here.
Here are two excellent articles about HHTD by Cynwise (A must read if you
have some doubts about the fairness of this add-on!) :
Another one by Gevlon:
An 'interesting' debate about this add-on is also happening on Blizzard's official forum:
Sadly, as a European I cannot participate but I'm reading those threads with great interest.
The funniest part about all those 26 pages discussions is that only about
16,000 people were actually using HHTD at the time (from the Curse Client
popularity statistics)... Now over 80,000 players have it installed!
In those discussions it's also rarely noted that HHTD is also very helpful to
protect healers on your side. This debate is leading nowhere though... I won't
post any additional links to those endless threads.
type /hhtdg to open the configuration interface, or /hhtd for command-line access
Comments and suggestions are welcome :-)
To report issues or ask for new features, use the ticket system.
Bitcoin donation address: 1JkA5Ns1dMQLM4D8HUsbXyka6yhp312KnN
Healers Have To Die
version 2.4.1 (2016-07-27):
WoW 7 (Legion) compatible
Enable "Accurate PVE detection" NamePlateHooker module's option by default
since in Legion GUIDs can be properly linked to nameplates.
version 2.4.0 (2016-02-22):
New Module: CustomMarks - Allows you to set persistent custom marks on
targets only seen by you. Type /HHTDG and head to the new "Custom Marks" tab!
The friendly healer under attack alerts ('Protect friendly healers' option)
are now only triggered if a healer is hit with a succession of
attacks that do more damage than the 'Damage amount threshold' (new
setting). This should make it less likely to react on AOEs and more useful
The RAID_WARNING channel will be used if possible in instance groups (BG and
LFG groups). The 'Party' and 'Instance chat' channel options have been
removed. Use the default 'Auto' instead which will choose the most right
channel depending on the current group type. When not in a group the 'SAY'
channel will be used.
It's now possible to swap enemy healer symbols with friendly healer symbols.
Added /hhtd ShowGUI command (in addition to the existing /hhtdg) so that it
appears when typing the /hhtd chat command.
version 2.3.7 (2015-08-02):
Sounds were no longer played.
Invalid healer spell mitigation may have failed for some players.
version 2.3.6 (2015-06-25):
- Bump TOC to 60200
version 2.3.5 (2015-02-26):
- Bump TOC to 60100
version 2.3.4 (2014-11-09):
- Fix two minor cases of severe false-positives (where the scoreboard is not
version 2.3.3 (2014-11-02):
- On certain locals (such as ruRU), HHTD could fail to add its symbols on
version 2.3.2 (2014-11-01):
- Add protections and mitigations to avoid false-positives (ie: when a DPS/TANK
spec is detected as healer due to internal bad spell classification or special
game mechanics such as 'Dark Simulacrum'). This is only possible in situations
where the scoreboard is available.
This fixes a false positive on Retribution Paladins using 'Avenging Wrath'
and prevent Death knights using Dark Simulacrum from being flagged as healer.
NOTE: The spells HHTD uses to detect specialized healers are listed here.
Leave a comment there if you see inconsistencies.
Changed default heal threshold a healer must reach to 50% of the player's
maximum health and allow this threshold to be set to up to 300%.
Contrary to what "Specialized players only"'s tooltip said, checking this
does not disable the heal threshold filter. (The tooltip has been fixed)
version 2.3.1 (2014-10-13):
Compatibility fixes for WoD:
- Add detection for spells that have become healer specific:
Atonement, Divine Star, Holy Nova, Binding Heal, Echo of Light,
Renew, Chain Heal, Healing Wave, Daybreak and Tranquility.
- Remove detection for spells that no longer exist in WoD.
- Add detection for spells that have become healer specific:
Increased default healing threshold to 23% of the player's health (up from 5%).
Added more details on the way HHTD works in the main description (WowAce and
version 2.3 (2013-12-31):
New beautiful healer icons designed by OligoFriends for enemy and friendly healers.
The color of each specialized healer's class is now shown in the icons background.
The "Specialized players only" option is now off by default as the new healer
icons indicate non-specialized healers with a dark grey background (instead
of the player's class color).
Uses version 0.8 of LibNamePlateRegistry which solves an unexpected
incompatibility alert with Aloft and possibly others.
version 2.2.2 (2013-11-17):
- Uses version 0.6 of LibNamePlateRegistry fixing a race condition which could
prevent HHTD from adding its healer symbols on some nameplates.
version 2.2.1 (2013-09-13):
- Fix symbol display on players from foreign servers (those who have an
asterisk between round brackets appended to their nameplates).
This issue is an old one, probably dating back to last March.
HHTD detected those foreign healers properly (the mouse-over sound worked)
but would fail to find their nameplates because of the asterisk present in
their displayed names and thus would not display any symbol...
version 2.2 (2013-09-11):
Now using the new LibNamePlateRegistry-1.0 shared
library instead of the namesake submodule.
A rare Lua runtime error was fixed.
version 2.1.4 (2013-05-21):
Fixed a rare Lua error that would cause '?' to be displayed on human healers'
symbols instead of their ranks.
HHTD now Hooks nameplates' base frame instead of hooking the health bar's
frame. This should make HHTD more tolerant to sub-elements hiding (such as
hiding the original health bar to gain performances).
version 2.1.3 (2013-04-15):
- Enhanced add-on incompatibility detection (when using another add-on
which modifies nameplates in the wrong way): the nameplate module will disable
itself instead of displaying wrong information (such as a healer symbol above
a warrior's nameplate...) because it can't reliably identify nameplates anymore.
There are many nameplate add-ons around and only a few of them are not coded
selfishly. Most of these add-ons modify the default nameplates instead of
making them invisible and creating their own frames. These modifications,
which are particular to each of these add-ons, prevent HHTD (and any other
add-ons wanting to use nameplates) from working properly as they can't
identify and read the nameplates anymore.
I could have coded around the modifications of a few of these selfish add-ons
(the most used ones) but I chose not to, it's far better to have their author
fix them and code responsibly than creating exceptions and bugs for everyone.
So if you want HHTD to be compatible with your favorite nameplate add-ons,
just ask their author to do things the right way, it'll be better for everyone.
version 2.1.2 (2013-04-05):
HHTD's nameplate module broke completely whenever someone's nameplate changed
side (upon mind controls and the likes). Thanks to all the people who helped
me to diagnose the problem and to test the alpha versions leading to this
HHTD will fail more graciously if another add-on is unduly modifying
Blizzard's nameplates (a message is displayed but no Lua error is thrown).
version 2.1.1 (2013-03-17):
Fix huge compatibility problems with other (selfish) add-ons breaking
nameplates hooking. This caused HHTD's symbols being displayed above the
wrong players. HHTD will also denounce these add-ons in the chat so you can
ask their author to fix them.
HHTD will also disable its nameplate module when another add-on unilaterally
modifies nameplate making them unusable for other add-ons. A message will be
displayed. (FYI: the add-on "Tidy Plates" doesn't do this and
therefore is fully compatible with HHTD)
Fix automatic healer role setting while in combat which was causing a
'protected function call' exception pop-up for BG leaders.
Fix a problem which could lead into healer symbols not being hidden.
Special thanks to Cegthlhekz who helped a lot by testing the numerous alpha
versions leading to this release of Healers Have To Die.
version 2.1.0 (2013-03-06):
HHTD no longer relies on LibNamePlate-1.0. The HHTD's NamePlateHooker module
includes its own highly optimized sub-module (written from scratch) to handle
nameplates. I might turn this sub-module into a library since LibNamePlate-1.0
has become too difficult to maintain and would need a complete rewrite. This
change should translate into an overall gain in performance and reliability for
HHTD's end users.
Fix 'Holy Fire' detection.
Do not display any 'Friendly healer under attack' alert if the healer being
attacked turns out to be ourself...
Using AceTimer-3.0 again.
version 2.0.4 (2012-12-10):
- Fix: the chat announcer was no longer working in Battlegrounds
version 2.0.3 (2012-11-28):
Compatible with WoW 5.1
Removed HHTD's options from the WoW Interface panel since it causes global UI tainting. (Fear not, Blizzard might fix this in just a few years).
Until then, just use the command /HHTDG to access HHTD's option panel.
Fixes a very rare Lua error.
version 2.0.2 (2012-09-25):
Fix a bug where HHTD could crash if an NPC with a hyphen in its name healed.
Replaced AceTimer-3.0 with LibShefkiTimer-1.0 to fix random 'Script ran too
long' issues happening with AceTimer's current implementation.
version 2.0.1 (2012-09-01):
Compatible with Mists of Pandaria
Fixed bug: 'NamePlateHooker.lua:452: attempt to index field '?' (a nil
value)' which was caused by the fact that LibNameplate-1.0 fires twice when
plates are hidden if TidyPlates is used.
Fixed bug: Healers below the healing threshold could be flagged as healers if
they were casting spells right after the player had logged in (player's
maximum health being null at that specific time).
Fix wrong description for the 'Heal amount threshold' slider which
incorrectly said that it had no effect in PvP if the 'Healer specialization
detection' option was checked. This was no longer true since HHTD 2.0.
Many micro-optimizations in the combat log parser, especially for when the
PVE option is disabled. The analyzer leaves even earlier in such cases. Not
that it should have any noticeable impact for any user. However, if you take
HHTD's user base as a whole, you could probably fry an egg per day with the
saved power :-) Is this called green programming?
Added support for Italian localization
version 2.0.0 (2012-06-03):
Nameplate markers now include the healer's rank (the lower the number, the better
Nameplate markers are now resizable and movable (see the 'Name Plate
Hooker' module's options).
It's now possible to test how markers look like using the 'Test HHTD's
behavior on current target' button in the general options (along with other
HHTD's core has been rewritten and reorganized with all the current features
in mind making HHTD more effective and reliable.
The logs have been improved, they are now sorted and include all healing
spells cast by healers with emphasising for specialised healers' spells.
The logs can now be disabled if the announcer module is enabled (they are no
Improved healer detection for PVP and PVE (faster and more reliable).
Better handling of multi-instanced units in PVE (especially with nameplate
Many small improvements and bug fixes.
Localization is needed, if you want to contribute you can directlty write your translations using this very link.
version 22.214.171.124 (2012-01-09):
- Fix LibNamePlate bug during cutscenes.
version 126.96.36.199 (2011-11-29):
- Updated TOC to be compatible with WoW 4.3
version 1.9.1 (2011-07-04):
FIX: Friendly healers were reportedly attacked by their own pets or
Fix: In battleground there is no raid warning channel, HHTD now falls back to raid
channel in this situation.
version 1.9.0 (2011-07-03):
New feature: It's now possible to announce friendly and enemy healers to chat
for other players to see, you have to enable and configure the messages in
the 'Announcer' options.
New feature: HHTD will display an alert when a nearby friendly healer is
New feature: HHTD will automatically apply the HEALER role to detected
friendly healers (if possible).
Compatible with WoW 4.2
version 1.8.4 (2011-04-28):
- Updated LibNamePlate again to actually be compatible with WoW 4.1
version 1.8.3 (2011-04-26):
- Updated LibNamePlate to be compatible with WoW 4.1
version 1.8.2 (2011-04-10):
New feature: Logs are available in HHTD's option panel with detailed information about each detected healers (specific spell used, heal amount, activity state). You must check the 'Logging' option to enable logging and add the 'Logs' tab.
Fix: The 'Minimum Heal Amount' filter was ignored by non-healing specialized spells (buffing spells and such available in healing talent trees).
Localization updates and fixes, notably for ruRU (thanks to AlexFlexy).
version 1.8.1 (2011-03-13):
Updated version of LibNamePlate-1.0 (this should fix a Lua error some users experienced)
Updated description with links to the official forum threads about HHTD (someone should tell them that only 12,000 people are using HHTD...)
version 1.8.0 (2011-03-06):
New feature: HHTD now adds the healer role symbol on friendly Healers if allies' name-plates are shown so you can protect your beloved healers and prevent them from being slaughtered!!
Changed minimum heal amount to be a percentage of the player maximum health.
version 188.8.131.52 (2011-02-06):
- FIX: PVE healer detection was broken when "Healer specialization detection" option was enabled (all NPCs were detected as healers)
version 1.7.0 (2011-02-05):
- New feature: "Healer specialization detection" option. (thanks to Zalgorr for the spell list)
New feature: "Use minimum heal amount filter" option.
New command: /hhtdg to open the configuration UI.
AceLocale-3.0 library was missing in previous releases preventing HHTD to
work in certain conditions.
- Fixes and optimizations.
version 1.6.0 (2011-01-22):
- Healers-Have-To-Die is now useful in PVE, it's able to ring and add crosses over NPC healers' name plates (can be disabled).
- Multiple fixes to detection algorithm: only actual players or NPCs (if option checked) will be reported as healers. (no longer reporting guardians, pets, etc...)
- Announcer module: Added an option to disable sounds.
- Massive code cleanup and re-organization, now using modules for the different add-on parts.
Added support for AddonLoader.
Localization is needed, if you want to contribute: http://www.wowace.com/addons/healers-have-to-die/localization/
version 1.5.1 (2010-10-26):
- HHTD is now able to add a red cross above enemy name plates when they've been caught healing.
- New option to disable messages printed by HHTD.
|File Name||Release Type||Game Version||Downloads||Date|
|2.4.1-nolib||Release||7.0.3||126||Jul 27, 2016|
|2.4.1||Release||7.0.3||57,969||Jul 27, 2016|
|2.4.1_beta_4||Beta||7.0.3||1,155||Jul 26, 2016|
|2.4.1_beta_4-nolib||Beta||7.0.3||8||Jul 26, 2016|
|2.4.1_beta_3-nolib||Beta||7.0.3||9||Jul 26, 2016|
|2.4.1_beta_3||Beta||7.0.3||581||Jul 26, 2016|
|2.4.1_beta_2-1-g8a5e954||Beta||7.0.3||802||Jul 25, 2016|
|2.4.1_beta_2-1-g8a5e954-nolib||Beta||7.0.3||4||Jul 25, 2016|
|2.4.1_beta_2||Beta||7.0.3||1,195||Jul 24, 2016|
|2.4.1_beta_2-nolib||Beta||7.0.3||7||Jul 24, 2016|
|2.4.1_beta_1-nolib||Beta||6.2.4||5||Jul 24, 2016|
|2.4.1_beta_1||Beta||6.2.4||20||Jul 24, 2016|
|2.4.0||Release||6.2.3||224,052||Feb 22, 2016|
|2.4.0-nolib||Release||6.2.3||405||Feb 22, 2016|
|2.4.0_beta_1||Beta||6.2.3||445||Feb 21, 2016|
|2.4.0_beta_1-nolib||Beta||6.2.3||12||Feb 21, 2016|
|2.3.7-nolib||Release||6.2.2||737||Sep 8, 2015|
|2.3.7||Release||6.2.2||231,840||Sep 8, 2015|
|2.3.6||Release||6.2.0||151,846||Jun 24, 2015|
|2.3.6-nolib||Release||6.2.0||291||Jun 24, 2015|
|2.3.5-nolib||Release||6.1.0||702||Feb 26, 2015|
|2.3.5||Release||6.1.0||169,699||Feb 26, 2015|
|2.3.4||Release||6.0.3||229,088||Nov 9, 2014|
|2.3.4-nolib||Release||6.0.3||467||Nov 9, 2014|
|2.3.3||Release||6.0.3||68,209||Nov 2, 2014|
|2.3.3-nolib||Release||6.0.3||181||Nov 2, 2014|
|2.3.2-nolib||Release||6.0.3||63||Nov 2, 2014|
|2.3.2||Release||6.0.3||11,263||Nov 2, 2014|
|2.3.1||Release||6.0.2||127,886||Oct 14, 2014|
|2.3.1-nolib||Release||6.0.2||405||Oct 14, 2014|
|2.3.1_beta_2-nolib||Beta||5.4.8||844||Oct 12, 2014|
|2.3.1_beta_2||Beta||5.4.8||3,059||Oct 12, 2014|
|2.3.1_beta_1-nolib||Beta||5.4.8||101||Sep 20, 2014|
|2.3.1_beta_1||Beta||5.4.8||1,586||Sep 20, 2014|
|2.3||Release||5.4.2||324,744||Dec 30, 2013|
|2.3-nolib||Release||5.4.2||813||Dec 30, 2013|
|2.3_beta_1||Beta||5.4.2||1,241||Dec 22, 2013|
|2.3_beta_1-nolib||Beta||5.4.2||55||Dec 22, 2013|
|2.2.2-nolib||Release||5.4.1||543||Nov 17, 2013|
|2.2.2||Release||5.4.1||130,698||Nov 17, 2013|
|2.2.1||Release||5.4.0||159,243||Sep 12, 2013|
|2.2.1-nolib||Release||5.4.0||432||Sep 12, 2013|
|2.2||Release||5.4.0||37,060||Sep 11, 2013|
|2.2-nolib||Release||5.4.0||126||Sep 11, 2013|
|2.1.4-3-gc5782b7||Beta||5.3.0||2,776||Aug 10, 2013|
|2.1.4-3-gc5782b7-nolib||Beta||5.3.0||88||Aug 10, 2013|
|2.1.4-nolib||Release||5.3.0||475||May 21, 2013|
|2.1.4||Release||5.3.0||194,474||May 21, 2013|
|2.1.3||Release||5.2.0||123,116||Apr 14, 2013|
|2.1.3-nolib||Release||5.2.0||255||Apr 14, 2013|