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
I have used Bartender before but had not noticed 'class bars' before . Installed it now to test for Dragonflight and there are 4 class bars as well as action bars. My question is, do they perform a different function to the action bars ? If using as a cast bar, should I use class or action bar -- and does it matter ... ?
In reply to Sheharazade:
The Class Bars are normal action bars, but they are used on some classes for special purposes, eg. on Druids the 4 bars are used for the form-specific bars, and on Rogues the first one is used for stealth, etc.
If you are not one of those classes, you can also just use them as normal bars. If the 8 main bars are not enough that is.
Thanks for your incredible work on this addon!
I have 2 questions regarding the addition of dragon flying and how this will behave with Bartender.
1. Currently, Bartender allows showing/hiding bars based on vehicle UI and possessing. When mounting a DF mount, is this classed as a vehicle or possess or something else?
2. When mounting a DF mount, does Bar 1 behave as it would when in a vehicle or being possessed? Or is the Bonus Action Bar used?
Thanks again!
In reply to dmeister406:
Dragon Riding will change bar 1 (if its configured for possessing), and its classed as a possess, but maybe also a vehicle. It does however not have a vehicle UI.
In reply to nevcairiel:
OK great! I have the following custom conditional for bar 1, so it should show irrespective of whether the dragonflight mount is a vehicle, possess or override:
[target=vehicle,exists]show;[overridebar]show;[possessbar]show;hide
Hey. Is it possible to make the extra action bar from bartender skinnable with masque?
In reply to Hellsy55:
i was just about to post about the bag bar missing masque, and i noticed this in his description
Please add the functionality to right click an element and adjust it. This was a feature I enjoyed with Dominos and it makes Bartender feel really clunky in comparison.
In reply to MLNeidig:
Yes, please!
Unfortantly reverting back to 4.13.2 and it did not fix it for me. I made sure to delete the old folder before reverting back. :( I will have to stop using Bartender for now until this is fixed :( so sad. I love this addon.
In reply to pecanz72:
Unfortunately my crystal ball is broken and I did not find any reference to what your issue might be?
For anyone getting LUA errors when clicking spells etc try reverting to version 4.13.2 (previous version).
Fixed it for me...
You probably know about this bug already, but the Poisons expandable button doesn't work.
Clicking the icon in the Spellbook works and brings up a selection of poisons, but not when placed in a Bartender row.
In reply to weltallica:
With the Pet button for Hunter also bugs....please fix it.
In reply to Xaotinar:
This is a known issue, called out at the top of the page:
Status for Dragonflight / 10.0
Involves the flyout function apparently, requiring Blizz to fix.
In reply to pmrowczy:
So is this an issue that Blizzard needs to fix in the way that addons interact with the default UI? When I do not have Bartender enabled then I am able to get the spell flyouts to work.
in every fight this happens.. ..every fight...this is getting real old fast...
Message: Interface/FrameXML/EditModeSystemTemplates.lua:631: attempt to perform arithmetic on local 'offsetY' (a nil value)
Time: Sat Nov 5 23:40:21 2022
Count: 13
Stack: Interface/FrameXML/EditModeSystemTemplates.lua:631: attempt to perform arithmetic on local 'offsetY' (a nil value)
[string "@Interface/FrameXML/EditModeSystemTemplates.lua"]:631: in function `GetBottomAnchoredHeight'
[string "@Interface/FrameXML/EditModeUtil.lua"]:44: in function `GetBottomActionBarHeight'
[string "@Interface/FrameXML/UIParent.lua"]:3074: in function `UIParentManageFramePositions'
[string "@Interface/FrameXML/UIParent.lua"]:2561: in function <Interface/FrameXML/UIParent.lua:2548>
[string "=[C]"]: in function `SetAttribute'
[string "@Interface/FrameXML/UIParent.lua"]:3104: in function `UIParent_ManageFramePositions'
[string "@Interface/FrameXML/EditModeManager.lua"]:641: in function <Interface/FrameXML/EditModeManager.lua:608>
[string "=[C]"]: in function `UpdateBottomActionBarPositions'
[string "@Interface/FrameXML/EditModeManager.lua"]:555: in function `UpdateActionBarLayout'
[string "@Interface/FrameXML/EditModeSystemTemplates.lua"]:655: in function `UpdateGridLayout'
[string "@Interface/FrameXML/ActionButton.lua"]:373: in function `UpdateAction'
[string "@Interface/FrameXML/ActionButton.lua"]:803: in function `OnEvent'
[string "@Interface/FrameXML/ActionButton.lua"]:216: in function <Interface/FrameXML/ActionButton.lua:213>
Locals: self = StanceBar {
0 = <userdata>
buttonPadding = 2
UpdateSystemSettingAlwaysShowButtons = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:772
UpdateMagnetismRegistration = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:506
GetSnapOffsets = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:411
UpdateFrameStrata = <function> defined @Interface/FrameXML/ActionBar.lua:194
UpdateButtonArt = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:669
IsFrameAnchoredToMe = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:469
buttonTemplate = "StanceButtonTemplate"
UpdateState = <function> defined @Interface/FrameXML/StanceBar.lua:35
IsShown = <function> defined @Interface/FrameXML/ActionBar.lua:286
GetSelectionOffset = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:363
ResetToDefaultPosition = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:148
RefreshButtonArt = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:662
GetScaledSelectionSides = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:355
SelectSystem = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:534
buttonArtDirty = false
GetFrameMagneticEligibility = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:489
Update = <function> defined @Interface/FrameXML/StanceBar.lua:22
AddLayoutChildren = <function> defined @Interface/SharedXML/LayoutFrame.lua:48
IsBelowFrame = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:322
UpdateSystemSettingIconSize = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:714
SetScaleBase = <function> defined =[C]:-1
HasActiveChanges = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:244
GetScaledCenter = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:348
DoesSettingDisplayValueEqual = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:268
OnLoad = <function> defined @Interface/FrameXML/StanceBar.lua:6
UpdateDisplayInfoOptions = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:279
dontShowAllButtonsInEditMode = true
settingDisplayInfoMap = <table> {
}
addSystemIndexToName = true
IsLayoutFrame = <function> defined @Interface/SharedXML/LayoutFrame.lua:36
DoesSettingValueEqual = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:263
MarkDirty = <function> defined @Interface/SharedXML/LayoutFram
In reply to creepshow11483:
Jeez, thankful much.
Since pre-patch nevcairiel has posted 8 updates to this addon. He's one of the most hard working and reactive devs out there.
Bartender has worked pretty much flawlessly to date, these new errors (which started for me yesterday) are probably due to a recent blizzard hotfix.
I'm sure he'll have a fix out very soon. In the meantime more thanks for the hardworking, UNPAID devs that make your game better!!!
I was in a raid last night and had a bartender "protected function" error. I was on Remnant of Ner'zhul in Sanctum of Domination and tried carrying an orb to the side. Instead of the button popping up to allow me to release the orb over the side, I got the error. I had to disable bartender to get the button to show up.
Hi, i got this when i enter to a M+.
I copy if this info helps:
Interface/FrameXML/EditModeSystemTemplates.lua:631: attempt to perform arithmetic on local 'offsetY' (a nil value)
[string "@Interface/FrameXML/EditModeSystemTemplates.lua"]:631: in function `GetBottomAnchoredHeight'
[string "@Interface/FrameXML/EditModeUtil.lua"]:39: in function `GetBottomActionBarHeight'
[string "@Interface/FrameXML/UIParent.lua"]:3074: in function `UIParentManageFramePositions'
[string "@Interface/FrameXML/UIParent.lua"]:2561: in function <Interface/FrameXML/UIParent.lua:2548>
[string "=[C]"]: in function `SetAttribute'
[string "@Interface/FrameXML/UIParent.lua"]:3104: in function `UIParent_ManageFramePositions'
[string "@Interface/FrameXML/EditModeManager.lua"]:641: in function <Interface/FrameXML/EditModeManager.lua:608>
[string "=[C]"]: in function `UpdateBottomActionBarPositions'
[string "@Interface/FrameXML/EditModeManager.lua"]:555: in function `UpdateActionBarLayout'
[string "@Interface/FrameXML/EditModeSystemTemplates.lua"]:655: in function `UpdateGridLayout'
[string "@Interface/FrameXML/ActionButton.lua"]:373: in function `UpdateAction'
[string "@Interface/FrameXML/ActionButton.lua"]:803: in function `OnEvent'
[string "@Interface/FrameXML/ActionButton.lua"]:216: in function <Interface/FrameXML/ActionButton.lua:213>
Locals:
self = MainMenuBar {
0 = <userdata>
QuickKeybindRightShadow = Texture {
}
UpdateSystemSettingAlwaysShowButtons = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:772
UpdateMagnetismRegistration = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:506
GetSnapOffsets = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:411
UpdateFrameStrata = <function> defined @Interface/FrameXML/ActionBar.lua:194
UpdateButtonArt = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:669
IsFrameAnchoredToMe = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:469
buttonTemplate = "MainBarActionBarButtonTemplate"
ShowBase = <function> defined =[C]:-1
IsShown = <function> defined @Interface/FrameXML/ActionBar.lua:286
GetSelectionOffset = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:363
ResetToDefaultPosition = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:148
RefreshButtonArt = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:662
GetScaledSelectionSides = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:355
SelectSystem = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:534
buttonArtDirty = false
GetFrameMagneticEligibility = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:489
AddLayoutChildren = <function> defined @Interface/SharedXML/LayoutFrame.lua:48
IsBelowFrame = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:322
UpdateSystemSettingIconSize = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:714
SetScaleBase = <function> defined =[C]:-1
HasActiveChanges = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:244
GetScaledCenter = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:348
DoesSettingDisplayValueEqual = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:268
OnLoad = <function> defined @Interface/FrameXML/MainMenuBar.lua:6
UpdateDisplayInfoOptions = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:279
ActionBarPageNumber = Frame {
}
settingDisplayInfoMap = <table> {
}
addSystemIndexToName = true
IsLayoutFrame = <function> defined @Interface/SharedXML/LayoutFrame.lua:36
DoesSettingValueEqual = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:263
MarkDirty = <function> defined @Interface/SharedXML/LayoutFrame.lua:90
ShouldResetSettingsDialogAnchors = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:91
dirtySettings = <table> {
}
UpdateGridLayout = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:648
IsToTheLeftOfFrame = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:304
GetSettingsDialogAnchor = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:288
hasActiveChanges = false
OnSystemLoad = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:3
ClearFrameSnap = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:448
GetCombinedCenterOffset = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:398
SetupSettingsDialogAnchor = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:232
IsShownOverride = <function> defined @Interface/FrameXML/ActionBar.lua:286
dirty = false
SetPointBase = <function> defined =[C]:-1
UpdateSystem = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:586
UpdateShownButtons = <function> defined @Interface/FrameXML/ActionBar.lua:198
UpdateDirtySettings = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:112
BreakSnappedFrames = <function> defined @Interface/FrameXML/EditModeSystemTemplates.lua:431
HideOverride = <function> defined @Interface/FrameXML/ActionBar.lua:313
VehicleLeaveButton = MainMenuBarVehicleLeaveButton {
}
systemIndex = 1
snappedFrames = <table> {
}
SetShownOverride = <function> defined @Interface/FrameXML/ActionBar.lua:298
SetPointOverride = <function> defined @