Get an Epic Experience with Premium


Buffs & Debuffs Login to Add Favorites
  • World of Warcraft
  • 945 Monthly Downloads
  • Supports: 6.2.0
  • 478,808 Total Downloads
  • Updated 06/25/2015
  • Created 02/16/2009
  • 595 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 3 (GPLv3)
  • Newest File: 2.5.19

About ButtonTimers

ButtonTimers is action buttons with timers attached. The timers can be configured to show a buff/debuff or the cooldown of a spell. The timers are highly configurable, with lots of options to play with.

Important note:

There are a limited number of action slots (1-120). These correspond to 10 bars of 12 buttons each. These are the same 120 slots that every action bar mod has to use (Bartender, PitBull, Blizzard's standard UI, etc.)

Chances are you aren't using all 12 slots on all 10 bars. You can configure ButtonTimers to use any of the 120 action slots you want. Do this with the "First button on bar is.." slider in the bar configuration.

If you don't change the "First button on bar is..", the bars will default to bars 10, 9, 8, 7. Note that bars 7-9 are by default the stance bars, so if your class uses stances you may wish to change it.

Getting Started:

When you first start the mod, you will see 4 bars of 12 buttons each. Open up the options (in the interface->addons panel), and disable the bars you won't be using. Next change the number of buttons from 12 to however many buttons you would like to see.

Now change the action slots the bar is showing you. Just take the action offset slider and slide it until you see some unused action buttons. Then drag the spells/abilities of your choice onto the bar.

The default is to track dots/debuffs/buffs. If that's what you want the timer to reflect, you are done. If you want to see a cooldown instead, select the configuration for the button and change the selector from "Aura" to "Cooldown".

There are lots of configuration options, go ahead and play with them. But that should be enough to get you started.

Bar configuration options are:

  • '''Bar Enabled:''' enable / disable the bar.
  • '''Hide out of combat:''' don't show the bar out of combat.
  • '''Bar Locked:''' lock the bar in position so that it cannot be dragged.
  • '''Orientation:''' horizontal or vertical layout for the buttons on the bar. You can also put the timers on the buttons themselves.
  • '''Timer Location:''' you can select whether you want the bar be on the left or right of the button (in vertical orientation) or above/below the button (in horizontal orientation)
  • '''Button Spacing:''' the space between the buttons on the bar.
  • '''Bar Scale:''' size the whole bar larger or smaller
  • '''Bar Length:''' length of the timer bar
  • '''Button Count:''' number of buttons on the bar (1-12)
  • '''First button on bar is..''' action slot number of the first button on the bar. Blizzard gives 120 action slots, which are traditionally allocated into 10 bars, but this mod gives a finer control over which slots you wish to use. Just slide this control until you find some unused slots.

Button options are:

  • '''Type:''' Set whether you wish to monitor a cooldown or an aura on the default bar target. You can also monitor both aura and cooldown. The cooldown will show up on the button and the aura timer on the bar if you select both.
  • '''Timer Type:''' The timer can either be shown as a percentage of the aura/cooldown duration or in fixed time. For example, if you choose a fixed time with a time of 10s, a full bar will always represent 10 or more seconds. This makes it easier to see which aura/cooldown will complete first, regardless of the spell's length.
    • '''Bar Time:''' This sets the max time displayed on a fixed time timer bar. Any timer durations longer than Bar Time will show as a full bar.
  • '''Show others' spells:''' By default, the timer will only monitor auras on the target if you were the caster of the spell. Click this button if you wish to see other's spells as well. The timer will always show your own spell if you have one on the target. Note: Pet spells do not count as being cast by you, so if you wish to monitor a pet spell then click this button.
  • '''Other Auras:''' By default, an aura timer will monitor the bar's default target for an aura matching the name of the spell on the action button. In this field you can enter additional auras (in a comma separated list) to look for.
    • "Show Aura Icon:" When checked, the icon on the button will update to match the aura we are showing the timer for.
    • "Ignore Button Aura:" When checked, timers will only be created for the auras specified in the Other Auras field. If Show Aura Icon is also checked, then the icon on the button when no timer is present will be the first aura listed in the Other Auras field.
  • '''Cooldown spell:''' By default, a cooldown timer will monitor the cooldown on the action on the bar. But you can also enter a spell name to monitor instead.
  • '''Bar Color:''' The color of the timer bar.
  • '''Target:''' This will select the default target (to target, focus target, self, party, pet) for all actions on the bar. It also controls what target to monitor for auras.
  • '''Use as spell target:''' If set, target will be the spell target as well as the target to monitor for the selected aura.
  • '''Warn less than cast time:''' Change the bar color when timer less than cast time. Also tints the action button.
  • '''Warning Bar Color:''' Bar color for timers when remaining time less than cast time.
    • "Adjust Cast Time:" Additional number of seconds to add, or subtract, from the cast time. Set this value to the effect's duration * 0.3 for the warn color to show when its safe to refresh an effect without wastage.
  • '''Adjust Timer:''' Number of seconds to add to timer (can be negative).

Command line options:

'''/buttontimers reset''' - reset bar positions to default

'''/buttontimers config''' - open the configuration dialog (can also be accessed on Blizzards interface -> addons panel)

r69 | stencil | 2015-06-25 16:31:12 +0000 (Thu, 25 Jun 2015) | 1 line
Changed paths:
   A /tags/2.5.19 (from /trunk:68)

Tagging as 2.5.19
r68 | stencil | 2015-06-25 16:26:42 +0000 (Thu, 25 Jun 2015) | 1 line
Changed paths:
   M /trunk/ButtonTimers.toc
   M /trunk/Core.lua

bug fix - I thought blizzard returned 0's when a spell didn't have charges but apparently they'll sometimes just return nil's because they're idiots
r66 | stencil | 2015-06-24 04:37:27 +0000 (Wed, 24 Jun 2015) | 2 lines
Changed paths:
   M /trunk/ButtonTimers.toc
   M /trunk/Core.lua

bug fix for 6.2 to continue to show a cooldown timer if any of a spells charges are on cooldown
toc bump


First Previous Page 12 of 63 Next Last
  • #781

    As someone stated before, this is my absolute favorite addon for ANY class. Especially for my destro lock. in PvP i'm almost useless without it since that's how i keep track of spells.

    I do have a slight annoyance though. Saving profiles. Is there any way to save the profiles so i can stash em somewhere so when it gets reset (for any reason) i don't have to re-customize it ALL over again (i have a specific way i like my setup and would like to not waste so much time setting it up). I tried using reflux, but the addon doesn't seem to work with it. It also doesn't seem to have a profile selector (or maybe i don't know it yet, or haven't seen it yet even though i tried  to look for it). I'm not quite sure how that save stuff works from a programmer's perspective.

    I will continue to use this addon, but i was just curious about that. Thanks for making the addon, and for listening to my personal problem about it.

    Last edited by qpsubzeroqp on 4/20/2012 11:55:07 AM
  • #792

    I did add profile support for ButtonTimers.  However, it just saves off the timer configuration info for each button and doesn't save or change what buttons are on the bars.  So, currently the profile support is mostly for the general case where people are just swapping between their two specs, keeping the settings seperate per spec. 

    You can create and keep other profiles for specs you're occasionally picking up and dropping, but you'll have to manually change whatever spells are on the action bar buttons.  I do not know whether its possible for an addon to change what spells you have on your action bars for you; I didn't find any likely looking functions in the API for that. If someone has found a way and written an addon to do that, then you can use that in conjuction with Button Timers profiles. Sounds like you've considered that, but the addon you tried doesn't do that.  All I can say is hit some likely forums and try to find out if anyone knows of an addon that does. If you find one, please post the name here, I might want to use it as well :)

  • #779

    How do you go about removing a spell from a button timer bar? For the life of me I can't figure it out. Probably right in front of my nose and just can't see it. Any help would be greatly appreciated.

  • #780

    You can remove a button off a bar by holding down the left mouse button on the icon and then dragging it off the bar and letting go of the button.  If that didn't work then its likely you have the blizzard option set to lock bars; the default in that case is that you can hold down shift at the same time to override the locking behavior.

  • #783

    Thanks!  the Shift + Left click/drag worked!

  • #777

    I dont know if you are aware of this, but I have had alot of problems setting up my timers with my feral druid. When I set up my action bars they automatically copy what i have on my action bars right to my button timers bar without me doing anything. Also if i go stealth in cat form, my stealth action bar immediately becomes whatever spells I am tracking on my button timers bar replacing what i had there previously. The problems also vary between what bar I am using also, and its the weirdest thing. I play 8 seperate classes and I use this addon on all of them and I love it to death. The only class/spec I have ever seen this happen with is my  druid and only with bear and cat form. Boomkin and Resto work awesome without a hitch. Its been there for a few months, and I thought that it was a problem with how i set it up, or that it might be the bartender addon that is causing the interference, but I cant come up with anything. Also with any bar I use, Mangle and sometimes Faeri Fire wont track correctly as target auras. Sometimes they show up properly but in combat in a raid or dungeon periodically they just dissapear all together. While my other bleeds and things I track work just fine. I dont know if you want me to provide any other details, I am happy to give any information to help. Just let me know what info to send and I can. I would just love to have this working properly with my feral druid. Please help! :D

    Last edited by sneakymcpete on 4/6/2012 7:52:49 PM
  • #778

    Lemme guess - a Warrior is *not* one of the eight classes you play, since they exhibit the same basic problem with stances as you're having with forms.

    Blizzard provides 10 Action Bars and the default game UI lets you display and use the first 6 bars.  ButtomTimers by default assigns its four bars to the remaining four "hidden" action bars: button timers bar 1 is blizzard bar 10, bt bar 2 is blizz bar 9, bt 3 is blizz 8, and bt 4 is blizz 7.  This works perfectly fine for most classes.  But the reason blizzard has those four hidden bars is for classes where they do automatic bar swaps, Druid and Warriors being the main culprits. Check this link,, to see a table showing what bars are used in what forms/stances.

    To get around this you can config a button timers bar to use something like bar 3 and have that be configured for you timers.  If you find yourself pressed for bars you might have to get creative - like having two button timer bars use different ranges of the same action bar, or putting macros on a button that change what ability is on the button based on what form you're in.  It kind of sucks, but there's nothing we can really do about it.

    As for Faerie Fire and Mangle, what's probably happening is your buff was overwritten and replaced by another players buff of the same type.  What you want to do for those two debuffs is check the "Show others spells" box; that will cause it show the timer if that debuff is there regardless of who cast it.  What you'll also want to do is put into the Other Auras box the other spells cast that can put up the same debuff. That way if someone is already putting the debuff up (regardless of what class or pet ability did it) then you'll see a timer on the target and don't have to waste resources doing it as well.

    For Faerie Fire's armor debuff you want: Expose Armor, Sunder Armor, Tear Armor, Corrosive Spit

    For Mangle's bleed debuff you want: Hemorrhage, Trauma, Gore, Tendon Rip, Stampede

  • #776

    Love the addon.

    Is there a way to add to the textures of the bars. I find it hard to see in snow or when there is a lot of healing or buff/debuffs on the ground.


    Keep up the good work

  • #775

    Sorry if this has been brought up before, but I couldn't find a similar complaint in the comments.  First off, this is my favorite addon I use.  I couldn't do nearly as well on my destro lock without it.  I really hope you guys keep up the great work through mop.  But lately I've been getting a pretty decent input lag when I press my buttons, and the gcd seems to lag behind my key presses quite a bit.  This rarely happens during raids, but seems to be always present while in org beating on dummies.  I didn't know what to make of it till I recommended this addon to someone, and they started having the same problem with a key press input lag as well.  Thanks for any help and thanks again for a great addon.

    Last edited by jpgator96 on 4/4/2012 11:57:20 PM
  • #838

    Was the problem with input lag ever addressed?  Every time I soulburn on my lock, everything freezes for a second, really screwing with my multi-dotting.  I love this addon, and have been using it for all my toons for many years now, but the lag issue is forcing me to ditch it till it's fixed.

    I tried disabling all other addons and isolated it to buttontimers.  Clearing the savedvariables file to reset the configuration didn't help.  I can't for the life of me figure out why it's only this spell that causes the problem.

  • #773


    I'm using this addon long time now it helped me a lot, I couldn't play without it now on my lock.

    After last update i've noticed there is no tracking time on my dots when i set aura and timers location on buttons, it works fine for other option (right/top, left/bottom), cooldowns are ok with all three.

    Should i do clean install or try older version and wait until 4.2 relase is up ?

    thanks a lot for good work! keep it up :)

    EDIT:  I installed version 3.2.1 and it works fine again.

    Last edited by serczas on 3/28/2012 11:08:37 AM
  • #774

    Thank you for the bug report! I found the problem and subsequent beta or release builds should work correctly if you show timers on buttons.

  • #772

    i manage how to work with weapon enchants. here is a list of my changes to BETA-2.
    in Core.lua, replace line 27 by this:
    ABT_OFF_HAND = 10
    ABT_RANGED = 11
    ABT_TEXTURE_MH = 16 -- index of Main Hand slot
    ABT_TEXTURE_OH = 17 -- index of Off-Hand slot
    ABT_TEXTURE_RANGED = 18 -- index of Ranged slot
    ABT_TARGET_NAMES = { [ABT_TARGET]="target", [ABT_FOCUS]="focus", [ABT_PLAYER]="player", [ABT_PARTY]="party", [ABT_PET]="pet", [ABT_VEHICLE]="vehicle", [ABT_TOTEM]="totem", [ABT_MAIN_HAND]="mainhand", [ABT_OFF_HAND]="offhand", [ABT_RANGED]="ranged" }

    after line 270, just before local buttonOptions definition add following:
    function ABT:isWeaponEnchant(info)
        local barIdx, buttonIdx = ABT:getIndex(info)
        local tgt = ABT:GetValue(barIdx, buttonIdx, "target")
        return tgt == ABT_MAIN_HAND or tgt == ABT_OFF_HAND or tgt == ABT_RANGED

    then replace line 291 by this:
                values = { [ABT_TARGET]=L["Target"], [ABT_FOCUS]=L["Focus"], [ABT_PLAYER]=L["Player"], [ABT_PARTY]=L["Party/Raid Member"], [ABT_PET]=L["Pet"], [ABT_VEHICLE]=L["Vehicle"], [ABT_TOTEM]=L["Totem"], [ABT_MAIN_HAND]=L["Main Hand"], [ABT_OFF_HAND]=L["Off-Hand"], [ABT_RANGED]=L["Ranged"] },

    line 352 by this:
                hidden = function(info) return ABT:isNotAura(info) or ABT:isTotem(info) or ABT:isWeaponEnchant(info) end,

    line 361 by:
                hidden = function(info) return ABT:isNotAura(info) or ABT:isTotem(info) or ABT:isWeaponEnchant(info) end,

    after line 952 add this:
        self:RegisterEvent ("UNIT_INVENTORY_CHANGED", "MarkNeedDebuffs") -- to track item enchants

    after line 1055 add this:
        self:UnregisterEvent ("UNIT_INVENTORY_CHANGED")

    after line 1387 add this:
                    elseif (target == "mainhand") then
                      local hasEnchant, enchantExpiration, enchantCharges = GetWeaponEnchantInfo();
                      if (hasEnchant) then
                          local textureName = GetInventoryItemTexture("player", ABT_TEXTURE_MH);
                          auraFound = { name = "Main Hand", iconTexture = textureName, count = enchantCharges, caster = "player", duration = 1800, expirationTime = (currenttime + enchantExpiration/1000) }
                    elseif (target == "offhand") then
                      local _, _, _, hasEnchant, enchantExpiration, enchantCharges = GetWeaponEnchantInfo();
                      if (hasEnchant) then
                          local textureName = GetInventoryItemTexture("player", ABT_TEXTURE_OH);
                          auraFound = { name = "Off-Hand", iconTexture = textureName, count = enchantCharges, caster = "player", duration = 1800, expirationTime = (currenttime + enchantExpiration/1000) }
                    elseif (target == "ranged") then
                      local _, _, _, _, _, _, hasEnchant, enchantExpiration, enchantCharges = GetWeaponEnchantInfo();
                      if (hasEnchant) then
                          local textureName = GetInventoryItemTexture("player", ABT_TEXTURE_RANGED);
                          auraFound = { name = "Ranged", iconTexture = textureName, count = enchantCharges, caster = "player", duration = 1800, expirationTime = (currenttime + enchantExpiration/1000) }

    change line 1733 to
                if useAsSpellTarget and (targetIdx ~= ABT_TOTEM or targetIdx ~= ABT_MAIN_HAND or targetIdx ~= ABT_OFF_HAND or targetIdx ~= ABT_RANGED) then

    and of course, in your locale, add lines after 58:
    L["Main Hand"] = true
    L["Off-Hand"] = true
    L["Ranged"] = true

    there is only one thing left - i don't know to get Total duration of enchant. Shammys enchant stay for 30 mins, but what about rogues? or there is more specific function that can give precise answer?

  • #765


    New BETA released for folks to test out.  Adds a new target type of Totem to finally allow Shamans to track the time remaining on a totem.  The other main change is that if you have an item or a macro on the button we should now be figuring out what aura slash spell effect is generated by it and be able to track it.

     I've almost completely rewritten the aura checking code; I think it should perform better now but I don't have any profiling numbers to know for sure.  The more auras you're tracking on a given target, the better the perf gain would be.

    If you try out the BETA build please reply to this comment with feedback. Even if you don't make use of the new features, knowing that it all still works and you're not broken lets me know when its safe to release it as the next version.

    Last edited by stencil on 3/24/2012 9:34:19 PM
  • #770

    Beta 2 build is up now to fix the bug Nameless76 identified and tracked down. Many thanks to them for their efforts.

    Last edited by stencil on 3/27/2012 1:48:49 PM
  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Gamepedia Free-shirt Giveaway