Flex Bar Commands

Complete FlexBar Command List
Appearance Commands

VERY IMPORTANT NOTES ON COMMANDS:

1. Square brackets denote an optional parameter. The brackets are not entered on the command line. IE: /flexbar hide button=1 always hides button 1, /flexbar hide button=1 toggle= 'true' hides itif it's shown, shows it if it's hidden.
2. Parameter values come in 2 main types: Number and string. For numbers simply type <parameter>=<number> IE: button=1 For strings, enclose them in single quotes IE: on='GainAura' Some parameters can take multiple values. For numbers you can enter a range IE: button=1-4 results in buttons 1, 2, 3 and 4 being done. For both strings and numbers you can enter it as aset IE: button= [1 2] or target= ['hostile' 'neutral']. Currently there is no way to combine strings and numbers[1 'hostile'] (nor any reason to in the code), Nor is there a way to combine ranges and numbers (so [1-3 5] will not work).
3. For many commands both button and group appear optional. This is misleading - in the case of both being present, ONE OR THE OTHER must be entered.
4. My original parser didn't handle decimals, so number values are often in tenths: scale=5 is actually half size, color= [10 1 1] is dark red, in= 50 will delay 5 seconds.
5. if you see something like target= <target>that just means that the parameter may be either a string or a number, depending on context - it does not mean put < and > around the value.
6. You can put a single quote in a string by escaping it with a \ EG: if='UnitDebuff<["target" "Hunter\'s Mark"]>' or Macro= '/echo Dhargo\'s Test's

/flexbar show [button=#] [group=#] [toggle= 'true'] [on='event'] [target=<target>] [if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
Show the buttons or group specified
/flexbar hide [button=#] [group=#] [toggle= 'true'] [on='event'] [target=<target>] [if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
Hide the buttons or group specified
/flexbar scale [button= #] [group=#] scale= # [toggle= #][reset='true'=] [on= 'event'] [target= <target>][if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
Scale the buttons by scale. Scale is a number from 5-50 (half size to 5X size) If toggle is included, and the button is already the size you are trying to make it, it will become the size in toggle. So, /flexbar scale button=1 scale=5 toggle=20 will make the button half size, unless it's already half size, then it will become 2X size. If reset is 'true' then the button will return to normal size.
/flexbar shade [button=#] [group= #] color= [## #] [toggle= [###]][reset='true'= ] [on= 'event'] [target= <target>][if='condition'] [iftarg=] [in=#] [tname= <timername>] [ttoggle= 'true']
Shades the button with the color specified. The color must be a red/green/blue set surrounded by brackets. Each element can range from 0-10 - IE /flexbar shade button=1 color=[10 1 1] will apply a dark red tint to the button. A color like [5 5 5] will just dim the button. If toggle is specified, and the button is already the color in color= then it will become the color in toggle= While setting the color to [10 10 10] will seem to restore it to normal, it will override any mana/range type shading that FlexBar can do automatically. To restore this functionaliyt use reset='true'
/flexbar fade [button= #] [group=#] alpha= # [toggle= #] [on='event'] [target= <target>] [if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
Adjusts the alpha (transparency) of the button. Alpha can ange from 1 (nearly invisible) to 10. If toggle is specified, then if the button is already the specified alpha, it will become the alpha in toggle. IE /flexbar fade button=1 alpha=1 will always make a button nearly invisible, /flexbar shade button=1 alpha=1 toggle=10 will make it nearly invisible if it's not, otherwise make it fully visible again.
/flexbar text [button=#] [group=#] [text= 'text'] [on='event'] [target=<target>] [if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
FlexBar buttons have 3 text attributes you can modify to display information. The first defaults to the top right corner. /flexbar text button=1 text='Hi' will set that text to "Hi". There are a number of special values that text can be set to: %c will display the cooldown of the spell on the button, %b will display the hotkey assigned to the button and %d will display the button number. Furthermore there is a whole slew of special, dynamic variables it can be -- please see the appendix "Text Substitutions" for a full list.
/flexbar text2 [button=#] [group=#] [text= 'text'] [on='event'] [target=<target>] [if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
FlexBar buttons have 3 text attributes you can modify to display information. The second defaults to the bottom right corner. /flexbar text2 button=1 text='Hi' will set that text to "Hi". There are a number of special values that text can be set to: %c will display the cooldown of the spell on the button, %b will display the hotkey assigned to the button and %d will display the button number. Furthermore there is a whole slew of special, dynamic variables it can be -- please see the appendix "Text Substitutions" for a full list.
/flexbar text3 [button=#] [group=#] [text='text'] [on='event'] [target=<target>] [if='condition'] [in=#] [tname=<timer name>] [ttoggle='true']
FlexBar buttons have 3 text attributes you can modify to display information. The third defaults to the center. /flexbar text3 button=1 text='Hi' will set that text to "Hi". There are a number of special values that text can be set to: %c will display the cooldown of the spell on the button, %b will display the hotkey assigned to the button and %d will display the button number. Furthermore there is a whole slew of special, dynamic variables it can be -- please see the appendix "Text Substitutions" for a full list.
/flexbar justifytext [button=#] [group=#] [pos= <position>] [on='event'] [target=<target>] [if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
Both text attributes can be move to one of nine spots on the button - 'topleft', 'top', 'topright', 'right', 'bottomright', 'bottom', 'bottomleft', 'left' and 'center'. IE /flexbar justifytext button=1 pos='topleft' will move it to the top left of the button and justify it left, /flexbar justifytext button=1 pos='top' will center it on the top of the button and so on.
/flexbar justifytext2 [button=#] [group=#] [pos= ] [on='event'] [target=<target>] [if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
Both text attributes can be move to one of nine spots on the button - 'topleft', 'top', 'topright', 'right', 'bottomright', 'bottom', 'bottomleft', 'left' and 'center'. IE /flexbar justifytext2 button=1 pos='topleft' will move it to the top left of the button and justify it left, /flexbar justifytext2 button=1 pos='top' will center it on the top of the button and so on.
/flexbar shadetext [button=#] [group= #] color= [## #] [toggle= [###]][reset='true'= ] [on= 'event'] [target= <target>][if='condition'] [iftarg=] [in=#] [tname= <timername>] [ttoggle= 'true']
Both text attributes can be shaded - this works just like shading the whole button. Please see /flexbar shade for details.
/flexbar shadetext2 [button= #] [group= #] color= [toggle= 'true'][reset= 'true'= ] [on= 'event'] [target= <target>][if='condition'] [iftarg=] [in=#] [tname= <timername>] [ttoggle= 'true']
Both text attributes can be shaded - this works just like shading the whole button. Please see /flexbar shade for details.
/flexbar showgrid [button=#] [group= #] [toggle= 'true']
If showgrid is turned on, the button is displayed even if it is empty. If toggle is true and showgrid is on, then it is turned off, otherwise it is turned on
/flexbar hidegrid [button=#] [group= #] [toggle= 'true']
If Hidegrid is turned on, the button is only displayed if it has an action on it, if it doesn't then the button is hidden. Again, if toggle is true then it switches between showgrid and hidegrid.
Movement Commands
/flexbar lock [button= #] [group= #]
Lock a button to avoid accidentally moving it. IE /flexbar lock button=1
/flexbar unlock [button= #] [group= #]
Unlock a button again to move it. Note: You cannot unlock buttons in a group except the group anchor.
/flexbar moveabs button= # xx=# yy= # [on= 'event'] [target=<target>] [if= 'condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
Move a button to a location on the screen. 0,0 is in the bottom left of the screen, and I am unsure as to the exact dimensions of most desktops. Experimentation is in order. Note - you can send it soaring off the screen never to be seen again, and that may have adverse performance effects. Just use /flexbar move button=1 xx=100 yy=100 to move it where you can get at it again. The reference point on the button is the upper left corner. So, /flexbar moveabs button=1 xx=0 yy=0 will hide it off the bottom of the screen because the top left corner of the button will be in the bottom left corner of the screen.
/flexbar moverel button= # trgbtn= #dx= dy= [on= 'event'] [target= <target>] [if= 'condition'] [in=#] [tname= <timername>] [ttoggle= 'true']< /STRONG>
Like moveabs, but it moves the button to a spot relative to the button name in trgbtn=. IE /flexbar move button=2 trgbtn=1 dx=38 dy=38 will move button 2 to sit just off the upper right corner of button 1 (if UI scale and button scale are normal - if they are not, dx/dy will need to change to give the same effect)
/flexbar movetomouse button=# dx= dy= [on= 'event'] [target=<target>] [if= 'condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
Like moverel and moveabs but it positions the button with respect to the current position of the mouse cursor. IE /flexbar movetomouse button=1 dx=-19 dy=19 will center button 1 on the mouse cursor (if UI scale and button scale are 1)
Group Commands
/flexbar group button= # anchor= #
Forms the specified buttons into a group. The group may be moved/hidden/faded etc as a unit. Anytime you specify group= in a command, it replaces the button list (button=) with the members of the group. The anchor is going to be the only button in the group with a handle to move it with (the rest will be locked) and the group number will be the anchor button number. The anchor button MUST be in the list of buttons in button=. Currently the only way to add buttons to a group is to simply specify the entire old group + the new buttons - IE: /flexbar group button=1-12 anchor=1 will form group #1 of 12 buttons (1-12). Moving button 1 will move all buttons. /flexbar group button=[1 2 3 4 5 6 7 8 9 10 11 12 15 16 17] anchor=1 will add buttons 15, 16 and 17 to the group. I will eventually update my parser to allow button=[1-12 15-16] BUT IT DOES NOT SUPPORT THAT AS OF 1.37.
/flexbar ungroupgroup= #
Disbands the named group
/flexbar listgroups[group= #]
If group is specified, lists the buttons in the group. If group is not specified, it lists all the groups.
/flexbar circlegroup group= # [padding= #]
1 of 3 auto-arrange commands. Circlegroup tries to make a circle, starting at 10 O'clock and going clockwise, with the 7th button in the middle. Limitation - This only works with groups with 7 or less buttons. Padding is the space between buttons.
/flexbar horizontalgroup group=# [padding= #] [height= #]
2 of 3 auto-arrrange commands. Horizontal group will make a horizontal bar out of the group. If the optional height parameter is included, it will make the bar that many rows high. However, be aware that the button numbers will go top-bottom then left to right (which is counter-intuitive I agree, but too late to fix I'm afraid as people are used to it). The optional padding parameter is the space between buttons
/flexbar verticalgroup group=# [padding= #] [width= #]
3 of 3 auto-arrange commands. Veritcal group makes a vertical bar out of the group. If the optional width parameter is included, the bar will be that many columns wide. Button number goes left to right, top to bottom. The optional padding parameter is the amount of space between buttons. Examples: /flexbar verticalgroup group=1 will make a single column bar out of group one. If group 1 has buttons 1-12 then /flexbar verticalgroup group=1 width=6 will make a 6 button wide, 2 button high bar numbered 1-6 across the top and 7-12 across the bottom.
Miscellaneous Commands
/flexbar remap [button= #] [group=#] base= # [toggle= 'true'][reset='true'=] [on= 'event'] [target= <target>][if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']

Remap is a very powerful, and slightly confusing command. To understand Remap, you have to understand buttons and ID's and their relationship:

One of a button's attributes is it's ID (NOT ITS NUMBER - THEY CAN BE DIFFERENT). This ID is how WoW identifies the action to be taken when you click it. Two buttons with the same ID will have the same icon and take the same action when you click them. Drag the action off one and it will dissappear from the other, put something on one it will appear in the other. While many flexbar attributes (including hotkey bindings) are attached to the button - the action it performs is always about the ID.

Out of the box, the default ID of a button is the same as it's number (as of 1.37 - prior to 1.37 there was oddness in the mapping above button 73). To see a simple example of remapping, look at the default action bar. It is only 12 buttons, but they take on ID's 1-12 on page 1, 13-24 on page 2 through 61-72 on page 6. WITH A SMALL EXCEPTION: Warriors, the first page takes on ID's 73-84 if you're in battle stance, 85-96 if you're in defensive stance and 97-108 if you're in berserker stance. Druids - page 1 is 1-12 in caster form, 83-96 in bear form and 97-108 in cat form. Rogues, they remap to something above 73 on stealthing, 1-12 non-stealthed.

This is remapping - the buttons take on new actions, but the hotkeys etc. stay the same (allowing you to use the same hotkeys for different actions in different situations.)

/flexbar remap will remap the buttons specified with ID's starting at base= IE: /flexbar remap button=1-12 base=13 will make button 1 have ID 13, button 2 have ID 14 through button 12 having ID 24. If you do this, you'll notice that dragging an action to button 1 alsoplaces it in button 13.< /FONT>

While not particularly useful alone, with events this is a mainstay for many classes (including warriors, druids, rogues, hunters and priests).

/flexbar advanced [button=#] [group= #] state= <'on'| 'off'>
When advanced mode is turned on (/flexbar advanced button=1 state='on') only left clicks trigger the action on the button. Right clicks do not. This is to allow seperate functions on both rightclick and left click. Return it to normal with /flexbar advanced button=1 state='off'
/flexbar disable [button=#] [group=#] state=<'on' | 'off'> [toggle='true'] [on='event'] [target= <target>] [if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
This will completely disable actions from clicking on the button - some ingenius folks fond some neat things to do with this. /flexbar disable button=1 state='off' returns it to normal.
/flexbar use button=# [on='event'] [target= <target>] [if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
This command will attempt to click the named buttons. VERY IMPORTANT - this can not be used on ANY event but button clicks. This is a limitation of the WoW engine put there to prevent bots. You can NOT use this to automatically recast a buff when it wears off - that simply is not possible - sorry.
/flexbar echo [button= #] [group=#] base= # [toggle= 'true'][reset='true'=] [on= 'event'] [target= <target>][if='condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
This will cause the named button to raise button-click events for the specified numbers. This was a first try at making expanded macros follow remaps - I see no real use for it now that FlexActions are in, but it remains. If you have a notion of how to use it, play with it and share :)
/flexbar lockicon [button=#] [group= #] [off= 'true']
This fixes icons onto the button and prevents you from dragging them off in the heat of combat. Shift-Click (not shift-drag) to get them off. Turn this off with /flexbar lockicon button=1 off='true'
/flexbarraiseevent='event name' [source= <source>][on='event'] [target=<target>] [if='condition'] [in=#] name= [toggle='true'] [tname= <timer name>] [ttoggle= 'true']
This was a first attempt to allow timed actions - it allows you to raise an event in a specified amount of time, then respond to that event in another command. Deprecated in favor of the in= parameters in all commands that take on=.
/flexbar loadconfig config= 'config name'

This loads a config file, which is a list of flexbar commands WITHOUT the /flexbar in the front. This may reside either in the FlexBar_Config.lua file in your flexbar directory (see the file for examples) or may be written in the FlexBar scripts editor. If written in the scripts editor you can omit the quotes and stuff found in the config file.

Only one config may be running at once, and there is a 2 second delay between commands.

/flexbar loadprofile profile= 'profile name'
The default profile for your character is saved under <character name> of <realm name> - IE Dhargo of Silver Hand. It is also Auto-loaded on logging in -- this command is for loading another character's profile, or a saved backup of your profile. Note that, while it changes all the info, any currently remapped buttons may not be mapped back, so you may need to do a /console reloadui to force everything to fully reload. One use for this is saving a back up of a good setup before experimenting, then reloading it if you mess up. IE - if I saved one under 'Dhargos Backup' then: /flexbar loadprofile profile='Dhargos Backup'
/flexbar saveprofile profile= 'profile name'
This saves your current profile under another name. BE CAREFUL - if you specify the profile name of another character, you will overwrite their profile. Primarily used for backing up good configs before experimenting - /flexbar saveprofile profile='Dhargos Backup'.
/flexbar resetall confirm= 'yes'
Completely resets your character's profile and reloads your UI - unless you backed it up, all your settings are lost.
/flexbar restore confirm= 'yes'
When you do a loadconfig command, a temporary copy of your old profile is stored. This does not last past logout/reloadui. Only one level is saved. Typing /flexbar restore confirm='yes' will return you to that state. NOTE - any remapped buttons will stay remapped until you /console reloadui.
/flexbar safeload state= <'on' } 'off'>
Safeload should be obsolete.
/flexbar tooltip state=<'on' | 'off'>< /STRONG>
Turns on and off showing of tooltips when you mouse over flexbar buttons. IE /flexbar tooltip state='off' turns them off. (I find them annoying mostly) Deprecated in favor of the Global Options panel (see keybindings under the main game menu to bind a key to global options or to the FlexBar main menu to access the global options panel)
/flexbar verbose state= <'on' | 'off'>
Turns on or off detailed reporting of what flexbar is doing - helpful for trouble shooting, but need to be OFF for game play (trust me :) ) -- /flexbar verbose state='off' -- Deprecated in favor of Global Options - see /flexbar tooltip.
/flexbar scripts
Opens and closes the Scripts editor - deprecated in favor of the keybinding / Flexbar main menu.
Flex Action Commands
/flexbar flexmacro id=# texture= 'texturename' name= 'macro name' macro= 'macro'[toggle= 'true'] [reset= 'true'= ]

ALL flexactions are attached to the ID, NOT the button. This allows them to move with remaps just like regular actions. Also note, currently there is not sanity check, if you do a flexmacro on an ID with a FlexScript it will overwrite it. It however will not let you attach one to an ID with a standard game action on it.

ID is a number from 1-120 (the maximum ID allowed in WoW). Texture is the picture you want on the button - you can either specify the texture from the list you'll find if you use Blizzard's tool to unpack all the UI files OR you can use the followint %variables: %backpack will give the backpack texture, %button##, where ## is 1-120 will give teh texture currently on the named button and %macro## where ## is a number from 1-430 (I think) will give you the icon from the macro icon selection panel. The count left to right,. top to bottom. So, %macro 21 is the 5th row, first icon on the panel. A gui to select these will be coming. Name is a name for the macro, this will eventually be displayed where Blizzard displays their macro names, I just didn't do it for 1.37. Macro either the macro text to perform (EG "/dance") or the name of a multiline macro you created in the Scripts editor and saved. This must be exactly as you saved it - capitalization and all. Another form of multiline macro may also be used macro= ['/dance' /fbwait 30' '/salute'] will execute those commands as a 3 line macro.

If toggle is true and there is already a flexmacro on the button, it will erase that macro. If reset is true it will clear the macro.

Example 1: /flexbar flexmacro id=120 texture='%macro120' name='DANCE' macro='/dance'

will create a macro that makes you dance. If you haven't remapped button 120's ID, it will show up on button 120, and any button you remap to ID 120.

Example 2: /flexbar flexmacro id=120 texture='%macro120' name='Dance2' macro='dance macro'

If you have created a macro like:

/em is going nuts cause he wants to dance

/fbdoin 30 /dance

will create a macro that makes you emote "Dhargo is going crazy because he wants to dance" then executes the dance emote in 3 seconds. If you haven't remapped button 120's ID, it will show up on button 120, and any button you remap to ID 120.

Note: to remove flexscript settings from a button completely use /flexbar flexmacro id=# reset='true' texture=' ' macro=' ' name=' '

/flexbar flexscript id=# texture= 'texture name' name= 'name' script= 'script'[toggle= 'true'] [reset= 'true'= ]

Essentially like flexmacro, but uses lua scripts instead:

Example 1: /flexbar flexscript id=120 texture='%backpack' name='OpenBags' script='OpenAllBags()'

creates an action at ID 120 that will open/close all your bags when you click it.

Example 2: If you have the following script in the editor

if FBConditions["hasaura"]("Battle Stance") then

FB_CastSpellByName("Overpower")

else

FB_CastSpellByName("Battle Stance")

end

Then save it as "my overpower"

/flexbar flexscript id=120 texture='%macro120' name='overpower' script='my overpower'

will put an action on ID 120 that will check for battle stance and cast overpower if you're in it, otherwise cast battle stance.

The advantage of these is the character limit for the editor is 10240 characters rather than 256 for macros.

Note: to remove flexscript settings from a button completely use /flexbar flexscript id=# reset='true' texture=' ' script=' ' name=' '

/flexbarflexpet id= # petid= # '[toggle= 'true'][reset= 'true'= ]

Set's the specified ID to mimic the specified pet button. Pet ID is the number of the button counting from one starting at the left of the default pet bar. Note a couple of limitations in these: 1 - you can't drag pet actions into them at this time, you must show the original pet bar and put the pet actions in there - the flex buttons will update to match. 2. If the mimiced pet button has no action and you have hidegrid on, the button will not hide.

Example: /flexbar flexpet id=1 petid= 1< /FONT>

Any button with id 1 will now display the the icon from and execute the action on pet button 1 (usually "attack").

/flexbar clearflexid= #
Clear a flex action off the specified ID
/flexbar runmacro macro= 'macro' [on='event'] [target= <target>] [if= 'condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
This is used to run a macro on a specified event/time/if condition. THIS CAN NOT BE USED TO AUTOCAST A SPELL - that is not allowed by the game engine. The only way to cast a spell in here is if it comes from a buttonclick event - and that is deprecated in favor of flex actions. Macro may be either a direct macro (macro='/dance') or the name of a mutiline macro from the scripts editor. Another form of multiline macro may also be used macro= ['/dance'/fbwait 30' '/salute'] will execute those commands as a 3 line macro.
/flexbar runscript script= 'script' [on='event'] [target= <target>] [if= 'condition'] [in=#] [tname= <timername>] [ttoggle= 'true']
This is used to run a script on a specified event/time/if condition. THIS CAN NOT BE USED TO AUTOCAST A SPELL - that is not allowed by the game engine. The only way to cast a spell in here is if it comes from a buttonclick event - and that is deprecated in favor of flex actions. Script may be either a direct lua command (macro='OpenAllBags()') or the name of a long script from the scripts editor.
/flexbar settexture id= [texture= ] [toggle= 'true'][reset= 'true'= ][on= 'event'] [target= <target>][if='condition'] [in=#] [tname= <timer name><timername>] [ttoggle= 'true']
DEPRECATED in 1.37 - was the original code to attach textures to AutoItems, FlexMacros, FlexScripts
Event Commands (deprecated - see event editor)
/flexbar deleteevent event= #
DEPRECATED IN FAVOR OF THE EVENT EDITOR
/flexbar listevents
DEPRECATED IN FAVOR OF THE EVENT EDITOR
Commands to display usage lists
/flexbar appearance
Lists all appearance commands
/flexbar eventhelp
Lists all event commads (obsolete as they are)
/flexbar grouphelp
Lists all group commands
/flexbar mischelp
Lists all misc. commands
/flexbar movement
Lists all movement commands