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.
Status for Dragonflight / 10.0
- Hold-to-cast is not currently available for addons
- Action Bars have been slightly re-arranged in Bartender4 for Dragonflight
- 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!)
- 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
please add extra action button support for classic cataclysm, its behind everybar at the bottom if this addon is enabled and unable to be moved as addon does not even have a module for it...makes it unusable or having to use multiple other addons that conflict and cuase ui errors...
dragon soul kinda requires this button :P
I am able to move eye queue status but it doesnt show despite enabled. Retail!
I can't use the Pet Bar in Bartender.
Everything else is working great and I really appreciate your sharing it with the community.
In reply to cursedgarbage: are you using a pet that you changed the spec of since 11.1? My old pets that were their original spec were working fine, but it seems like changing pet spec clears their action bars so you may want to see if you can drag their abilities from the pet tab onto where your pet bar normally is.
In reply to Hambrick:
In replay to Hambrick, good idea but sadly that didn't work but thanks for replying.
what hapened to my bagbar, it's green and no bags
In reply to stormeagle2: Having the same issue with the green square over my bags. Seems to be happening only when switching characters.
In reply to stormeagle2: Same - only solution I can find so far is exiting the game and then log back in.
One remaining issue since 11.1 is I can't disable pet auto-actions in the Pet Bar. Used to be able to right-click to toggle them but now it does nothing. EDIT: found issue #2306 on WoWAce, sorry for the noise.
Love the addon but persisting back to yesterday on launch, having issues with my bag bar not showing. Only showing one or no bags and won't let me adjust it. Any ideas how to fix this so I can show all my bags?
honestly, very impressed that it's working today. i updated my addons today and then instantly forgot that this one still might've needed to be reverted. so glad it didn't. thanks man!
Thank you so much for the update so fast I was getting the worst error, I cannot live without bartender so happy I set it up the first time been hooked ever since. <3 Praylus
I don't know how many years ago I first used this mod. 18? 20? Every time I return to WoW, it's still here, still working. And was quickly fixed when an issue arose today. Thanks, donation incoming.
error today 26/12/2025
Message: Interface/AddOns/Blizzard_Flyout/Flyout.lua:96: attempt to index field 'popup' (a nil value)
Time: Wed Feb 26 07:08:39 2025
Count: 2
Stack:
[Interface/AddOns/Blizzard_FrameXML/SecureHandlers.lua]:296: in function <...nterface/AddOns/Blizzard_FrameXML/SecureHandlers.lua:279>
[tail call]: ?
Locals:
self = BT4Button47 {
NewActionTexture = Texture {
}
BorderShadow = Texture {
}
TargetReticleAnimFrame = Frame {
}
icon = BT4Button47Icon {
}
SlotArt = Texture {
}
InterruptDisplay = Frame {
}
popupOffset = -4
arrowCrossAxisSize = 7
HighlightTexture = Texture {
}
flashing = 0
CooldownFlash = Frame {
}
IconMask = MaskTexture {
}
arrowMainAxisSize = 18
SpellHighlightAnim = AnimationGroup {
}
PushedTexture = Texture {
}
Name = BT4Button47Name {
}
_state_type = "action"
state_types = <table> {
}
down = true
arrowDownTexture = "UI-HUD-ActionBar-Flyout-Down"
AutoCastOverlay = Frame {
}
Border = BT4Button47Border {
}
openArrowOffset = 2
arrowNormalTexture = "UI-HUD-ActionBar-Flyout"
_state_action = 47
SpellCastAnimFrame = Frame {
}
closedArrowOffset = 4
popupDirection = "UP"
rangeTimer = -1
zoneAbilityDisabled = false
arrowOverTexture = "UI-HUD-ActionBar-Flyout-Mouseover"
config = <table> {
}
state_actions = <table> {
}
id = 47
CheckedTexture = Texture {
}
NormalTexture = BT4Button47NormalTexture {
}
action = 0
Arrow = Texture {
}
Count = BT4Button47Count {
}
HotKey = BT4Button47HotKey {
}
TextOverlayContainer = Frame {
}
LevelLinkLockIcon = Texture {
}
Flash = BT4Button47Flash {
}
SpellHighlightTexture = Texture {
}
__LAB_Version = 119
outOfRange = false
header = BT4Bar4 {
}
SlotBackground = Texture {
}
popupCrossAxisSize = 47
cooldown = BT4Button47Cooldown {
}
}
header = BT4Bar4 {
module = <table> {
}
currentButtonOffset = 0
elapsed = 0
hidedriver = <table> {
}
buttons = <table> {
}
id = "4"
overlay = BT4Bar4Overlay {
}
config = <table> {
}
name = "Bar 5"
bindingmapping = "MULTIACTIONBAR4BUTTON%d"
statebutton = <table> {
}
buttonConfig = <table> {
}
numbuttons = 12
}
preBody = " if self:GetAttribute("type") == "action" then
local type, action = GetActionInfo(self:GetAttribute("action"))
if type == "flyout" and self:GetAttribute("LABUseCustomFlyout") then
local flyoutHandler = owner:GetFrameRef("flyoutHandler")
if not down and flyoutHandler then
flyoutHandler:SetAttribute("flyoutParentHandle", self)
flyoutHandler:RunAttribute("HandleFlyout", action)
end
self:CallMethod("UpdateFlyout")
return false
end
-- hide the flyout
local flyoutHandler = owner:GetFrameRef("flyoutHandler")
if flyoutHandler then
flyoutHandler:Hide()
end
-- if this is a pickup click, disable on-down casting
-- it should get re-enabled in the post handler, or the OnDragStart handler, whichever occurs
if button ~= "Keybind" and ((self:GetAttribute("unlockedpreventdrag") and not self:GetAttribute("buttonlock")) or IsModifiedClick("PICKUPACTION")) and not self:GetAttribute("LABdisableDragNDrop") then
self:CallMethod("ToggleOnDownForPickpostBody = " local type, action = GetActionInfo(self:GetAttribute("action"))
if message ~= format("%s|%s", tostring(type), tostring(action)) then
self:RunAttribute("UpdateState", self:GetAttribute("state"))
end
-- re-enable ondown casting if needed
if self:GetAttribute("LABToggledOnDown") then
self:SetAttribute("LABToggledOnDown", nil)
self:CallMethod("ToggleOnDownForPickup", false)
end
"
button = "LeftButton"
down = false
message = "summonmount
il"
newbutton = "LeftButton"
In reply to armour61: read comments
cool
For those unable to currently use bartender and know how to comment here if you click on Versions next to the Comments link that took you here, there is alpha release indicated by the A in the box on the left hand side, and it appears to be working. ie not giving the flyout error
In reply to Groggynod3D:
Thank you worked for me!
Any new updates for the patch?
Bartender seems to have all the buttons/bars ineffective, not functional with this lastest wow version. I have to disable it within Addons for my buttons to once again work.