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
This keeps happening when i have BT enabled..
Message: Interface/FrameXML/EditModeSystemTemplates.lua:631: attempt to perform arithmetic on local 'offsetY' (a nil value)
Time: Sat Nov 5 02:11:53 2022
Count: 152
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"]: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 @
Hi Folks
Thanks for all the updates, really appreciated.
Just 1 minor issue, not a biggy, just cosmetic.
the Status Tracking Bar when placed at the top of the screen of a toon max level drops the Rep bar to the XP position, it used to stay put and not leave a gap.
Under 60 still tracking XP
Picture of Bar still tracking XP
60 no longer tracking XP
Picture of bar no longer tracking XP
Thank you
Hello - when enabling the Micro Menu from the options it doesn't seem to appear anywhere on my screen? Is this a known issue or something on my end? I've disabled all addons and have tried enabling the menu with just Bartender active but still can't see it. Thanks
Message: Interface/FrameXML/EditModeUtil.lua:22: attempt to perform arithmetic on local 'offsetX' (a nil value)
Time: Fri Nov 4 20:41:47 2022
Count: 401
Stack: Interface/FrameXML/EditModeUtil.lua:22: attempt to perform arithmetic on local 'offsetX' (a nil value)
[string "@Interface/FrameXML/EditModeUtil.lua"]:22: in function `GetRightActionBarWidth'
[string "@Interface/FrameXML/EditModeUtil.lua"]:53: in function `GetRightContainerAnchor'
[string "@Interface/FrameXML/UIParent.lua"]:3082: 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 = <table> {
GetSettingMapFromSettings = <function> defined @Interface/FrameXML/EditModeUtil.lua:58
IsRightAnchoredActionBar = <function> defined @Interface/FrameXML/EditModeUtil.lua:3
GetRightContainerAnchor = <function> defined @Interface/FrameXML/EditModeUtil.lua:52
IsBottomAnchoredActionBar = <function> defined @Interface/FrameXML/EditModeUtil.lua:8
GetRightActionBarWidth = <function> defined @Interface/FrameXML/EditModeUtil.lua:18
GetBottomActionBarHeight = <function> defined @Interface/FrameXML/EditModeUtil.lua:33
}
offset = 0
point = nil
relativeTo = nil
relativePoint = nil
offsetX = nil
offsetY = nil
(*temporary) = 45.000057
(*temporary) = 45.000057
(*temporary) = MultiBarRight {
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 = "MultiBar3ButtonTemplate"
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
i take this error by mouse over any npc doing begining draenor campaign
maybe this can help you to fix any bug
Any idea when the fix for 'expandable' spells like the hunter pet, portal, teleport, summon demon tabs, etc will be fixed? it's annoying to have to go back into my spell book and use them
I've noticed the quantity numbers in the icons are all smaller, even though the icons are all the same size as before (I've checked).
Is this a bartender thing, or do I have another addon doing that (that's no longer working)?
Or could it be a Blizzard design decision of the new UI, where the numbers now take a smaller percentage of the icons?
In reply to weltallica:
Blizzard changed the relative size of the text elements, as they increased the size of buttons.
The next version of Bartender4 will adjust the default size of the text elements as well as add options for your to control them.
In reply to nevcairiel:
Thank you!
Peace of mind is a rare gift.
After the latest Blizzard hotfix "Dragonflight Pre-Patch Hotfixes for November 3rd, 2022" Bartender is not working anymore.
In reply to axxislex:
Currently throwing 2-3 errors per minute. Increasing to 2-3 per second while grouped or in a raid. Also, throws an ignore/disable error when trying to click items from the bag.
172x ...rofessions/Blizzard_ProfessionsCraftingOutputLog.lua:242: attempt to compare number with nil
[string "@Interface/AddOns/Blizzard_Professions/Blizzard_ProfessionsCraftingOutputLog.lua"]:242: in function `elementExtentCalculator'
[string "@Interface/SharedXML/Scroll/ScrollBoxListView.lua"]:403: in function `CalculateFrameExtent'
[string "@Interface/SharedXML/Scroll/ScrollBoxListView.lua"]:543: in function `CalculateExtents'
[string "@Interface/SharedXML/Scroll/ScrollBoxListView.lua"]:572: in function <Interface/SharedXML/Scroll/ScrollBoxListView.lua:538>
[string "=(tail call)"]: ?
[string "=(tail call)"]: ?
[string "@Interface/SharedXML/Scroll/ScrollBox.lua"]:145: in function `FullUpdateInternal'
[string "@Interface/SharedXML/Scroll/ScrollBox.lua"]:631: in function `FullUpdateInternal'
[string "@Interface/SharedXML/Scroll/ScrollBox.lua"]:113: in function `FullUpdate'
[string "@Interface/SharedXML/Scroll/ScrollBox.lua"]:605: in function <Interface/SharedXML/Scroll/ScrollBox.lua:604>
[string "=[C]"]: ?
[string "@Interface/SharedXML/CallbackRegistry.lua"]:143: in function <Interface/SharedXML/CallbackRegistry.lua:142>
...
[string "@Interface/SharedXML/Scroll/ScrollBoxListView.lua"]:211: in function <Interface/SharedXML/Scroll/ScrollBoxListView.lua:208>
[string "=[C]"]: ?
[string "@Interface/SharedXML/CallbackRegistry.lua"]:143: in function <Interface/SharedXML/CallbackRegistry.lua:142>
[string "=[C]"]: ?
[string "@Interface/SharedXML/CallbackRegistry.lua"]:146: in function `TriggerEvent'
[string "@Interface/SharedXML/DataProvider.lua"]:48: in function `Insert'
[string "@Interface/SharedXML/Scroll/ScrollBoxListView.lua"]:138: in function `InsertElementData'
[string "@Interface/SharedXML/Scroll/ScrollBox.lua"]:536: in function `InsertElementData'
[string "@Interface/AddOns/Blizzard_Professions/Blizzard_ProfessionsCraftingOutputLog.lua"]:330: in function `FinalizePendingResultData'
[string "@Interface/AddOns/Blizzard_Professions/Blizzard_ProfessionsCraftingOutputLog.lua"]:292: in function <...rofessions/Blizzard_ProfessionsCraftingOutputLog.lua:288>
Locals:
dataIndex = 1
resultData = <table> {
bonusData = <table> {
}
quantity = 244221
currencyID = 1585
}
height = 46
rows = 0
(*temporary) = nil
(*temporary) = "attempt to compare number with nil"
ElementBonusRowHeight = 31
Bartender not letting move my Quest tracker with wow's new UI. Bartender keeps putting it back under mini map after I have saved it to a new location.
In reply to Doomcrow:
Bartender does not touch the quest tracker.
After I've been logged on for a while, I'm not able to right-click anything in my inventory, such as a hearthstone or invis pot without the error: "Bartender4 has been blocked from an action only available to the Blizzard UI."
Reloading is a temporary fix, but if I'm in a dungeon no one wants to wait around for the tank to reload for 30 seconds before an invis.
I'm running bug grabber / bugsack, but not getting any specific lua errors that I can provide here. I do not run any inventory-management addons.
Any suggestions?
Spell flyouts are working fine with the default UI, only when I enable Bartender do they break.
In reply to MystbornGames:
They are broken with all action bar addons, because the way Blizzard changed them is impossible for addons to use them. Hopefully they'll fix it.
In reply to nevcairiel:
Wow, came here for this same reason as well. This is extremely frustrating. Do you recommend submitting a bug ticket to Blizzard?
wile using bartender cant use rogue poison tab, cant use pet summon tab, cant use warlock demon summon tab
When I'm using Bartender I cannot get the fly-out buttons to work, poisons/portals, but disabled they work with Blizzard UI. I get one lua error:
Message: Interface/FrameXML/SpellFlyout.lua:240: attempt to call method 'GetSpellFlyoutDirection' (a nil value)
Time: Tue Nov 1 14:28:35 2022
Count: 9
Stack: Interface/FrameXML/SpellFlyout.lua:240: attempt to call method 'GetSpellFlyoutDirection' (a nil value)
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "@Interface/FrameXML/SecureHandlers.lua"]:40: in function <Interface/FrameXML/SecureHandlers.lua:39>
[string "@Interface/FrameXML/SecureHandlers.lua"]:268: in function <Interface/FrameXML/SecureHandlers.lua:263>
[string "=[C]"]: ?
[string "@Interface/FrameXML/SecureHandlers.lua"]:296: in function <Interface/FrameXML/SecureHandlers.lua:279>
[string "=(tail call)"]: ?
Locals: <none>
In reply to Akasut:
Post this in the issues portion of BT here: https://www.curseforge.com/wow/addons/bartender4/issues/1980
Looks like a Blizz UI issue. They chimed in with a response :)
First of all, I love your mod ! I have a question though : how feasible would it be to split the XP and reputation bar as individual elements ? Currently they are stacked together as the "status bar" IIRC. For instance, I would love to place the XP bar at the screen bottom and track reputation near my side bars. Is this anywhere possible regarding how Blizzard refactored the UI ?