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
Currently getting an error as Unholy DK in Wow Cataclysm Classic. This is causing half my pet bar to dissapear!
662x Bartender4/PetButton.lua:96: attempt to call method 'CreateFromSpellID' (a nil value)
[string "@Bartender4/PetButton.lua"]:96: in function `func'
[string "@Bartender4/ButtonBar.lua"]:272: in function `ForAll'
[string "@Bartender4/PetBar.lua"]:134: in function <Bartender4/PetBar.lua:132>
Locals:
self = BT4PetButton4 {
NormalTexture = BT4PetButton4NormalTexture2 {
}
__MSQ_Charge_Skin = <table> {
}
NewActionTexture = Texture {
}
parent = BT4BarPetBar {
}
Border = BT4PetButton4Border {
}
Flash = BT4PetButton4Flash {
}
tooltipName = "Claw"
__MSQ_Normal_Color = <table> {
}
icon = BT4PetButton4Icon {
}
AutoCastable = Texture {
}
__MSQ_Scale = 1.250000
__MSQ_Addon = "Bartender4"
__MSQ_Empty = true
__MSQ_Shape = "Square"
Count = BT4PetButton4Count {
}
showgrid = 0
__MSQ_Empty_Type = true
__MSQ_New_Normal = Texture {
}
FlyoutBorder = BT4PetButton4FlyoutBorder {
}
__MSQ_Normal_Hook = true
__MSQ_Enabled = true
__MSQ_oType = "CheckButton"
__MSQ_Skin = <table> {
}
__MSQ_Highlight_Color = <table> {
}
__Regions = <table> {
}
FlyoutBorderShadow = BT4PetButton4FlyoutBorderShadow {
}
__MSQ_Normal = Texture {
}
__MSQ_Pushed_Color = <table> {
}
SpellHighlightAnim = AnimationGroup {
}
__MSQ_Normal_Skin = <table> {
}
__MSQ_IsAction = true
id = 4
__MSQ_Icon = BT4PetButton4Icon {
}
SpellHighlightTexture = Texture {
}
__MSQ_bType = "Pet"
HotKey = BT4PetButton4HotKey {
}
AutoCastShine = BT4PetButton4Shine {
}
Name = BT4PetButton4Name {
}
FlyoutArrow = BT4PetButton4FlyoutArrow {
}
cooldown = BT4PetButton4Cooldown {
}
}
name = "Claw"
texture = 237535
isToken = nil
isActive = false
autoCastAllowed = true
autoCastEnabled = true
spellID = 47468
(*temporary) = nil
(*temporary) = <table> {
__index = <table> {
}
}
(*temporary) = 47468
(*temporary) = "attempt to call method 'CreateFromSpellID' (a nil value)"
_G = <table> {
ERR_OUT_OF_CHI = "Not enough chi"
DH_HAVOC_CORE_ABILITY_2 = "Strong melee attack that consumes Fury. If it critical strikes, some Fury is refunded."
BT4Button85Shine14 = BT4Button85Shine14 {
}
PlayerTalentFramePanel3Arrow23 = PlayerTalentFramePanel3Arrow23 {
}
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
LE_GAME_ERR_CHAT_RAID_RESTRICTED_TRIAL = 798
SPELL_FAILED_CUSTOM_ERROR_71 = "This partygoer wants to dance with you."
LE_GAME_ERR_PET_SPELL_TARGETS_DEAD = 413
InspectFrameTab1HighlightTexture = InspectFrameTab1HighlightTexture {
}
ContainerFrame3Item24SubIconTexture = ContainerFrame3Item24SubIconTexture {
}
MultiBarLeftButton7 = MultiBarLeftButton7 {
}
BGRLiveItemButton223 = BGRLiveItemButton223 {
}
LE_GAME_ERR_INVALID_FOLLOW_PVP_COMBAT = 365
MerchantItem5AltCurrencyFrameItem1Text = MerchantItem5AltCurrencyFrameItem1Text {
}
MacroToolkitButton284Name = MacroToolkitButton284Name {
}
OPTION_SHOW_ACTION_BAR5_TOOLTIP = "Attached to the left side of Action Bar 4 by default"
BINDING_NAME_NAMEPLATES = "Show Enemy Name Plates"
CHAT_HEADER_SUFFIX = ": "
MultiBarBottomRightButton8Shine5 = MultiBarBottomRightButton8Shine5 {
}
CALENDAR_RAID_RESET_DESCRIPTION = "%1$s resets at %2$s."
BGRLiveItemButton317IconTexture = BGRLiveItemButton317IconTexture {
}
PlayerTalentFramePanel3Talent25 = PlayerTalentFramePanel3Talent25 {
}
LE_GAME_ERR_RECRUIT_A_FRIEND_FAILED = 1018
CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight = CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight {
}
LE_GAME_ERR_ONLY_ONE_QUIVER = 33
SpellButton6Cooldown = SpellButton6Cooldown {
}
LOSS_OF_CONTROL_DISPLAY_FEAR = "Feared"
OverrideActionBarButton6Shine11 = OverrideActionBarButton6Shine11 {
}
LibDBIcon10_BugSack = LibDBIcon10_BugSack {
}
CompactUnitFrameProfilesSaveButton = CompactUnitFrameProfilesSaveButton {
}
AUCTIONATOR_L_DEFAULT_LIST_HEADER = "Default Shopping List"
ACTION_SPELL_MISSED_POSSESSIVE = "1"
QuestieFrame776Glow = QuestieFrame776Glow {
}
CompactRaidFrameManagerDisplayFrameFilterOptionsFilterRoleTankMiddleMiddle = CompactRaidFrameManagerDisplayFrameFilterOptionsFilterRoleTankMiddleMiddle {
}
ContainerFrame4Item16Cooldown = ContainerFrame4Item16Cooldown {
}
DUNGEON_FLOOR_DRAGONBLIGHTCHROMIESCENARIO2 = "Andorhal"
L = <table> {
}
WowTokenRedemptionFrameBg = WowTokenRedemptionFrameBg {
}
LAG_TOLERANCE = "Lag Tolerance"
GuildControlPopupFrame = GuildControlPopupFrame {
}
MacroToolkitButton29Unbound = MacroToolkitB
Is there a way to change how keybinds with modifiers are displayed? I would like the classic Blizzard default. For example, shift + F would be "s-F" instead of SF.
Is there anyway to make the visual cooldown that goes clockwise darker or grey out the icon? I just switched to bartender from elvui and I struggle to tell if something is actually on cooldown in my peripheral
This error still occuring in Era -
10x .../Bartender4/libs/LibKeyBound-1.0-100003/LibKeyBound-1.0.lua:95: CreateFrame(): Couldn't find inherited node "OptionsCheckButtonTemplate"
[string "=[C]"]: in function `CreateFrame'
[string "@Bartender4/libs/LibKeyBound-1.0-100003/LibKeyBound-1.0.lua"]:95: in function `Initialize'
[string "@Bartender4/libs/LibKeyBound-1.0-100003/LibKeyBound-1.0.lua"]:671: in function <.../Bartender4/libs/LibKeyBound-1.0/LibKeyBound-1.0.lua:665>
Locals:
(*temporary) = "CheckButton"
(*temporary) = "KeyboundDialogCheck"
(*temporary) = KeyboundDialog {
Center = Texture {
}
RightEdge = Texture {
}
backdropInfo = <table> {
}
BottomEdge = Texture {
}
BottomLeftCorner = Texture {
}
BottomRightCorner = Texture {
}
TopEdge = Texture {
}
TopRightCorner = Texture {
}
TopLeftCorner = Texture {
}
LeftEdge = Texture {
}
}
(*temporary) = "OptionsCheckButtonTemplate"
Non-character specific keybinds aren't carrying over to my characters who aren't in the same realm :( how can I fix this? I use the same keybind setup for every character, and don't want to go through & re-set all of them for my alt army
I tried searching for this but can't seem to find an answer. But is there a way to have the action bars show the quality of things put on the bar, ie potion/flask quality?
Bartender throwing lots of errors in Classic Era/SOD. Would you like me to provide the bugsack barf?
the "hide border" dont work when the "button grid" is checked, is it possible to still of the button grid without the border ?
Bumping this from a previous pots: No potions or items seem to have their quality showing when on action bars. I can't find anything in the settings to enable it. Is this supported?
Classic Era error 1.15.4...
1x Bartender4/Bartender4.lua:290: CreateFrame(): Couldn't find inherited node "OptionsCheckButtonTemplate"
[string "=[C]"]: in function `CreateFrame'
[string "@Bartender4/Bartender4.lua"]:290: in function `ShowUnlockDialog'
[string "@Bartender4/Bartender4.lua"]:332: in function `?'
[string "@Bartender4/Options/Options.lua"]:50: in function <Bartender4/Options/Options.lua:50>
[string "=[C]"]: ?
[string "@AdvancedInterfaceOptions/libs/AceConfig-3.0-3/AceConfigDialog-3.0-87/AceConfigDialog-3.0.lua"]:45: in function <...nfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua:43>
[string "@AdvancedInterfaceOptions/libs/AceConfig-3.0-3/AceConfigDialog-3.0-87/AceConfigDialog-3.0.lua"]:839: in function <...nfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua:661>
[string "=[C]"]: ?
[string "@AdvancedInterfaceOptions/libs/AceGUI-3.0-41/AceGUI-3.0.lua"]:66: in function <...ancedInterfaceOptions/libs/AceGUI-3.0/AceGUI-3.0.lua:64>
[string "@AdvancedInterfaceOptions/libs/AceGUI-3.0-41/AceGUI-3.0.lua"]:300: in function `Fire'
[string "@AdvancedInterfaceOptions/libs/AceGUI-3.0-41/widgets/AceGUIWidget-CheckBox.lua"]:64: in function <...ns/libs/AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua:53>
Locals:
(*temporary) = "CheckButton"
(*temporary) = "Bartender4Snapping"
(*temporary) = Bartender4Dialog {
Center = Texture {
}
RightEdge = Texture {
}
backdropInfo = <table> {
}
BottomEdge = Texture {
}
BottomLeftCorner = Texture {
}
BottomRightCorner = Texture {
}
TopEdge = Texture {
}
TopRightCorner = Texture {
}
TopLeftCorner = Texture {
}
LeftEdge = Texture {
}
}
(*temporary) = "OptionsCheckButtonTemplate"
can we not put items (herbs/ore) on the bars?
In reply to pickledaisho:
No, and that's a base game limitation. You can work around by creating a macro with:
If this is an item with a use effect which isn't allowed on bars directly, use this instead:
In reply to azymyrta: cheers
Getting this error with 1.15.4 on classic era:
18x .../Bartender4/libs/LibKeyBound-1.0-100003/LibKeyBound-1.0.lua:95: CreateFrame(): Couldn't find inherited node "OptionsCheckButtonTemplate"
[string "=[C]"]: in function `CreateFrame'
[string "@Bartender4/libs/LibKeyBound-1.0-100003/LibKeyBound-1.0.lua"]:95: in function `Initialize'
[string "@Bartender4/libs/LibKeyBound-1.0-100003/LibKeyBound-1.0.lua"]:671: in function <.../Bartender4/libs/LibKeyBound-1.0/LibKeyBound-1.0.lua:665>
How do i get the arrows back on bar 1? i wanna be able to manually switch between two different bars. i dont wanna press a hot key to cast from that bar i just wanna be able to switch bars. is that possible?
```
1x [ADDON_ACTION_BLOCKED] AddOn 'Bartender4' tried to call the protected function 'ExtraAbilityContainer:SetPoint()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: in function `SetPoint'
[string "@Bartender4/ExtraActionBar.lua"]:118: in function `PerformLayout'
[string "@Bartender4/ExtraActionBar.lua"]:96: in function <Bartender4/ExtraActionBar.lua:91>
[string "=(tail call)"]: ?
[string "=[C]"]: in function `ApplySystemAnchor'
[string "@Blizzard_EditMode/Mainline/EditModeSystemTemplates.lua"]:339: in function `UpdateSystem'
[string "@Blizzard_EditMode/Mainline/EditModeManager.lua"]:1204: in function `UpdateSystem'
[string "@Blizzard_EditMode/Mainline/EditModeManager.lua"]:1192: in function <...ddOns/Blizzard_EditMode/Mainline/EditModeManager.lua:1191>
[string "=[C]"]: in function `secureexecuterange'
[string "@Blizzard_EditMode/Mainline/EditModeManager.lua"]:1194: in function `UpdateSystems'
[string "@Blizzard_EditMode/Mainline/EditModeManager.lua"]:864: in function `UpdateLayoutInfo'
[string "@Blizzard_EditMode/Mainline/EditModeManager.lua"]:160: in function <...ddOns/Blizzard_EditMode/Mainline/EditModeManager.lua:152>
Locals:
_ = Frame {
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
}
```
In classic era, there is a new bug that started today where the top right action bars are not displaying the correct number of potions/items in the bags.
If you disable bartender, the action bars are actually swapped around.
Please check action bar values, they are flip flopped.
I am receiving the following error for bartender (using the most recent version):
3x [ADDON_ACTION_BLOCKED] AddOn 'Bartender4' tried to call the protected function 'Button:SetPassThroughButtons()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: in function `SetPassThroughButtons'
[string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:224: in function `CheckMouseButtonPassthrough'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:209: in function `AcquirePin'
[string "@Blizzard_SharedMapDataProviders/BonusObjectiveDataProvider.lua"]:97: in function <...haredMapDataProviders/BonusObjectiveDataProvider.lua:92>
[string "=[C]"]: in function `xpcall'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:76: in function `FireCallbacks'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:35: in function <.../Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua:31>
[string "=[C]"]: in function `accessor'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:52: in function `AddCallback'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:60: in function `AddCancelableCallback'
[string "@Blizzard_SharedMapDataProviders/BonusObjectiveDataProvider.lua"]:92: in function `RefreshAllData'
[string "@Blizzard_SharedMapDataProviders/BonusObjectiveDataProvider.lua"]:65: in function `OnEvent'
[string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:99: in function `SignalEvent'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:106: in function <...aceBlizzard_MapCanvas/Blizzard_MapCanvas.lua:105>
[string "=[C]"]: in function `secureexecuterange'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:109: in function `OnEvent'
[string "@Blizzard_WorldMap/Blizzard_WorldMap.lua"]:148: in function <...rfaceBlizzard_WorldMap/Blizzard_WorldMap.lua:147>
Locals:
_ = Frame {
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
}
No potions or items seem to have their quality showing when on action bars. I can't find anything in the settings to enable it. Is this supported?
TWW Bar 2 not showing. It is not state configured or hidden. But I cannot get it to show