IceHUD
IceHUD is a highly configurable and customizable HUD addon in the spirit of DHUD, MetaHUD, and others designed to keep your focus in the center of the screen where your character is.
What it is
- Player and target health and mana bars, casting and mirror bars, pet health and mana bars, druid mana bar in forms, extensive target info, ToT display, and much more
Short feature list
- Lots of different bar shapes and patterns to make the HUD look like you want
- Class-specific modules such as combo point counters, Slice'n'dice timers, druid mana trackers, Eclipse bar, Holy Power monitoring, Warlock shard tracking, and more
- Target-of-target bars, Crowd Control timers, Range Finders, Threat meters, and plenty of other helpful modules
- Lots of DogTag-supported strings for extreme customizability (with the option to completely disable DogTag support for those that dislike the CPU toll that it takes)
- Cast lag indicator (optional)
- Alpha settings for in combat, target selected, etc.
- Fully customizable bars and counters capable of tracking buff/debuff applications on any unit, spell/ability cooldowns, and the health/mana of any unit you specify. The custom health/mana bars will even work with crazy unit specifications like "focustargettargetfocustarget" if you want!
- Highly configurable (can totally re-arrange all bars, change text display, etc.)
Slash commands
- /icehud - opens the configuration UI to tweak any setting
- /icehudCL - command-line access to tweak IceHUD settings (for use with macros, etc.)
A Note on WoW Midnight
The 12.0 patch, for the Midnight expansion, made significant, sweeping changes to how addons work in the game. As a result, many features previously available are no longer allowed by the game. If IceHUD is no longer doing something it used to do, the most likely reason is that it's not possible (or much more difficult) in the new patch. Feel free to create a GitHub issue for any errors you find; it's expected that there will be some errors for a while due to the extent of changes required.
If you have any custom DogTags using Fractional*:Short, they will no longer work in Midnight - use something like [[HP:Short] '/' [MaxHP:Short]] instead. Many other enemy-HP-or-buff-dependent features, such as Low Threshold flashing or in-combat buff/debuff tracking, are no longer allowed by the game.
See the wiki page for an exhaustive list of Midnight/12.0 changes.
Frequently Asked Questions
-
How do I hide the default Blizzard player, target unit frames and party unit frames? Type /icehud, expand the "Module Settings" section, click "Player Health" or "Target Health," and check "Hide Blizzard Frame" and/or "Hide Blizzard Party Frame". (NOTE: before version 1.3.7, the player/target unitframes were hidden by default. Follow the same steps to enable them if desired)
-
How do I turn off click-targeting and menus on the player bar? Type /icehud, expand the "Module Settings" section, click "Player Health," un-check "Allow click-targeting." Note that as of v1.3, there is now an option to allow click-targeting out of combat, but turn it off while in combat.
-
How do I hide the HUD or change its transparency based on combat, targeting, etc.? Type /icehud, check the "Transparency Settings" section. Nearly any combination of states should be available for tweaking.
-
Even if the rest of the HUD is transparent, the health percentages seem to show up. Why? Type /icehud, expand the "Module Settings" section, expand "Player Health," click "Text Settings," look for options about keeping the lower/upper text blocks alpha locked. If the text is alpha locked, it will not drop below 100%, otherwise it respects its bar's transparency setting. Player Health/Mana, Target Health/Mana, and pet bars should all have these options.
-
Is there any way to see combo points for Rogues and Druids or sunder applications for Warriors? Yes, check the "Combo Points" and "Sunders" modules in the /icehud configuration panel. (Note that these modules may not show up if you're not of the appropriate class to see them. They should be present for their respective classes, however.)
-
What's this thing at the top of the player's cast bar and threat bar? It's darker than the rest of the bar. (and may be colored red) That's the Cast Lag Indicator (or the aggro-pull warning for the Threat bar) that shows you when you can start casting a new spell and still be able to finish the current one (based on your lag to the server). You can disable this in the Player Cast Bar settings under the /icehud configuration screen.
-
Is there a bar that shows breath underwater and if so, how can I adjust it? Yes, this is called the MirrorBarHandler in the module settings portion of the /icehud configuration. It's called that because it mirrors casting bar behavior, displays more than just breathing (fatigue is one example), and that's what Blizzard calls it. It can be moved/adjusted/resized/etc. as with any other module.
-
There's a long green bar that sometimes shows up below everything else. What is it? That would be the TargetOfTarget module. That module is available for people who don't want the full ToT health/mana bars, but do want some sort of ToT representation on the screen. It's configurable through the /icehud module settings.
-
IceHUD needs a bar or counter for buff/debuff X! Good news: as of v1.5, you can create as many bars and counters for any buffs or debuffs you want! Type /icehud, select one of the custom module types in the drop-down at the top of the settings page, and press the Create button. This will create a custom module and automatically select it in the list. It is highly recommend that you rename the bar as soon as possible to avoid any confusion later.
-
How do I turn off the resting/combat/PvP/etc. icons on the player or target? Type /icehud, expand Module Settings, expand PlayerHealth (or TargetHealth for targets), click Icon Settings. You can control every aspect of the icons there including location, visibility, draw order, etc.
-
How do I turn off buffs/debuffs on the player's or target's bar? Type /icehud, expand Module Settings, expand PlayerInfo (or TargetInfo for targets), select Buff Settings or Debuff Settings, and un-check "show buffs" (or "show debuffs").
-
How do I turn off these big huge bars that pulse whenever one of my abilities procs? This isn't IceHUD - it's Blizzard's Spell Alerts they added in 4.0.1. Interface options => Combat => "Spell Alert Opacity" to turn them off or search for a mod to tweak their positioning/size/etc.
-
I don't like where some of the bars are placed. How do I put the health/mana on the left/right? Type /icehud, expand Module Settings, expand whatever module you want to move (e.g. PlayerHealth, PlayerMana), and adjust the "Side" and "Offset" settings. "Side" controls whether it's on the left or the right and "Offset" controls how far from center it is.
-
Which module displays Monk Chi power? Prior to v1.11.2, this module was called HarmonyPower. Harmony was the original name for Chi back when 5.0 was in beta, so I used Blizzard's name for it while I was developing for Cataclysm. IceHUD v1.11.2 changed this module to be called Chi.
-
How do I add commas/periods into big numbers like health? If you have DogTags enabled, you can open the Text Settings for the module in question and add SeparateDigits() around the tag you're trying to split up. To display Health/MaxHealth with commas, use: [(SeparateDigits(HP):HPColor "/" SeparateDigits(MaxHP):HPColor):Bracket]. To use periods instead of commas, use: [(SeparateDigits(HP, "."):HPColor "/" SeparateDigits(MaxHP, "."):HPColor):Bracket]. Use the /dog help menu to build your own similar tags for Mana, etc.
-
The countdown timers on buffs and debuffs completely obscure the icon. How do I disable or adjust the text? IceHUD is not responsible for this countdown text and cannot control it. The 6.0 patch added an option in the game client to display counts on top of cooldowns. Look at the Action Bars menu under the game's Interface options. You can turn the text on or off there. Mods like OmniCC or CooldownCount will generally give you the same feature but allow you to control when, where, and how the text shows up.
-
When I rotate some modules 90 degrees, such as the castbar, the bar appears to wiggle up and down as it fills or empties. How do I fix this? This is a side effect of the animation API that I'm co-opting to force a rotation without having to provide duplicates of every bar texture in the mod. Any bar moving sufficiently quickly and updating rapidly will cause this. IceHUD is intended to be a vertically-oriented mod, so the rotation feature is there for people who are willing to accept the side effects that come with it. My suggestion is to use one of the many horizontally-oriented bar mods out there if you're wanting horizontal bars. Quartz is a good castbar replacement that you can use and disable IceHUD's built-in castbar, for example.
-
How do I get rid of the bars that showed up beneath the player in the 7.0 patch? Blizzard added a "Personal Resource Display" feature in the 7.0 game client. You can disable it in the Game options -> Interface -> Names -> Personal Resource Display.
-
Why is there no target castbar for Classic? The Classic game client doesn't offer a reliable way to show castbars for anyone except the player. You can install the LibClassicCasterino addon to enable support, but it's a best guess and not at all accurate.
-
Why do buff/debuff timers not work in Classic? The Classic game client doesn't provide this information to addons because it wasn't a feature when the game first released. You can install the LibClassicDurations addon to enable support, but it's a best guess and not at all accurate.
See here for a user-created guide to creating new IceHUD textures.
-
View User Profile
-
Send Message
Posted Sep 5, 2026-- https://ibb.co/Y7GGcr19 -- I can't see the combat buffs and debuffs with transparency at 100%; I can barely make them out. The health and power bars work fine if I adjust the transparency, I didn't have this problem before the latest WoW patch -- https://ibb.co/B58mVZQt -- If I use this option, the transparency works fine, but I'd like 100% transparency only in combat, like I was used to before the last WoW patch, Please help. Aside from this inconvenience... if possible, I would like to have the option to see only the buffs with less than 1 minute remaining (and only my own buffs, although that option is already available).
-
View User Profile
-
Send Message
Posted Sep 2, 2026The player info debuffs aren't working properly and keep moving around. The configuration mode isn't working correctly either; for example, it doesn't display the debuffs.
-
View User Profile
-
Send Message
Posted Sep 2, 2026@user_h9e6czp2oju7n52k which version of the game? Can you show me your config for that module? Any other errors showing up when you play the game?
-
View User Profile
-
Send Message
Posted Sep 3, 2026@Parnic I have the latest version of IceHUD and WoW
-
View User Profile
-
Send Message
Posted Sep 3, 2026@Parnic (This is a minor detail and not a bug, as I mentioned in my previous comment) but it's a little annoying that the buffs and debuffs have a black background when the time clock hand rotates over the buff and debuff icons.
-
View User Profile
-
Send Message
Posted Sep 3, 2026@user_h9e6czp2oju7n52k retail, vanilla classic, burning crusade anniversary, Mists classic?
-
View User Profile
-
Send Message
Posted Sep 3, 2026@user_h9e6czp2oju7n52k a screenshot would be immensely helpful, please. I'm struggling to understand the issues being reported.
-
View User Profile
-
Send Message
Posted Sep 3, 2026@Parnic The player-info debuffs aren't working properly. I leave them in one spot on the screen, but when I have two or more debuffs, they move horizontally to another part of the monitor. When I activate the addon's configuration mode, it doesn't show the player-info debuffs. I don't know how to send a screenshot :(
-
View User Profile
-
Send Message
Posted Sep 3, 2026@user_h9e6czp2oju7n52k upload it to imgur or any other sharing service and then give a link. Is this in the retail game or one of the three Classic variants?
-
View User Profile
-
Send Message
Posted Sep 3, 2026@Parnic https://ibb.co/vv49KTPJ -- https://ibb.co/DgrxKFgH -- Debuff number 1 is shifted to the right compared to the first screenshot I sent; the new debuffs appear to the left of the first one, but number 1 moves from its fixed position, and there is no sort by expiation and the debuffs are programmed to go to the left of the first one.
-
View User Profile
-
Send Message
Posted Sep 4, 2026@cucote I made a bunch of changes around Info modules in v1.17.25 to try and address this. Cooldown wipes should be translucent now, buffs/debuffs should grow in the configured direction, and Configuration Mode should show you where they're being placed for diagnostics.
-
View User Profile
-
Send Message
Posted Sep 4, 2026@Parnic muy bien muchas gracias, voy a probar mi addon favorito :)
-
View User Profile
-
Send Message
Posted Aug 14, 2026Please if you're going to report an issue here in the comments rather than GitHub, tell me what version of IceHUD and include the text of the error. "I'm having an error" gives me nothing to work with.
-
View User Profile
-
Send Message
Posted Aug 14, 2026Heyo, back again, still getting that same error as before. I just got home and saw the update for 1.17.22, installed it, still hits me with an error. This time I made sure to disable all my other addons to ensure it wasn't conflicting with anything.
It is only when in a dungeon and only when you click on neutral or hostile mobs (or tab select hostile mobs). It never happens when you just mouse over them. Every mob click just makes it count higher and then if I hit the close button on the error dialogue, it'll just start counting the errors so fast that the game will give me a dialogue stating "bruh, your addons are creating a crap-ton of errors" and asks if I want to disable them.
I have been using Murder Row as the test dungeon as that was the first time I was having issues.
Here is the error:
Message: ...IceHUD/libs/LibDogTag-Unit-3.0/Categories/Status.lua:373: attempt to perform boolean test on a secret boolean value (execution tainted by 'IceHUD')
Time: Fri Aug 14 22:39:33 2026
Count: 10
Stack:
[Interface/AddOns/IceHUD/libs/LibDogTag-Unit-3.0/Categories/Status.lua]:373: in function <...IceHUD/libs/LibDogTag-Unit-3.0/Categories/Status.lua:369>
[local __nsList = "Base;Unit";
local __code = [======[
[Level:DifficultyColor] [SmartRace:ClassColor] [SmartClass:ClassColor] [PvPIcon] [IsLeader ? 'Leader':Yellow] [InCombat ? 'Combat':Red] [Classification]
]======];
local _G = _G;
local DogTag = _G.LibStub("LibDogTag-3.0");
local colors = DogTag.__colors;
local NIL = DogTag.__NIL;
local mytonumber = DogTag.__mytonumber;
local mytostring = DogTag.__mytostring;
local tag_IsFriend = DogTag.Tags.Unit["IsFriend"].code;
local tag_IsLeader = DogTag.Tags.Unit["IsLeader"].code;
local tag_Color = DogTag.Tags.Base["Color"].code;
local tag_Class = DogTag.Tags.Unit["Class"].code;
local tag_Race = DogTag.Tags.Unit["Race"].code;
local tag_Level = DogTag.Tags.Unit["Level"].code;
local tag_IsPlayer = DogTag.Tags.Unit["IsPlayer"].code;
local tag_Classification = DogTag.Tags.Unit["Classification"].code;
local tag_Creature = DogTag.Tags.Unit["Creature"].code;
local tag_DifficultyColor = DogTag.Tags.Unit["DifficultyColor"].code;
local tag_PvPIcon = DogTag.Tags.Unit["PvPIcon"].code;
local tag_IsPet = DogTag.Tags.Unit["IsPet"].code;
local tag_ClassColor = DogTag.Tags.Unit["ClassColor"].code;
local tag_Boolean = DogTag.Tags.Base["Boolean"].code;
local tag_InCombat = DogTag.Tags.Unit["InCombat"].code;
return function(kwargs)
local result;
local arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11;
local kwargs_unit = kwargs["unit"];
if not DogTag.IsLegitimateUnit[kwargs_unit] then
return ("Bad unit: %q"):format(kwargs_unit or tostring(kwargs_unit)), nil;
end;
if kwargs_unit ~= "player" and not UnitExists(kwargs_unit) then
return nil, nil;
end;
do
do
do
arg2 = tag_Level(kwargs_unit);
end;
if arg2 then
arg2 = tostring(arg2);
end;
arg1 = tag_DifficultyColor(arg2, kwargs_unit);
end;
if mytonumber(arg1) then
arg1 = arg1+0;
end;
end;
do
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg4 = tag_IsPlayer((kwargs_unit));
end;
end;
arg4 = not not arg4;
end;
if arg4 then
arg4 = nil;
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg4 = tag_Race((kwargs_unit));
end;
end;
else
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg4 = tag_Creature((kwargs_unit));
end;
end;
end;
if arg4 then
arg3 = tag_ClassColor(arg4, kwargs_unit);
end;
end;
end;
do
do
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg6 = tag_IsPlayer((kwargs_unit));
end;
end;
arg6 = not not arg6;
if arg6 then
arg6 = "True";
else
arg6 = nil;
end;
end;
if not arg6 then
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg7 = tag_IsFriend((kwargs_unit));
end;
end;
arg7 = not not arg7;
if arg7 then
arg7 = nil;
else
arg7 = (kwargs_unit);
end;
arg7 = not not arg7;
arg6 = tag_Boolean(arg7);
end;
arg6 = not not arg6;
end;
if arg6 then
arg6 = nil;
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg6 = tag_IsPet((kwargs_unit));
end;
end;
arg6 = not not arg6;
if arg6 then
arg6 = nil;
else
arg6 = (kwargs_unit);
end;
end;
if arg6 == true then
arg6 = "True";
end;
end;
end;
if arg6 then
arg6 = nil;
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg6 = tag_Class((kwargs_unit));
end;
end;
end;
if arg6 then
arg5 = tag_ClassColor(arg6, kwargs_unit);
end;
end;
end;
do
do
arg8 = tag_PvPIcon((12), kwargs_unit);
end;
if mytonumber(arg8) then
arg8 = arg8+0;
end;
end;
do
do
do
arg9 = tag_IsLeader(kwargs_unit);
end;
arg9 = not not arg9;
end;
if arg9 then
arg9 = nil;
do
arg9 = tag_Color(("Leader"), ("ffff00"), (nil), (nil));
end;
else
arg9 = nil;
end;
end;
do
do
do
arg10 = tag_InCombat(kwargs_unit);
end;
arg10 = not not arg10;
end;
if arg10 then
arg10 = nil;
do
arg10 = tag_Color(("Combat"), ("ff0000"), (nil), (nil));
end;
else
arg10 = nil;
end;
end;
do
do
arg11 = tag_Classification(kwargs_unit);
end;
end;
result = arg1 .. (" ") .. mytostring(arg3) .. ((not issecretvalue(arg3) and(arg3 or '') == '') and ("") or (" ")) .. mytostring(arg5) .. ((not issecretvalue(arg5) and(arg5 or '') == '') and ("") or (" ")) .. mytostring(arg8) .. ((not issecretvalue(arg8) and(arg8 or '') == '') and ("") or (" ")) .. mytostring(arg9) .. ((not issecretvalue(arg9) and(arg9 or '') == '') and ("") or (" ")) .. mytostring(arg10) .. ((not issecretvalue(arg10) and(arg10 or '') == '') and ("") or (" ")) .. mytostring(arg11);
if issecretvalue(result) then
-- do nothing
else
result = (result):gsub("%s$", "");
end;
if type(result) == 'string' then
if issecretvalue(result) then
elseif result == '' then
result = nil;
elseif mytonumber(result) then
result = result+0;
end;
end;
local opacity = DogTag.opacity;
local outline = DogTag.outline;
DogTag.opacity = nil;
DogTag.outline = nil;
return result, opacity, outline;
end;
]:170: in function <[string "local __nsList = "Base;Unit";..."]:27>
[C]: ?
[Interface/AddOns/IceHUD/libs/LibDogTag-3.0/LibDogTag-3.0.lua]:306: in function <...e/AddOns/IceHUD/libs/LibDogTag-3.0/LibDogTag-3.0.lua:290>
[Interface/AddOns/IceHUD/libs/LibDogTag-3.0/LibDogTag-3.0.lua]:336: in function 'UpdateFontString'
[Interface/AddOns/IceHUD/modules/TargetInfo.lua]:2146: in function 'Update'
[Interface/AddOns/IceHUD/modules/TargetInfo.lua]:1993: in function '?'
[Interface/AddOns/IceHUD/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua]:109: in function <...HUD/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[C]: ?
[Interface/AddOns/IceHUD/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua]:19: in function <...HUD/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[Interface/AddOns/IceHUD/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua]:54: in function 'Fire'
[Interface/AddOns/IceHUD/libs/AceEvent-3.0/AceEvent-3.0.lua]:120: in function <...ace/AddOns/IceHUD/libs/AceEvent-3.0/AceEvent-3.0.lua:119>
[C]: in function 'CameraOrSelectOrMoveStop'
[CAMERAORSELECTORMOVE]:4: in function <[string "CAMERAORSELECTORMOVE"]:1>
Locals:
size=12
unit="target"
has=nil
(*temporary)=<secret boolean>
(*temporary)="target"
(*temporary)=<secret boolean>
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)="attempt to perform boolean test on a secret boolean value (execution tainted by 'IceHUD')"
-
View User Profile
-
Send Message
Posted Aug 14, 2026@silly_pare54 thank you for including the error. This is different than what has been reported so far.
-
View User Profile
-
Send Message
Posted Aug 16, 2026@Parnic Ha, I totally worded that wrong, I meant the one Playwoweveryday posted. I was tired. All seems well now, haven't had any issues since the update yesterday and just got another one tonight, no issues. Woo!
-
View User Profile
-
Send Message
Posted Aug 14, 20261663x ...bs/LibDogTag-Unit-3.0/Categories/Characteristics.lua:193: Usage: GetClassInfo(Index)
[C]: ?
[IceHUD/libs/LibDogTag-Unit-3.0/Categories/Characteristics.lua]:193: in function <...bs/LibDogTag-Unit-3.0/Categories/Characteristics.lua:183>
[local __nsList = "Base;Unit";
local __code = [======[
[Level:DifficultyColor] [SmartRace:ClassColor] [SmartClass:ClassColor] [PvPIcon] [IsLeader ? 'Leader':Yellow] [InCombat ? 'Combat':Red] [Classification]
]======];
local _G = _G;
local DogTag = _G.LibStub("LibDogTag-3.0");
local colors = DogTag.__colors;
local NIL = DogTag.__NIL;
local mytonumber = DogTag.__mytonumber;
local mytostring = DogTag.__mytostring;
local tag_IsFriend = DogTag.Tags.Unit["IsFriend"].code;
local tag_IsLeader = DogTag.Tags.Unit["IsLeader"].code;
local tag_Creature = DogTag.Tags.Unit["Creature"].code;
local tag_DifficultyColor = DogTag.Tags.Unit["DifficultyColor"].code;
local tag_Class = DogTag.Tags.Unit["Class"].code;
local tag_Classification = DogTag.Tags.Unit["Classification"].code;
local tag_IsPlayer = DogTag.Tags.Unit["IsPlayer"].code;
local tag_ClassColor = DogTag.Tags.Unit["ClassColor"].code;
local tag_Race = DogTag.Tags.Unit["Race"].code;
local tag_Color = DogTag.Tags.Base["Color"].code;
local tag_PvPIcon = DogTag.Tags.Unit["PvPIcon"].code;
local tag_IsPet = DogTag.Tags.Unit["IsPet"].code;
local tag_Level = DogTag.Tags.Unit["Level"].code;
local tag_Boolean = DogTag.Tags.Base["Boolean"].code;
local tag_InCombat = DogTag.Tags.Unit["InCombat"].code;
return function(kwargs)
local result;
local arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11;
local kwargs_unit = kwargs["unit"];
if not DogTag.IsLegitimateUnit[kwargs_unit] then
return ("Bad unit: %q"):format(kwargs_unit or tostring(kwargs_unit)), nil;
end;
if kwargs_unit ~= "player" and not UnitExists(kwargs_unit) then
return nil, nil;
end;
do
do
do
arg2 = tag_Level(kwargs_unit);
end;
if arg2 then
arg2 = tostring(arg2);
end;
arg1 = tag_DifficultyColor(arg2, kwargs_unit);
end;
if mytonumber(arg1) then
arg1 = arg1+0;
end;
end;
do
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg4 = tag_IsPlayer((kwargs_unit));
end;
end;
arg4 = not not arg4;
end;
if arg4 then
arg4 = nil;
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg4 = tag_Race((kwargs_unit));
end;
end;
else
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg4 = tag_Creature((kwargs_unit));
end;
end;
end;
if arg4 then
arg3 = tag_ClassColor(arg4, kwargs_unit);
end;
end;
end;
do
do
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg6 = tag_IsPlayer((kwargs_unit));
end;
end;
arg6 = not not arg6;
if arg6 then
arg6 = "True";
else
arg6 = nil;
end;
end;
if not arg6 then
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg7 = tag_IsFriend((kwargs_unit));
end;
end;
arg7 = not not arg7;
if arg7 then
arg7 = nil;
else
arg7 = (kwargs_unit);
end;
arg7 = not not arg7;
arg6 = tag_Boolean(arg7);
end;
arg6 = not not arg6;
end;
if arg6 then
arg6 = nil;
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg6 = tag_IsPet((kwargs_unit));
end;
end;
arg6 = not not arg6;
if arg6 then
arg6 = nil;
else
arg6 = (kwargs_unit);
end;
end;
if arg6 == true then
arg6 = "True";
end;
end;
end;
if arg6 then
arg6 = nil;
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg6 = tag_Class((kwargs_unit));
end;
end;
end;
if arg6 then
arg5 = tag_ClassColor(arg6, kwargs_unit);
end;
end;
end;
do
do
arg8 = tag_PvPIcon((12), kwargs_unit);
end;
if mytonumber(arg8) then
arg8 = arg8+0;
end;
end;
do
do
do
arg9 = tag_IsLeader(kwargs_unit);
end;
arg9 = not not arg9;
end;
if arg9 then
arg9 = nil;
do
arg9 = tag_Color(("Leader"), ("ffff00"), (nil), (nil));
end;
else
arg9 = nil;
end;
end;
do
do
do
arg10 = tag_InCombat(kwargs_unit);
end;
arg10 = not not arg10;
end;
if arg10 then
arg10 = nil;
do
arg10 = tag_Color(("Combat"), ("ff0000"), (nil), (nil));
end;
else
arg10 = nil;
end;
end;
do
do
arg11 = tag_Classification(kwargs_unit);
end;
end;
result = arg1 .. (" ") .. mytostring(arg3) .. ((not issecretvalue(arg3) and(arg3 or '') == '') and ("") or (" ")) .. mytostring(arg5) .. ((not issecretvalue(arg5) and(arg5 or '') == '') and ("") or (" ")) .. mytostring(arg8) .. ((not issecretvalue(arg8) and(arg8 or '') == '') and ("") or (" ")) .. mytostring(arg9) .. ((not issecretvalue(arg9) and(arg9 or '') == '') and ("") or (" ")) .. mytostring(arg10) .. ((not issecretvalue(arg10) and(arg10 or '') == '') and ("") or (" ")) .. mytostring(arg11);
if issecretvalue(result) then
-- do nothing
else
result = (result):gsub("%s$", "");
end;
if type(result) == 'string' then
if issecretvalue(result) then
elseif result == '' then
result = nil;
elseif mytonumber(result) then
result = result+0;
end;
end;
local opacity = DogTag.opacity;
local outline = DogTag.outline;
DogTag.opacity = nil;
DogTag.outline = nil;
return result, opacity, outline;
end;
]:159: in function <[string "local __nsList = "Base;Unit";..."]:27>
[C]: ?
[IceHUD/libs/LibDogTag-3.0/LibDogTag-3.0.lua]:306: in function <...eIceHUD/libs/LibDogTag-3.0/LibDogTag-3.0.lua:290>
[IceHUD/libs/LibDogTag-3.0/LibDogTag-3.0.lua]:336: in function 'UpdateFontString'
[IceHUD/modules/TargetInfo.lua]:2146: in function 'Update'
[IceHUD/modules/TargetInfo.lua]:1993: in function '?'
[Altoholic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua]:109: in function <...lic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[C]: ?
[Altoholic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua]:19: in function <...lic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[Altoholic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua]:54: in function 'Fire'
[BetterWardrobe/Libs/AceEvent-3.0/AceEvent-3.0.lua]:120: in function <...ns/BetterWardrobe/Libs/AceEvent-3.0/AceEvent-3.0.lua:119>
[C]: in function 'TurnOrActionStop'
[TURNORACTION]:4: in function <[string "TURNORACTION"]:1>
Locals:
(*temporary)=<secret number>
Hope this helps.
-
View User Profile
-
Send Message
Posted Aug 14, 2026@playwoweveryday what version of IceHUD? Should've been fixed in .21
-
View User Profile
-
Send Message
Posted Aug 14, 2026In reply to Parnic:
Using .21, will update to .22 to see if any change.
ETA: using .22, I got this. Will update to .23 to see if any change.
560x ...IceHUD/libs/LibDogTag-Unit-3.0/Categories/Status.lua:373: attempt to perform boolean test on a secret boolean value (execution tainted by 'IceHUD')
[IceHUD/libs/LibDogTag-Unit-3.0/Categories/Status.lua]:373: in function <...IceHUD/libs/LibDogTag-Unit-3.0/Categories/Status.lua:369>
[local __nsList = "Base;Unit";
local __code = [======[
[Level:DifficultyColor] [SmartRace:ClassColor] [SmartClass:ClassColor] [PvPIcon] [IsLeader ? 'Leader':Yellow] [InCombat ? 'Combat':Red] [Classification]
]======];
local _G = _G;
local DogTag = _G.LibStub("LibDogTag-3.0");
local colors = DogTag.__colors;
local NIL = DogTag.__NIL;
local mytonumber = DogTag.__mytonumber;
local mytostring = DogTag.__mytostring;
local tag_IsFriend = DogTag.Tags.Unit["IsFriend"].code;
local tag_IsLeader = DogTag.Tags.Unit["IsLeader"].code;
local tag_Creature = DogTag.Tags.Unit["Creature"].code;
local tag_DifficultyColor = DogTag.Tags.Unit["DifficultyColor"].code;
local tag_Class = DogTag.Tags.Unit["Class"].code;
local tag_Classification = DogTag.Tags.Unit["Classification"].code;
local tag_IsPlayer = DogTag.Tags.Unit["IsPlayer"].code;
local tag_ClassColor = DogTag.Tags.Unit["ClassColor"].code;
local tag_Race = DogTag.Tags.Unit["Race"].code;
local tag_Color = DogTag.Tags.Base["Color"].code;
local tag_PvPIcon = DogTag.Tags.Unit["PvPIcon"].code;
local tag_IsPet = DogTag.Tags.Unit["IsPet"].code;
local tag_Level = DogTag.Tags.Unit["Level"].code;
local tag_Boolean = DogTag.Tags.Base["Boolean"].code;
local tag_InCombat = DogTag.Tags.Unit["InCombat"].code;
return function(kwargs)
local result;
local arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11;
local kwargs_unit = kwargs["unit"];
if not DogTag.IsLegitimateUnit[kwargs_unit] then
return ("Bad unit: %q"):format(kwargs_unit or tostring(kwargs_unit)), nil;
end;
if kwargs_unit ~= "player" and not UnitExists(kwargs_unit) then
return nil, nil;
end;
do
do
do
arg2 = tag_Level(kwargs_unit);
end;
if arg2 then
arg2 = tostring(arg2);
end;
arg1 = tag_DifficultyColor(arg2, kwargs_unit);
end;
if mytonumber(arg1) then
arg1 = arg1+0;
end;
end;
do
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg4 = tag_IsPlayer((kwargs_unit));
end;
end;
arg4 = not not arg4;
end;
if arg4 then
arg4 = nil;
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg4 = tag_Race((kwargs_unit));
end;
end;
else
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg4 = tag_Creature((kwargs_unit));
end;
end;
end;
if arg4 then
arg3 = tag_ClassColor(arg4, kwargs_unit);
end;
end;
end;
do
do
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg6 = tag_IsPlayer((kwargs_unit));
end;
end;
arg6 = not not arg6;
if arg6 then
arg6 = "True";
else
arg6 = nil;
end;
end;
if not arg6 then
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg7 = tag_IsFriend((kwargs_unit));
end;
end;
arg7 = not not arg7;
if arg7 then
arg7 = nil;
else
arg7 = (kwargs_unit);
end;
arg7 = not not arg7;
arg6 = tag_Boolean(arg7);
end;
arg6 = not not arg6;
end;
if arg6 then
arg6 = nil;
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg6 = tag_IsPet((kwargs_unit));
end;
end;
arg6 = not not arg6;
if arg6 then
arg6 = nil;
else
arg6 = (kwargs_unit);
end;
end;
if arg6 == true then
arg6 = "True";
end;
end;
end;
if arg6 then
arg6 = nil;
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg6 = tag_Class((kwargs_unit));
end;
end;
end;
if arg6 then
arg5 = tag_ClassColor(arg6, kwargs_unit);
end;
end;
end;
do
do
arg8 = tag_PvPIcon((12), kwargs_unit);
end;
if mytonumber(arg8) then
arg8 = arg8+0;
end;
end;
do
do
do
arg9 = tag_IsLeader(kwargs_unit);
end;
arg9 = not not arg9;
end;
if arg9 then
arg9 = nil;
do
arg9 = tag_Color(("Leader"), ("ffff00"), (nil), (nil));
end;
else
arg9 = nil;
end;
end;
do
do
do
arg10 = tag_InCombat(kwargs_unit);
end;
arg10 = not not arg10;
end;
if arg10 then
arg10 = nil;
do
arg10 = tag_Color(("Combat"), ("ff0000"), (nil), (nil));
end;
else
arg10 = nil;
end;
end;
do
do
arg11 = tag_Classification(kwargs_unit);
end;
end;
result = arg1 .. (" ") .. mytostring(arg3) .. ((not issecretvalue(arg3) and(arg3 or '') == '') and ("") or (" ")) .. mytostring(arg5) .. ((not issecretvalue(arg5) and(arg5 or '') == '') and ("") or (" ")) .. mytostring(arg8) .. ((not issecretvalue(arg8) and(arg8 or '') == '') and ("") or (" ")) .. mytostring(arg9) .. ((not issecretvalue(arg9) and(arg9 or '') == '') and ("") or (" ")) .. mytostring(arg10) .. ((not issecretvalue(arg10) and(arg10 or '') == '') and ("") or (" ")) .. mytostring(arg11);
if issecretvalue(result) then
-- do nothing
else
result = (result):gsub("%s$", "");
end;
if type(result) == 'string' then
if issecretvalue(result) then
elseif result == '' then
result = nil;
elseif mytonumber(result) then
result = result+0;
end;
end;
local opacity = DogTag.opacity;
local outline = DogTag.outline;
DogTag.opacity = nil;
DogTag.outline = nil;
return result, opacity, outline;
end;
]:170: in function <[string "local __nsList = "Base;Unit";..."]:27>
[C]: ?
[IceHUD/libs/LibDogTag-3.0/LibDogTag-3.0.lua]:306: in function <...eIceHUD/libs/LibDogTag-3.0/LibDogTag-3.0.lua:290>
[IceHUD/libs/LibDogTag-3.0/LibDogTag-3.0.lua]:336: in function 'UpdateFontString'
[IceHUD/modules/TargetInfo.lua]:2146: in function 'Update'
[IceHUD/modules/TargetInfo.lua]:1993: in function '?'
[Altoholic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua]:109: in function <...lic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[C]: ?
[Altoholic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua]:19: in function <...lic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[Altoholic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua]:54: in function 'Fire'
[BetterWardrobe/Libs/AceEvent-3.0/AceEvent-3.0.lua]:120: in function <...ns/BetterWardrobe/Libs/AceEvent-3.0/AceEvent-3.0.lua:119>
Locals:
size=12
unit="target"
has=nil
(*temporary)=<secret boolean>
(*temporary)="target"
(*temporary)=<secret boolean>
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)="attempt to perform boolean test on a secret boolean value (execution tainted by 'IceHUD')"
-
View User Profile
-
Send Message
Posted Aug 14, 2026In reply to playwoweveryday:
This is happening to me too whenever im grouped in a dungeon/delve and target something.
No issues outdoors though