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
Hello, ive been afk for 8 months, i just come back and update all my addon including Bartender : all my bar and buttons has disappear, impossible to find them, impossible to update/manage the bar 1 to 8. Ive got them (buttons/settings) since like 10 yo... Im totally desperate, any idea ?
Hello guys, i keep getting this on my druid
Message: Interface/AddOns/Bartender4Arched/core.lua:41: attempt to call method 'SetMinResize' (a nil value)
Time: Tue Aug 6 15:49:49 2024
Count: 5
Stack: Interface/AddOns/Bartender4Arched/core.lua:41: attempt to call method 'SetMinResize' (a nil value)
[string "@Interface/AddOns/Bartender4Arched/core.lua"]:41: in function <Interface/AddOns/Bartender4Arched/core.lua:34>
[string "@Interface/AddOns/Bartender4Arched/core.lua"]:86: in function <Interface/AddOns/Bartender4Arched/core.lua:85>
[string "=[C]"]: in function `ApplyConfig'
[string "@Interface/AddOns/Bartender4/StateBar.lua"]:63: in function `ApplyConfig'
[string "@Interface/AddOns/Bartender4/ActionBar.lua"]:52: in function `ApplyConfig'
[string "@Interface/AddOns/Bartender4/ActionBars.lua"]:340: in function `Create'
[string "@Interface/AddOns/Bartender4/ActionBars.lua"]:146: in function <Interface/AddOns/Bartender4/ActionBars.lua:138>
[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: bar = BT4Bar6 {
id = "6"
hidedriver = <table> {
}
module = <table> {
}
config = <table> {
}
name = "Bar 2"
bindingmapping = "MULTIACTIONBAR1BUTTON%d"
elapsed = 0
overlay = BT4Bar6Overlay {
}
}
overlay = BT4Bar6Overlay {
Text = FontString {
}
Center = Texture {
}
RightEdge = Texture {
}
BottomEdge = Texture {
}
TopRightCorner = Texture {
}
BottomRightCorner = Texture {
}
BottomLeftCorner = Texture {
}
TopEdge = Texture {
}
TopLeftCorner = Texture {
}
backdropInfo = <table> {
}
LeftEdge = Texture {
}
bar = BT4Bar6 {
}
}
(*temporary) = nil
(*temporary) = BT4Bar6Overlay {
Text = FontString {
}
Center = Texture {
}
RightEdge = Texture {
}
BottomEdge = Texture {
}
TopRightCorner = Texture {
}
BottomRightCorner = Texture {
}
BottomLeftCorner = Texture {
}
TopEdge = Texture {
}
TopLeftCorner = Texture {
}
backdropInfo = <table> {
}
LeftEdge = Texture {
}
bar = BT4Bar6 {
}
}
(*temporary) = 50
(*temporary) = 50
(*temporary) = "attempt to call method 'SetMinResize' (a nil value)"
Hai, I keep getting these errors.
Message: Interface/AddOns/Bartender4/libs/SimpleSticky.lua:179: attempt to perform arithmetic on local 'xB' (a nil value)
Time: Sun Aug 4 21:55:31 2024
Count: 595
Stack: Interface/AddOns/Bartender4/libs/SimpleSticky.lua:179: attempt to perform arithmetic on local 'xB' (a nil value)
[string "@Interface/AddOns/Bartender4/libs/SimpleSticky.lua"]:179: in function `SnapFrame'
[string "@Interface/AddOns/Bartender4/libs/SimpleSticky.lua"]:140: in function <Interface/AddOns/Bartender4/libs/SimpleSticky.lua:126>
Locals: self = <table> {
rangeX = 15
scripts = <table> {
}
rangeY = 15
sticky = <table> {
}
}
frameA = BT4Bar13 {
module = <table> {
}
currentButtonOffset = 0
elapsed = 0
hidedriver = <table> {
}
isMoving = true
buttons = <table> {
}
id = "13"
unlocked = true
overlay = BT4Bar13Overlay {
}
config = <table> {
}
name = "Bar 6"
bindingmapping = "MULTIACTIONBAR5BUTTON%d"
statebutton = <table> {
}
buttonConfig = <table> {
}
numbuttons = 12
}
frameB = BT4Bar2Overlay {
Text = FontString {
}
Center = Texture {
}
RightEdge = Texture {
}
BottomEdge = Texture {
}
TopRightCorner = Texture {
}
BottomRightCorner = Texture {
}
BottomLeftCorner = Texture {
}
TopEdge = Texture {
}
TopLeftCorner = Texture {
}
backdropInfo = <table> {
}
LeftEdge = Texture {
}
bar = BT4Bar2 {
}
}
left = 6
top = 6
right = 6
bottom = 6
sA = 0.650000
sB = 0.520000
xA = 1233.190186
yA = 359.510406
xB = nil
yB = nil
hA = 26.499983
hB = 0
wA = 285.000061
wB = 0
newX = 1233.190186
newY = 359.510406
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to perform arithmetic on local 'xB' (a nil value)"
StickyFrames = <table> {
rangeX = 15
scripts = <table> {
}
rangeY = 15
sticky = <table> {
}
}
and
Message: ...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:2153: attempt to call global 'GetMouseFocus' (a nil value)
Time: Sun Aug 4 22:19:40 2024
Count: 256
Stack: ...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:2153: attempt to call global 'GetMouseFocus' (a nil value)
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:2153: in function <...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:2147>
[string "@Interface/AddOns/Bartender4/libs/LibActionButton-1.0/LibActionButton-1.0.lua"]:1737: 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"]:1444: in function <...er4/libs/LibActionButton-1.0/LibActionButton-1.0.lua:1268>
Locals: self = BT4Button18 {
FlyoutBorderShadow = BT4Button18FlyoutBorderShadow {
}
FlyoutArrowContainer = Frame {
}
NewActionTexture = Texture {
}
LevelLinkLockIcon = Texture {
}
Flash = BT4Button18Flash {
}
TargetReticleAnimFrame = Frame {
}
_state_action = 18
icon = BT4Button18Icon {
}
SlotArt = Texture {
}
InterruptDisplay = Frame {
}
NormalTexture = BT4Button18NormalTexture {
}
HotKey = BT4Button18HotKey {
}
HighlightTexture = Texture {
}
action = 0
AutoCastOverlay = Frame {
}
rangeTimer = -1
flashing = 0
SpellCastAnimFrame = Frame {
}
CooldownFlash = Frame {
}
state_actions = <table> {
}
IconMask = MaskTexture {
}
TextOverlayContainer = Frame {
}
state_types = <table> {
}
header = BT4Bar2 {
}
PushedTexture = Texture {
}
SpellHighlightAnim = AnimationGroup {
}
CheckedTexture = Texture {
}
Border = BT4Button18Border {
}
id = 18
SpellHighlightTexture = Texture {
}
__LAB_Version = 111
outOfRange = false
config = <table> {
}
Name = BT4Button18Name {
}
_state_type = "action"
SlotBackground = Texture {
}
Count = BT4Button18Count {
}
cooldown = BT4Button18Cooldown {
}
zoneAbilityDisabled = false
}
isButtonDownOverride = nil
actionType = "flyout"
(*temporary) = nil
(*temporary) = "attempt to call global 'GetMouseFocus' (a nil value)"
lib = <table> {
callbacks = <table> {
}
activeButtons = <table> {
}
ACTION_HIGHLIGHT_MARKS = <table> {
}
eventFrame = Frame {
}
ChargeCooldowns = <table> {
}
nonActionButtons = <table> {
}
FlyoutInfo = <table> {
}
flyoutHandler = LABFlyoutHandlerFrame {
}
actionButtons = <table> {
}
NumChargeCooldowns = 2
buttonRegistry = <table> {
}
ON_BAR_HIGHLIGHT_MARK_ID = 386870
FlyoutButtons = <table> {
}
}
Micro menu will not relocate from bottom right side of the screen. I can scale it and set the padding, but i cannot affect anything else.
Thank you so much for providing this #1 addon. I can live without any others,but this one is a MUST!
Hello, I have a problem to keep the display of the bags icons? Is there a Bartender command to display on and off these bags icons please ? Thank you
Is there any way to disable bartenders bar 4 and 5, but keep the blizzard bar 4 and 5 showing, as the objective tracker/boss frames/arena frames/vehicle seat/durability etc are nicely linked to them and i like how that works with them resizing each other.
I tried turning off bar 4 and 5 in bartender but the blizz bar 4 and 5 dont show up.
WoW Retail - logged into my main, 70 Druid. All of my buttons on all my Action bars, etc were cleared. Wiped clean so to speak.
I have since tried several times to reset all my buttons as I had them on each action bar. Get it working just fine.
Until I log out. As soon as I log back in - All my action bars are wiped clear again.
/reload doesn't wipe them out, but logging out and back in does and only on the one character. I've tried resetting the profile as well.
In reply to curomac: I posted the same thing on my monk. I thought my profile was corrupted. Strangely, it only happens on my WW monk spec. BM monk spec abilities do not clear.
In reply to curomac: FYI!, this is not a Bartender issue. This is Blizzard bug that's being reported.
In reply to boldnbeautiful:
Thanks for the heads up. Found this elsewhere too - tested it and it works for my druid.
I am experiencing a problem with this addon where it resets my action buttons every time I log into the game. This forces me to reconfigure my buttons each time I log in. I am currently playing as a Druid.
Found solution in Blizzard bug report by Unatural. Apparently it's a Blizz issue.
Workaround: Do your buttons. Open Talent Tree. Create "New Load Out." Exit or log out. Log back in and it's still there.
In WoW Retail, whenever I add abilities to my actions bars, they disappear after I log out. Strangely, it only happens to my monk char. Others are fine. I have reinstalled Bartender 4, but still the same. Before I completely delete my settings and addons, is there any know issues like this?
I have Bartender enabled, and I turn it on when creating a new character in Remix. I place the abilities in the bars, but they are never saved to the bars. Whenever I log out and log back in, the bars are empty. Unsure what to do.
In reply to ryulinho: I have the same problem on Retail. For some reason, it only happens on my Monk. Other chars are fine. My monk was the first char that I logged on after the Prepatch so not sure if related.
What is the name to use in macros of bar 6? (or all bars for that matter).
Using this macro:
/run local function t(n) Bartender4.Bar.barregistry[n]:SetVisibilityOption("always",not Bartender4.Bar.barregistry[n]:GetVisibilityOption("always")) end t("1") t("2") t("3") t("4") t("5") t("6")
It only hides bars up to and including 5, but not 6. In fstack I can see that the button numbers suddenly jump into the hundreds for bar 6 onwards, but I cannot figure out the name to use for bar 6...
[EDIT] nevermind, seems it's done on page number instead. So 6 = 13
And for some reason, with the bonus bar activated, 2 becomes 6.
Probably some good reason for that, but hey - it works for me now.
In reply to Pandoraoh:
This is blizzard's fault. Bars have a numbering in the UI, but also an internal ID, and these two do not match.
Up to a few years ago bartender only used the internal ID, so bar 3 in the bartender UI would also be bar 3 in bar macros, scripts, and bar selection conditionals.
With the introduction of edit mode blizzard started numbering bars, in a different order than the internal numbering, and bartender has adapted to follow suit. This means bar 2 in the blizzard UI will become bar 2 in the bartender UI if you install bartender, but the numbering in conditionals and scriptlets will not match up.
These are the names used in the bartender source, with internal IDs on the left:
11 and 12 are not named in this part of the code and I cannot find them offhand. I think 11 is the totem bar (can only hold shaman totems) and 12 is the dragonflying bar, but it may be the other way around.
In reply to azymyrta:
Thank you so much for this breakdown! Do we have any idea what the extra bars would be for this macro?
For instance: Stance Bar, Extra Action Bar? I've tried 16, 17, 20 etc and no luck
Any and all help on this would be really appreciated!
In reply to SpykeSTL:
All I can tell offhand is that 'possess', 'dragon', and 11 trigger special logic in bartender. Warrior stances, druid forms, rogue stealth, etc. in the non-bartender UI use the four class bars. The extra action button and bar (which you cannot drop arbitrary spells on in the default UI) are not action bars and are not selectable in using state logic.
In reply to azymyrta:
Ahhh dang, thank you so much for your time!
I've been trying to create a macro I can keybind that hides every bartender element so I can use a weakaura UI instead but still easily toggle the bartender UI on and off at will, it's surprisingly harder to figure out than I anticipated haha
is the status tracking bar not working properly in retail? im getting some weird clipping
In reply to ccpoppin1:
The status (XP/rep) bar does not obey scaling correctly. It only works at its default size. This is a very long-standing issue.