Bartender4
Bartender4 is a full ActionBar replacement mod. It provides you with all the features needed to fully customization most aspects of your action and related bars.
Bartender4 in Midnight: As of version 4.16.5, Midnight support is in preview - it'll be worked on until release, of course.
Major Changes since Dragonflight / 10.0
- Hold-to-cast is not currently available for addons
- Action Bars have been slightly re-arranged in Bartender4 for Dragonflight and beyond
- Bar 1-8 now reflect Blizzard Bars 1-8 (these are old 1, 3-6, and the 3 new bars)
- The old bars 7-10 are now called "Class Bar 1-4" (Shapeshifting, Stances, etc)
- The old bar 2 is now called Bonus Action Bar
Features
- Support for all Action Bars and all related bars
- 10 Action Bars (13 in Dragonflight & War Within!)
- Stance Bar
- Pet Bar
- Bag Bar
- Micro Menu
- XP/Reputation Bar
- All Bars are fully customizable (Scale, Alpha, Fade-Out settings, ...)
- Very flexible and customizable Show/Hide driver based on Macro Conditions
- Additional Layout and Paging settings for Action Bars
- Page all bars based on Stance or Modifier
- Possess Bar support
- Custom State driver support with Macro Conditions
- Options to hide specific elements of the buttons (Macro Text, HotKey, more could be added on demand)
- StickyFrames support
- Masque/ButtonFacade support!
- Easy Hotkey Binding using KeyBound
- Options to control the hiding of the default blizzard artwork (you might still want that to be displayed..)
FAQ
Q: I cannot move/drag my skills on my bars?
A: Hold Shift to move skills safely. You can also unlock your bars in the Bartender4 options, but using Shift is safer and recommended.
Q: How do i access the Configuration?
A: You can open the configuration with the Slash Commands (/bt or /bartender) or through the Bartender4 LDB plugin.
Q: Where are my keybindings? And how do i bind new keys?
A: Bartender4 buttons should automatically inherit keybindings from the Blizzard bars. For new keybindings, you can use KeyBound to re-bind your keys. You can access KeyBound by its slash command (/kb) or through the button in the BT4 config. Hover a button, press key → voila!
Q: Can I skin the buttons beyond the built-in options?
A: Bartender4 allows skinning through Masque! After installing both Bartender4 and Masque, you can customize the BT4 appearance in the Masque options.
Q: How do i disable the snapping of the bars?
A: Currently, you can temporarily override the snapping by holding down the Shift Key while moving your bars, or uncheck the option in the popup when your bars are unlocked.
Feature Requests/Bug Tracker
Please submit Bugs and/or Feature Requests using the Ticket System on the WoWAce Project page or in the Bartender4 Forum Thread. Please provide as many information as possible, including your client language, the exact version you are running, how to reproduce any errors, and a stack trace, if applicable.
Links
WoWAce Project: Bartender4 on WoWAce
Custom State Header: Info page on WoWAce
-
View User Profile
-
Send Message
Posted Jan 14, 2026In reply to OndowMosa:
In reply to AfroJesus:
restart the game, not just reload - that did it for me
-
View User Profile
-
Send Message
Posted Jan 14, 2026In reply to nilius5318: THANK YOU!!!
-
View User Profile
-
Send Message
Posted Jan 12, 2026I too have non-working buttons on the TBC PTR. Disabled every addon except Bartender and the button is lighting up but not triggering. Very odd.
-
View User Profile
-
Send Message
Posted Jan 14, 2026In reply to inthemixMike: Same. Did you make it work somehow?
-
View User Profile
-
Send Message
Posted Jan 11, 2026I was using SpartinUI and when using the Blizz one button, the hold and cast option does not work, it does not let the button continue to cycle through the attacks, anyone else have this issue ?
-
View User Profile
-
Send Message
Posted Jan 9, 2026Hey I've got a strange issue where my buttons on my bars are not working on the TBC PTR unless I hold down the shift key... and then it only will active with a mouse click and not by pressing the actual keybinding. I've check all of the settings and I don't have any weird modifiers turned on.
Please help!
-
View User Profile
-
Send Message
Posted Jan 4, 2026[Bartender4/libs/LibButtonGlow-1.0-8/LibButtonGlow-1.0.lua]:64: in function <...tender4/libs/LibButtonGlow-1.0/LibButtonGlow-1.0.lua:59>
Locals:
self = ButtonGlowOverlay1 {
spark = ButtonGlowOverlay1Spark {
}
outerGlowOver = ButtonGlowOverlay1OuterGlowOver {
}
innerGlow = ButtonGlowOverlay1InnerGlow {
}
__LBGVersion = 8
outerGlow = ButtonGlowOverlay1OuterGlow {
}
animOut = AnimationGroup {
}
animIn = AnimationGroup {
}
innerGlowOver = ButtonGlowOverlay1InnerGlowOver {
}
ants = ButtonGlowOverlay1Ants {
}
}
elapsed = 0.012000
cooldown = BT4Button10Cooldown {
}
(*temporary) = <no value>
(*temporary) = BT4Button10Cooldown {
}
(*temporary) = <no value>
(*temporary) = 48
(*temporary) = 48
(*temporary) = 22
(*temporary) = 0.012000
(*temporary) = 0.010000
(*temporary) = "attempt to compare a secret value"
-
View User Profile
-
Send Message
Posted Jan 12, 2026In reply to Yorlun:
U ned open LibButtonGlow-1.0.lua file in any text editor and comment all lines from 60 to 68 (# symbol).
Afther this u need insert SetAltha(0.5) before "end"
-
View User Profile
-
Send Message
Posted Jan 12, 2026In reply to Yorlun:
U ned open LibButtonGlow-1.0.lua file in any text editor and comment all lines from 60 to 68 (# symbol).
Afther this u need insert SetAltha(0.5) before "end"
-
View User Profile
-
Send Message
Posted Jan 12, 2026In reply to Yorlun:
U ned open LibButtonGlow-1.0.lua file in any text editor and comment all lines from 60 to 68 (# symbol).
Afther this u need insert SetAltha(0.5) before "end"
-
View User Profile
-
Send Message
Posted Jan 12, 2026In reply to Yorlun:
U ned open LibButtonGlow-1.0.lua file in any text editor and comment all lines from 60 to 68.
Afther this u need insert SetAltha(0.5) before "end"
-
View User Profile
-
Send Message
Posted Jan 12, 2026In reply to Yorlun:
U ned open LibButtonGlow-1.0.lua file in any text editor and comment all lines from 60 to 68.
Afther this u need insert SetAltha(0.5) before end
-
View User Profile
-
Send Message
Posted Jan 12, 2026In reply to Yorlun:
U ned open LibButtonGlow-1.0.lua file in any text editor and comment all lines from 60 to 68.
-
View User Profile
-
Send Message
Posted Jan 2, 2026Will this work when tbc prepatch hits in anniversary servers? It's completely broken in ptr right now :P I really prefer bartender over edit mode lol
-
View User Profile
-
Send Message
Posted Dec 21, 2025if i use shift/alt/ctrl to swap bars, to replace button macros where i would swap abilities/spells based on if a modifier is being held, it works fine until im using a class with stealth.. because then i cant use it in stealth, i cant seem to get it to assign a seperate bar specifically when stealthed.. is there a better way to do this? where can i find info on this (like i guess macros in general?) or to fix my specific stealth bar switching issue?
-
View User Profile
-
Send Message
Posted Dec 22, 2025In reply to LanaNyan:
You can use the custom conditionals feature, which works similar to macros. For example, from my own configuration:
The first matching entry will be used.
-
View User Profile
-
Send Message
Posted Dec 30, 2025In reply to azymyrta: OH, the first matching entry is used? it all makes sense now O.O;;; thank you
-
View User Profile
-
Send Message
Posted Dec 20, 2025> Bartender4 in Midnight: As of version 4.16.5, Midnight support is in preview - it'll be worked on until release, of course.
I love you.
-
View User Profile
-
Send Message
Posted Dec 18, 2025Midnight PTR 75x ...tender4/libs/LibButtonGlow-1.0-8/LibButtonGlow-1.0.lua:64: attempt to compare a secret value
[Bartender4/libs/LibButtonGlow-1.0-8/LibButtonGlow-1.0.lua]:64: in function <...tender4/libs/LibButtonGlow-1.0/LibButtonGlow-1.0.lua:59>
Locals:
self = ButtonGlowOverlay1 {
spark = ButtonGlowOverlay1Spark {
}
outerGlowOver = ButtonGlowOverlay1OuterGlowOver {
}
innerGlow = ButtonGlowOverlay1InnerGlow {
}
__LBGVersion = 8
outerGlow = ButtonGlowOverlay1OuterGlow {
}
animOut = AnimationGroup {
}
animIn = AnimationGroup {
}
innerGlowOver = ButtonGlowOverlay1InnerGlowOver {
}
ants = ButtonGlowOverlay1Ants {
}
}
elapsed = 0.015000
cooldown = BT4Button3Cooldown {
}
(*temporary) = <no value>
(*temporary) = BT4Button3Cooldown {
}
(*temporary) = <no value>
(*temporary) = 48
(*temporary) = 48
(*temporary) = 22
(*temporary) = 0.015000
(*temporary) = 0.010000
(*temporary) = "attempt to compare a secret value"
-
View User Profile
-
Send Message
Posted Dec 18, 2025Keybinds are not saving, i change them in bartender itself and the blizzard base line slot so not sure why they aren't staying the same