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 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
-
View User Profile
-
Send Message
Posted Aug 14, 2026@judis8 what version of IceHUD? Should've been fixed in .21
-
View User Profile
-
Send Message
Posted Aug 14, 2026In reply to Parnic:
current version as of that last post
Message: ...bs/LibDogTag-Unit-3.0/Categories/Characteristics.lua:193: Usage: GetClassInfo(Index)
Time: Fri Aug 14 12:22:59 2026
Count: 1
Stack:
[C]: ?
[Interface/AddOns/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]: ?
[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:
(*temporary)=<secret number>
Message: ...bs/LibDogTag-Unit-3.0/Categories/Characteristics.lua:193: Usage: GetClassInfo(Index)
Time: Fri Aug 14 12:22:59 2026
Count: 36
Stack:
[Interface/AddOns/Blizzard_ScriptErrors/Blizzard_ScriptErrors.lua]:72: in function <...dOns/Blizzard_ScriptErrors/Blizzard_ScriptErrors.lua:71>
[Interface/AddOns/Blizzard_SharedXMLBase/ErrorUtil.lua]:3: in function <...nterface/AddOns/Blizzard_SharedXMLBase/ErrorUtil.lua:1>
[C]: ?
[Interface/AddOns/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]: ?
[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/Events.lua]:696: in function <...nterface/AddOns/IceHUD/libs/LibDogTag-3.0/Events.lua:563>
Locals:
errorMessage="...bs/LibDogTag-Unit-3.0/Categories/Characteristics.lua:193: Usage: GetClassInfo(Index)"
errorHandlers=<table>
Popped back into a dungeon to get both pages of error
-
View User Profile
-
Send Message
Posted Aug 14, 2026In reply to judis8:
Have updated to .22
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 17:24:20 2026
Count: 1
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_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]: ?
[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')"
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 17:24:20 2026
Count: 5
Stack:
[Interface/AddOns/Blizzard_ScriptErrors/Blizzard_ScriptErrors.lua]:72: in function <...dOns/Blizzard_ScriptErrors/Blizzard_ScriptErrors.lua:71>
[Interface/AddOns/Blizzard_SharedXMLBase/ErrorUtil.lua]:3: in function <...nterface/AddOns/Blizzard_SharedXMLBase/ErrorUtil.lua:1>
[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_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]: ?
[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/Events.lua]:696: in function <...nterface/AddOns/IceHUD/libs/LibDogTag-3.0/Events.lua:563>
Locals:
errorMessage="...IceHUD/libs/LibDogTag-Unit-3.0/Categories/Status.lua:373: attempt to perform boolean test on a secret boolean value (execution tainted by 'IceHUD')"
errorHandlers=<table>
Still only triggers the errors in dungeons while targetting neutral/hostile npcs (non-followers)
-
View User Profile
-
Send Message
Posted Aug 15, 2026In reply to judis8:
.23 is clear
thanks for keeping this addon going.
This hud has been fantastic, even with the Midnight tracking removals, its so much better than the makeshift alternative
-
View User Profile
-
Send Message
Posted Aug 14, 2026@playwoweveryday Can confirm the same issue here, only when in a dungeon and clicking on any mob that is neutral or hostile. Same error as what is posted here.
-
View User Profile
-
Send Message
Posted Aug 14, 2026@silly_pare54 what version of IceHUD? Should've been fixed in .21
-
View User Profile
-
Send Message
Posted Aug 14, 2026@Parnic I'm seeing it in .22. Even after manually replacing the included copy of the Ace3 LibDogTag-Unit with a new one from the WowAce site only three days old. It's an unfixed secret-handling bug even in the newest version of the library.
-
View User Profile
-
Send Message
Posted Aug 14, 2026@gnoitall you're sure it's exactly the same message? Can you include the current error?
The latest version is hours old as of this post: https://www.wowace.com/projects/libdogtag-unit-3-0/files/8650314
-
View User Profile
-
Send Message
Posted Aug 13, 2026I've updated the addon twice now and each time it continues to throw out LUA errors. The first time was if you moused over certain types of NPC's and when trying to attack. This last update seems to have fixed things somewhat, except now when you click on any NPC, it throws errors until you unselect the NPC. Doesn't seem to make a difference which one. Could be a conflict with another addon, but I haven't tested yet. Here's the error (without the rest of the text afterwards):
Message: ...bs/LibDogTag-Unit-3.0/Categories/Characteristics.lua:641: attempted to index a table that cannot be indexed with secret keys
Time: Thu Aug 13 13:30:55 2026
Count: 1
-
View User Profile
-
Send Message
Posted Aug 13, 2026@silly_pare54 Blizzard continues their war with volunteer addon developers and we are reacting to the fallout as best we can in our free time.
The error you posted is from a library that IceHUD uses called LibDogTag. I am also the maintainer of that library, so I will look at it when I can. The text you left out would be helpful to include, please.
-
View User Profile
-
Send Message
Posted Aug 14, 2026@Parnic Apologies, I didn't realize the whole thing was necessary for a report, I will do that next time. I just updated this third time and getting the same error now that is posted just above mine about the LibDogTag error, so I'll not post anymore about it.
-
View User Profile
-
Send Message
Posted Aug 12, 2026Thanks for getting update out so quickly. IceHUD is my most essential add-on. What you do is greatly appreciated.