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
Anybody else missing the Zoom option?
Was it removed or something?
Is there any way to get bartender to work with press and hold spell casting?
The extra-action button is no longer customizable, it is right in the middle of my screen and adjusting settings does notheing.
Bartender suddenly not recognizing any control-"x" keybinds with the exception of control-1. For some reason, it just decided to not recognize control 2 through zero, or control-dash or control-=
Getting the Following Error.
10x [ADDON_ACTION_BLOCKED] AddOn 'Bartender4' tried to call the protected function 'UNKNOWN()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: ?
[string "@Bartender4/libs/LibWindow-1.1-18/LibWindow-1.1.lua"]:178: in function `RestorePosition'
[string "@Bartender4/Bar.lua"]:313: in function `LoadPosition'
[string "@Bartender4/Bar.lua"]:238: in function `ApplyConfig'
[string "@Bartender4/BlizzardArt.lua"]:156: in function `ApplyConfig'
[string "@Bartender4/BlizzardArt.lua"]:129: in function <Bartender4/BlizzardArt.lua:128>
[string "=(tail call)"]: ?
[string "=[C]"]: in function `MainMenuBar_UpdateKeyRing'
[string "@FrameXML/MainMenuBar.lua"]:108: in function <FrameXML/MainMenuBar.lua:89>
Locals:
_ = Frame {
RegisterEvent = <function> defined @!BugGrabber/BugGrabber.lua:491
0 = <userdata>
UnregisterEvent = <function> defined @!BugGrabber/BugGrabber.lua:491
SetScript = <function> defined @!BugGrabber/BugGrabber.lua:491
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
ADDON_ACTION_BLOCKED = <function> defined @!BugGrabber/BugGrabber.lua:557
ADDON_ACTION_FORBIDDEN = <function> defined @!BugGrabber/BugGrabber.lua:557
PLAYER_LOGIN = <function> defined @!BugGrabber/BugGrabber.lua:551
LUA_WARNING = <function> defined @!BugGrabber/BugGrabber.lua:566
ADDON_LOADED = <function> defined @!BugGrabber/BugGrabber.lua:511
}
hello, does anyone know why bars 4 & 5 are overlapping my quest log? they are not being shifted across like the default UI (I do have bars 4 & 5 enabled in the default action bar settings too)
Addon no longer works sod phase 2
Micromenu SoD (Classic era), on my micro menu i have a space between map and main menu. this was a fix during classic for a issue. how do i remove that space now? THX!.
Does anyone know how to solve it?
Checking github, yesterday's update did not modify anything other than the TOC.
please update before phase 2 drops
Bartender does not display action bars anymore on SoD as of 2/6 patch. I get the following errors immediately upon logging in:
error 1:
Message: ...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:2280: attempt to call field 'GetItemActionOnEquipSpellID' (a nil value)
Time: Tue Feb 6 19:07:00 2024
Count: 1
Stack: ...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:2280: attempt to call field 'GetItemActionOnEquipSpellID' (a nil value)
[string "=(tail call)"]: ?
[string "=(tail call)"]: ?
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:2280: in function `GetPassiveCooldownSpellID'
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1881: in function <...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:1875>
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1630: in function <...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:1617>
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1613: in function `UpdateAction'
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:609: in function `UpdateState'
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:591: in function `SetState'
[string "@Interface/AddOns/Bartender4/ActionBar.lua"]:267: in function `UpdateButtons'
[string "@Interface/AddOns/Bartender4/ActionBar.lua"]:52: in function `ApplyConfig'
[string "@Interface/AddOns/Bartender4/ActionBars.lua"]:339: in function `Create'
[string "@Interface/AddOns/Bartender4/ActionBars.lua"]:145: in function <Interface/AddOns/Bartender4/ActionBars.lua:137>
[string "=[C]"]: ?
[string "@Interface/AddOns/Bartender4/libs/AceAddon-3.0/AceAddon-3.0.lua"]:66: in function <...AddOns/Bartender4/libs/AceAddon-3.0/AceAddon-3.0.lua:61>
[string "@Interface/AddOns/Bartender4/libs/AceAddon-3.0/AceAddon-3.0.lua"]:523: in function `EnableAddon'
[string "@Interface/AddOns/Bartender4/libs/AceAddon-3.0/AceAddon-3.0.lua"]:536: in function `EnableAddon'
[string "@Interface/AddOns/Bartender4/libs/AceAddon-3.0/AceAddon-3.0.lua"]:626: in function <...AddOns/Bartender4/libs/AceAddon-3.0/AceAddon-3.0.lua:611>
Locals: (*temporary) = <function> defined =[C]:-1
error 2:
Message: ...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:2280: attempt to call field 'GetItemActionOnEquipSpellID' (a nil value)
Time: Tue Feb 6 19:07:01 2024
Count: 1
Stack: ...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:2280: attempt to call field 'GetItemActionOnEquipSpellID' (a nil value)
[string "=(tail call)"]: ?
[string "=[C]"]: in function `GetItemActionOnEquipSpellID'
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:2280: in function `GetPassiveCooldownSpellID'
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1881: in function <...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:1875>
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1630: in function `method'
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1197: in function <...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:1194>
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1290: in function <...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:1268>
Locals: (*temporary) = <function> defined =[C]:-1
error 3:
Message: ...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:2280: attempt to call field 'GetItemActionOnEquipSpellID' (a nil value)
Time: Tue Feb 6 19:07:02 2024
Count: 1
Stack: ...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:2280: attempt to call field 'GetItemActionOnEquipSpellID' (a nil value)
[string "=(tail call)"]: ?
[string "=[C]"]: in function `GetItemActionOnEquipSpellID'
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:2280: in function `GetPassiveCooldownSpellID'
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1881: in function <...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:1875>
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1335: in function <...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:1268>
Locals: (*temporary) = <function> defined =[C]:-1
Seems like the newest update on 2-6-24 broke bartender and elvui, darn you blizz!
WOW SOD, reoccoring error:
Date: 2024-01-28 15:06:15
ID: 1
Error occured in: AddOn: Bartender4
Count: 6
Message: Note: AddOn Bartender4 attempted to call a protected function (UNKNOWN()) during combat lockdown.
Debug:
[string "=[C]"]: ?
[string "@Interface/AddOns/Bartender4/libs/LibWindow-1.1/LibWindow-1.1.lua"]:178: RestorePosition()
[string "@Interface/AddOns/Bartender4/Bar.lua"]:313: LoadPosition()
[string "@Interface/AddOns/Bartender4/Bar.lua"]:238: ApplyConfig()
[string "@Interface/AddOns/Bartender4/BlizzardArt.lua"]:156: ApplyConfig()
[string "@Interface/AddOns/Bartender4/BlizzardArt.lua"]:129:
Interface/AddOns/Bartender4/BlizzardArt.lua:128
[string "=(tail call)"]: ?
[string "=[C]"]: MainMenuBar_UpdateKeyRing()
[string "@Interface/FrameXML/MainMenuBar.lua"]:108:
Interface/FrameXML/MainMenuBar.lua:89
Locals:
frame = BT4BarBlizzardArt {
overlay = BT4BarBlizzardArtOverlay {
}
barTex2 = BlizzardArtTex2 {
}
Execute = <function> defined @Interface/FrameXML/SecureHandlers.lua:777
hidedriver = <table> {
}
UnwrapScript = <function> defined @Interface/FrameXML/SecureHandlers.lua:788
leftCap = BlizzardArtLeftCap {
}
SetFrameRef = <function> defined @Interface/FrameXML/SecureHandlers.lua:793
barTex3b = BlizzardArtTex3b {
}
WrapScript = <function> defined @Interface/FrameXML/SecureHandlers.lua:782
highLevel = Frame {
}
barTex1b = BlizzardArtTex1b {
}
id = "BlizzardArt"
barTex3 = BlizzardArtTex3 {
}
config = <table> {
}
name = "Blizzard Art"
0 = <userdata>
barTex1 = BlizzardArtTex1 {
}
barTex0 = BlizzardArtTex0 {
}
rightCap = BlizzardArtRightCap {
}
elapsed = 0
}
x = -229.950052
y = 43.199999
point = "BOTTOM"
s = 0.900000
getStorage = <function> defined @Interface/AddOns/Bartender4/libs/LibWindow-1.1/LibWindow-1.1.lua:65
queueSavePosition = <function> defined @Interface/AddOns/Bartender4/libs/LibWindow-1.1/LibWindow-1.1.lua:78
AddOns:
Swatter, v3.4.6977 (SwimmingSeadragon)
AIVoiceOver, v1.4.3
AIVoiceOverDataVanilla, v0.1
Atlas, vv1.52.08
AtlasBattlegrounds, vv1.52.03
AtlasClassicWoW, vv1.52.05
AtlasDungeonLocs, vv1.52.04
AtlasOutdoorRaids, vv1.52.04
AtlasTransportation, vv1.52.04
AtlasLootClassic, vv3.2.0
AtlasLootClassicData, vv3.2.0
AtlasLootClassicDungeonsAndRaids, vv3.2.0
Auctionator, v10.2.16
BagBrother, v
Bagnon, v10.2.17
BagnonConfig, v
BagnonItemInfo, v2.2.73-Release
Bartender4, v4.14.13
CharacterStatsClassic, v3.8.7
ClassicCalendar, v0.2.5beta
DBMCore, v668f64a
DBMStatusBarTimers, v668f64a
DBMVPVEM, v7065d28
Details, v#Details.20240122.12237.155
DetailsCompare2, v
DetailsEncounterDetails, v
DetailsRaidCheck, v
DetailsTinyThreat, v
DetailsVanguard, v
GSE, v3.1.53
GSELDB, v3.1.53
LeatrixMaps, v1.15.13
LeatrixPlus, v1.15.13
LogoutSkips, v0.0.4
ModernTargetFrame, v1.13
OmniCC, v10.2.2
Prat30, v3.9.46
Prat30Libraries, v
Questie, v9.2.17
RareScanner, v1.15.0.7
RuneSets, v1.0
Stubby, v3.4.6920 (SwimmingSeadragon)
TipTac, v24.01.22
TipTacItemRef, v24.01.22
TipTacTalents, v24.01.22
WeakAuras, v5.9.2
ZygorGuidesViewerClassic, v1.1
BlizRuntimeLib v1.15.0.52610(EU) <enUS>
(ck=4e5)
Could you please add quality indicators to the action buttons for potions and such? Thank you.
Hello! Even with borderless buttons setting on pressing animation and mouseover animation still not "full square" they have cutted angles. Any chances for animations cover the whole button?
https://prnt.sc/HIUPbFni_NpF
Thank you for continuing to develop Bartender. It provides more customization than the default UI. Bartender lets me set more advanced keybinds, like Ctrl + Left/Right Button.
hi! thank you for great addon. Is it possible to have option in visibility to toggle when dragonriding?
In reply to deiSeto:
You can do this with custom conditionals. First, set the other visibility settings as you would like them. Then click the 'Copy Conditionals' button to create a macro expression, which you can tune further. The macro conditional for dragonriding is [bonusbar:5]. Don't forget to tick the 'Use Custom Condition' checkbox.
In reply to azymyrta: thanks for that, but that's less user friendly than a simple tickbox. Dragonriding is now a pretty standard WoW feature so makes sense to have built in support if possible