Elkano's BuffBars
EBB provides groups of statusbar style indicators to show (de)buffs currently affecting your char or some other units (currently focus, pet and target). For the player, it can also show indicators for temporary enchants place on it's weapons.
Due to changes Blizzard made with WoW 4.x it's no longer possible to cancel buffs without the use of secure frames. Currently EBB limits canceling of buffs to out-of-fight since using SecureAuraHeader would have required a major code restructuring. This will be coming in a later version.
Version 2.x is a total recode based on the Ace2 framework which became necessary in order to support some of the longtime wanted and suggested features. It's now possible to show different groups of bars which can be configured in many ways. Each group can be assigned an individual look and filter settings. EBB can be configured via a dropdown menu which is accessible via chat (/ebb config), FuBar plugin or (for the group settings) by right clicking the groups anchor. After setting up a group, its anchor can be hidden by alt-left clicking a bar or the anchor itself in order to lock the group in place.
In order to get additional bar textures and fonts for EBB simply install SharedMedia which is available for download under http://wow.curse.com/downloads/wow-addons/details/sharedmedia.aspx
If you have bug reports or feature request, create a ticket: http://www.wowace.com/projects/elkbuffbars/create-ticket/
You can also check my thread at the WoWAce forums: http://forums.wowace.com/showthread.php?t=5290
The most recent development version of EBB is available directly from the WoWAce SVN via http://www.wowace.com/projects/elkbuffbars/files/
-
View User Profile
-
Send Message
Posted Apr 10, 2026Got this bug today
317x Blizzard_BuffFrame/BuffFrame.lua:644: attempt to perform arithmetic on field 'expirationTime' (a secret number value tainted by 'ElkBuffBars')
[Blizzard_BuffFrame/BuffFrame.lua]:644: in function 'func'
[Blizzard_FrameXMLUtil/AuraUtil.lua]:96: in function <Blizzard_FrameXMLUtil/AuraUtil.lua:85>
[Blizzard_FrameXMLUtil/AuraUtil.lua]:116: in function 'ForEachAura'
[Blizzard_BuffFrame/BuffFrame.lua]:643: in function 'UpdatePlayerBuffs'
[Blizzard_BuffFrame/BuffFrame.lua]:720: in function 'UpdateAuras'
[Blizzard_BuffFrame/BuffFrame.lua]:202: in function 'Update'
[Blizzard_BuffFrame/BuffFrame.lua]:596: in function 'Update'
[Blizzard_BuffFrame/BuffFrame.lua]:362: in function 'UpdateShownState'
[Blizzard_BuffFrame/BuffFrame.lua]:309: in function <Blizzard_BuffFrame/BuffFrame.lua:292>
[C]: ?
Locals:
auraData = <table> {
spellId = <no value>
isBossAura = <no value>
duration = <no value>
expirationTime = <no value>
isFromPlayerOrPlayerPet = <no value>
isHelpful = <no value>
points = <no value>
icon = <no value>
nameplateShowPersonal = <no value>
isStealable = <no value>
isRaid = <no value>
auraInstanceID = 9
nameplateShowAll = <no value>
timeMod = <no value>
canActivePlayerDispel = <no value>
isTankRoleAura = <no value>
isHarmful = <no value>
canApplyAura = <no value>
name = <no value>
isDPSRoleAura = <no value>
applications = <no value>
isNameplateOnly = <no value>
sourceUnit = <no value>
isHealerRoleAura = <no value>
}
(*temporary) = <no value>
(*temporary) = 793038.363000
(*temporary) = 793038.363000
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to perform arithmetic on field 'expirationTime' (a secret number value tainted by 'ElkBuffBars')"
self = BuffFrame {
systemInfo = <table> {
}
downKeys = <table> {
}
numHideableBuffs = 2
CollapseAndExpandButton = CheckButton {
}
dirtySettings = <table> {
}
hasActiveChanges = false
systemIndex = 1
snappedFrames = <table> {
}
savedSystemInfo = <table> {
}
auraInfo = <table> {
}
settingMap = <table> {
}
hiddenBuffUpdatePeriod = 0.200000
systemNameString = "Buffrahmen"
hiddenBuffUpdateTimer = 0.200000
settingDisplayInfoMap = <table> {
}
settingsDialogAnchor = <table> {
}
auraFrames = <table> {
}
ConsolidatedBuffs = Button {
}
system = 6
exampleAuraType = "Buff"
Selection = Frame {
}
isExpanded = true
hasInitializedForEditMode = false
AuraContainer = Frame {
}
defaultHideSelection = true
maxAuras = 32
}
s_spellIDToHelpTipInfo = <table> {
440393 = <table> {
}
}
auraIndex = 0
-
View User Profile
-
Send Message
Posted Apr 9, 2026Check the new files on Github. Also read the README file. I also paste it here:
----------------
Retail 12.x compatibility update
This patched version updates ElkBuffBars for the modern Retail aura system.
What changed
- Updated aura handling for Retail 12.x
- Fixed Lua errors caused by hidden/secret aura values returned by C_UnitAuras
- Improved buff and debuff live updates in combat
- Fixed several timer and sorting errors on Retail
- Fixed timeless buffs showing the wrong bar state on login/reload
- Replaced outdated debuff color fallback handling
- Added safer fallback logic for unreadable aura duration data
Current Retail API limitations
- On current Retail, some aura values are hidden/protected by Blizzard
- Because of that, some newly gained timed buffs in combat may not immediately provide a readable remaining time
- In those cases, the buff bar is still shown, but the timer text may display "?" until a readable value becomes available
- Timeless buffs remain supported, but combat transitions may still briefly show fallback timer text in some cases depending on what the API exposes at that moment
Notes
- Out of combat, bars, timers, and sorting should behave normally
- The goal of this patch is stability and compatibility on modern Retail, even when the API does not expose full timer information
----------------
-
View User Profile
-
Send Message
Posted Apr 9, 2026In reply to Odysseus68: Thanks, I tried this out in the open world for a bit and it works as described. In combat, the vast majority of buffs had the "?" placeholder, including all timeless buffs except the Flight Style buff, which remained timeless. I had one buff appear with a timer: a heal applied to me from a Shaman via Earthliving Weapon. When the timer reached 0.0, Earthliving Weapon disappeared, however it left a bar with 0.0 that was then filled with whatever "?" buff had sorted to the bottom of the pile (for example, I then had the timeless buff Precious' Ribbon appear with a 0.0 timer).
And then just because I was curious, I tried to bring back the UpdateTextWidth function, as that is the feature I a missing the most. The buff names either spill into the timer area, or I have to use the Abbreviation feature that Elkano introduced presumably as a bandaid. Anyway, I had hoped that Blizzard had reallowed such things in the time between the last alpha version and the present. So in EBB_Bar.secrets.lua, I uncommented line 945 and then added another self:UpdateTextWidth() line to the end of the GetTimeString function, but it doesn't work and I get errors related to attempting to edit secret values. Oh well, maybe this will be possible in the future.
-
View User Profile
-
Send Message
Posted Apr 9, 2026I remember that specific bugs. I had them myself but i manage to solve them Please download it from this link. I have create a new repository from my addon folder. Maybe there is change that i forgot. Thanks for the feedback. Note that the changes are based from version r219-alpha.
https://github.com/Odysseas68/ElkBuffBars
Download Github --> Code (green button at right) --> Download zip.
I will delete the old repository.
Thanks.
-
View User Profile
-
Send Message
Posted Apr 9, 2026In reply to Odysseus68: You have absolutely right. I have make a short video to see. I will try to fix this.
-
View User Profile
-
Send Message
Posted Apr 7, 2026I already send the author of the addon a private message about all the changes ChatGPT and i made for the addon to came back as it was before. I did all this work because i love this addon and i use it from WoTLK (i think) and as a hobby. I test the patches in Open world/Dungeons/Delves with no errors. I didn't test it in Battlegrounds but i'm going to do it now.
What i need is more people to test the patches if they work for them to. I will share the github link. This link has only 3 files. The files for the Retail that have been heavily changed. Download them and copy over the old files in "World of Warcraft\_retail_\Interface\AddOns\ElkBuffBars\" . No need the backup. You can allways do a re-install the addon from your addon manager if you don't like them.
Github link: https://github.com/Odysseas68/ElkBuffBars
NOTE: Copy only the 3 files. DO NOT extract everything to the addon folder.
-
View User Profile
-
Send Message
Posted Apr 8, 2026In reply to Odysseus68: Doesn't seem to work while in combat tho
-
View User Profile
-
Send Message
Posted Apr 8, 2026In reply to Dhisana: It works. I'm using it 2 days now. I test it in Raid (story mode 5 times!!), Dungeons, Delves, Open world. What it doesn't work? Is it gives you any error or any strange behavior? If so please tell me. Also did you overwrite the new files over the old ones?
-
View User Profile
-
Send Message
Posted Apr 9, 2026In reply to Odysseus68: well i don't know, i just download your version and replace the respective files in the elkano folder with the files you provided.
Duration of buff/debuffs now properly display minutes/hours rather than only total seconds, which is good BUT as soon as i enter combat, either in open world or m+ (where i tested it) expiring buffs get stuck into 0.0s and no new buff get displayed while debuff act even wierder, they often show up when a new debuff get applied on me but the duration is all screwed, sometime it shows as 0s sometime they show as a permanent debuff, did i screw something?
-
View User Profile
-
Send Message
Posted Apr 9, 2026In reply to Dhisana: I'm on a good way for that bug. :)
-
View User Profile
-
Send Message
Posted Apr 8, 2026In reply to Odysseus68: First, thank you for making your patch available and of course thank you to Elkano for continuing to work on this great addon.
I replaced the three files in the latest official alpha build with your files and am also having trouble when in combat (have only tried open world so far). Once I enter combat, no new buffs appear. Any timed buffs that were active before entering continue to count down, but when they get to 0.0 seconds, the bar gets stuck there. Once combat ends, all active buffs suddenly appear and the bars stuck at 0.0 disappear. The good news is no bugs appear in bugsack.
Hopefully this helps, happy to try to gather any other info.
-
View User Profile
-
Send Message
Posted Apr 3, 2026Getting this error atm
187x Blizzard_BuffFrame/BuffFrame.lua:644: attempt to perform arithmetic on field 'expirationTime' (a secret number value tainted by 'ElkBuffBars')
[Blizzard_BuffFrame/BuffFrame.lua]:644: in function 'func'
[Blizzard_FrameXMLUtil/AuraUtil.lua]:96: in function <Blizzard_FrameXMLUtil/AuraUtil.lua:85>
[Blizzard_FrameXMLUtil/AuraUtil.lua]:116: in function 'ForEachAura'
[Blizzard_BuffFrame/BuffFrame.lua]:643: in function 'UpdatePlayerBuffs'
[Blizzard_BuffFrame/BuffFrame.lua]:720: in function 'UpdateAuras'
[Blizzard_BuffFrame/BuffFrame.lua]:202: in function 'Update'
[Blizzard_BuffFrame/BuffFrame.lua]:596: in function 'Update'
[Blizzard_BuffFrame/BuffFrame.lua]:362: in function 'UpdateShownState'
[Blizzard_BuffFrame/BuffFrame.lua]:309: in function <Blizzard_BuffFrame/BuffFrame.lua:292>
[C]: ?
-
View User Profile
-
Send Message
Posted Apr 1, 2026Secret stuff does my head in, but I love EBB so I used to Claude.ai to help me "fix" the taint. I believe I have a working copy of EBB_Bar.secrets.lua. I've been testing the changes in Delves. Buffs that would taint are shown, have a timer bar but no actual time left number. Get it @ https://drive.google.com/file/d/1XQUjKsHif6L-PU08jeoF7MQogkHXApDK/view?usp=sharing
-
View User Profile
-
Send Message
Posted Apr 4, 2026In reply to karaste: I'm getting a lot of issues when in combat. New buffs applied don't show until combat is dropped and have a lot of errors still.
-
View User Profile
-
Send Message
Posted Apr 7, 2026In reply to karaste: Check my message above.
-
View User Profile
-
Send Message
Posted Mar 27, 2026I did a further step and change the function. Find the "function prototype:GetTimeString(timeAmount, timeFormat, timeFraction)" line 758 in the same file and change the hole function with the follow:
```
function prototype:GetTimeString(timeAmount, timeFormat, timeFraction)
-- if not self.data.expires then return "" end
if not self.data.expires then
return "", 0
end
if issecretvalue and issecretvalue(timeAmount) then
local safeTime = tonumber(timeAmount)
if not safeTime then
return "", 0
end
timeAmount = safeTime
end
-- Normal formatting for ALL values (including former secret ones)
if timeFormat == "DEFAULT" then
return SecondsToTimeAbbrev(timeAmount) or string.format("%.1fs", timeAmount)
end
if timeFormat == "CLOCK" then
return getTimeFormatClock(timeAmount, timeFraction)
end
if timeFormat == "CONDENSED" then
return getTimeFormatCondensed(timeAmount, timeFraction)
end
return "???"
end
```
What this gives you
✔ No timer for permanent auras (clean UI)
✔ Proper formatting for normal values
✔ Safe handling of secret values
✔ No taint errors in instances
✔ Always stable fallback
Just Test is in Open World killing a mob. Throw error. I won't delete the code, maybe the author get some hint on how to fix it.
-
View User Profile
-
Send Message
Posted Apr 3, 2026In reply to Odysseus68: is there any way to get full bar for permanent auras?
-
View User Profile
-
Send Message
Posted Mar 26, 2026i did not found the option to go back to the h/m/s format, im stuck that it shows only seconds can someone help me ?
-
View User Profile
-
Send Message
Posted Mar 24, 2026Hi, currently using version 12.0.1+2
The option 'Full bars for timeless' is not working, its just shows the Icon and no bar at all.
I have Show 'Bacground turned' off, when enabled it shows the background for timeless buffs, still no full bar though.
-
View User Profile
-
Send Message
Posted Mar 12, 2026could we have an update for retail midnight showing every duration as seconds?
something dynamic as it was before ? 5263.3s is not that easy to grasp at a glance.
thank you