Updated: 09-15-19 05:57 AM
File Info
Classic (1.13.2)
Updated:09-15-19 05:57 AM
Created:05-25-19 04:36 AM

Select - Classic

Version: 2.6.1
by: Gello [More]

This addon is being updated now with the main version here.

This addon adds the /select macro command you can use instead of /use or /cast to use an item or spell among a list. Right-clicking your macro from the bars will pop out a menu where you can change the item or spell to use.

How to Use

  • Create a macro with this line: /select item or spell, item or spell, etc
  • Drag the macro to your bars.
  • The first item or spell will be the default action when you hit the macro.
  • Right-click the macro to on your bars to change it to a different item or spell.

For instance, warriors may find this useful:
/select Battle Shout, Commanding Shout
When you create that macro it will cast Battle Shout every time it's hit. If you join a group with a death knight and want to use Commanding Shout instead, right-click the macro on your bars and choose Commanding Shout. Now the macro will display and cast Commanding Shout.

You can also embed the /select within a larger macro. For mages:
/focus [@focus,noexists][@focus,dead][mod:alt]
/select [@focus,exists][] Polymorph, Polymorph(Turtle), Polymorph(Rabbit), Polymorph(Black Cat)
This is a standard focus-sheep macro. When you want to change what polymorph spell to use, right-click the macro on your bars and pick another. It will use that new polymorph until you decide to change it again.


To help add items and spells to your /select macros, search:keywords are usable in place of an item or spell name. These search through your bags and spellbooks to fill the flyout with items and spells that match the keyword(s).

The officially supported searches are item, spell, mount, type, profession and toy:

item:id or partial name
Add an item by its item:id or all items in your bags or worn that contain the partial name.
Examples: item:1234, item:Bandage, item:Ore

spell:id or partial name
Add a spell by its numerical id or all spells that contain the partial name.
Examples: spell:1234, spell:Shout, spell:Polymorph

mount:flying, land, favorite*, favflying*, favland* or partial name
Add all flying, land, favorite, favorite flying, favorite land mounts or mounts that contain the partial name.
Examples: mount:flying, mount:Raptor, mount:favflying

Add all items that contain the keyword in one of its type fields. See www.wowpedia.com/ItemType for a full list.
Examples: type:Quest, type:Food, type:Herb, type:Leather

profession:primary, secondary, any or partial name
Adds all primary professions, secondary professions or any professions.
Examples: profession:Primary, profession:Any, profession:Herb

toy:favorite, any or partial name
Adds favorite toys, all toys or toys that contain the partial name.
Examples: toy:Crash, toy:favorite, toy:any

[condition] support

Just like /cast and /castsequence, /select can use [conditions]. Every [condition] used by the macro system is supported. Some examples:

/select [flyable] Name of flying mount, Another flying mount; Name of land mount
/select [@focus,exists][] spell:Polymorph
/select [combat] Master Healing Potion, Healthstone; [nocombat] item:Food & Drink
/select [spec:1] Conjured Mana Cake, Cobo Cola; Conjured Mana Cake, Frybread
/select [nopet] spell:Summon Demon; Grimoire of Sacrifice

Macro length "tax"

To do its magic, Select needs to add a line like this to all macros that contain a /select command:
/click [btn:2]S001M;S001A
It will do this on its own and it will recreate this line if it's accidentally deleted or altered. You don't need to worry about it except to remember that when writing your /select macros your macro needs at least 26 characters free for it to add this line (if it's not already there).

  • Only the first /select in a macro will be recognized. Any others in the same macro will be ignored.
  • When you create or edit a macro in combat (you should be fighting!) it will wait until you leave combat to turn the macro on or make changes from your edit.
  • If you gain an item or spell that wasn't available as you entered combat, that item or spell won't be in the flyout until you leave combat.

Frequently Asked Questions

Q: What action bar addons does this support?
A: All of them! Default too, of course. If you can drop a Blizzard macro onto the button then Select should work with that button. However, if the macros are outside the game's standard macro slots, Select won't be aware of them.

Q: Can I add companion pets to /select?
A: Yes and no. There's a game limitation that prevent changing the icon easily. That said, pet:name, pet:favorite and pet:any work. But be aware it uses one icon for all pets.

Q: Can I change the order that items or spells list in the menu?
A: If you want certain items to list before others, add them manually. ie: /select x-51 nether-rocket x-treme, mount:flying will list the x-51 rocket first.

Q: Tyrael's Charger is missing from my land mounts!
A: Tyrael's Charger can fly so it's grouped with the flying mounts. But if you want to add it to your land mounts you can add it manually: /select tyrael's charger, mount:land

Q: Can you make the popout menu align to the action/macro button?
A: No, sorry. The secure methods to get the menu working in combat prohibits anchoring willy nilly.

If you have any suggestions, comments or bugs to report, feel free to post them in comments here. Thanks!

09/15/2019 version 2.6.1-classic
- Fix for error when using a type:Quest filter

05/25/2019 version 2.6.0-classic
- Update for classic beta client
- Removed toys and mount functionality
Optional Files (0)

Archived Files (1)
File Name
05-25-19 04:36 AM

Post A Reply Comment Options
Unread 09-02-20, 12:17 PM  
A Molten Giant
AddOn Author - Click to view AddOns

Forum posts: 501
File comments: 553
Uploads: 72
The latest Classic version of this addon is also the current Retail version here:

For Classic you'll need to load out of date addons.
Report comment to moderator  
Reply With Quote
Unread 11-16-19, 05:40 PM  
A Molten Giant
10leej's Avatar
AddOn Author - Click to view AddOns

Forum posts: 582
File comments: 437
Uploads: 22
/select profession fires this error. I guess GetProfessions() doesn't exist on classic's API

2x Select\Select_Filters.lua:421: attempt to call global 'GetProfessions' (a nil value)
Select\Select_Filters.lua:421: in function `?'
Select\Select_Menu.lua:66: in function `FillFlyout'
Select\Select-2.6.0-classic.lua:501: in function `FillAttributes'
Select\Select-2.6.0-classic.lua:156: in function `UpdateAllMacros'
Select\Select-2.6.0-classic.lua:139: in function `?'
Select\Select-2.6.0-classic.lua:20: in function <Select\Select.lua:18>
[C]: in function `EditMacro'
Blizzard_MacroUI\Blizzard_MacroUI.lua:503: in function `MacroFrame_SaveMacro'
Blizzard_MacroUI\Blizzard_MacroUI.lua:175: in function <Blizzard_MacroUI\Blizzard_MacroUI.lua:173>

arg = "[Aa][Nn][Yy]"
(*temporary) = <function> defined @Select\Select.lua:181
(*temporary) = <function> defined @Select\Select_Filters.lua:421
(*temporary) = nil
(*temporary) = "attempt to call global 'GetProfessions' (a nil value)"
s = <table> {
 arrow = <unnamed> {
 StartTimer = <function> defined @Select\Select.lua:412
 timerTimes = <table> {
 FlyoutOnShow = <function> defined @Select\Select_Menu.lua:172
 RealActionButtonOnLeave = <function> defined @Select\Select.lua:585
 itemCache = <table> {
 FillFlyoutsOverTime = <function> defined @Select\Select.lua:384
 COMPANION_LEARNED = <function> defined @Select\Select_Filters.lua:214
 debugTimes = <table> {
 numFlyouts = 3
 FlyoutButtonOnLeave = <function> defined @Select\Select_Menu.lua:154
 knownFlyouts = <table> {
 SPELLS_CHANGED = <function> defined @Select\Select.lua:121
 PLAYER_LOGIN = <function> defined @Select\Select.lua:25
 mountIDs = <table> {
 UpdateMacroIcon = <function> defined @Select\Select.lua:450
 MOUNT_JOURNAL_USABILITY_CHANGED = <function> defined @Select\Select_Filters.lua:191
 TOYS_UPDATED = <function> defined @Select\Select_Filters.lua:119
 timersRunning = <table> {
 UPDATE_MACROS = <function> defined @Select\Select.lua:137
 iconsToUpdate = <table> {
 toyCache = <table> {
 SetTooltip = <function> defined @Select\Select.lua:590
 main = <unnamed> {
 CreateFlyout = <function> defined @Select\Select.lua:337
 RealActionButtonOnEnter = <function> defined @Select\Select.lua:574
 UpdateAllMacroIcons = <function> defined @Select\Select.lua:487
 UpdateOwnedMountIDs = <function> defined @Select\Select_Filters.lua:191
 UpdateNeededMacroIcons = <function> defined @Select\Select.lua:480
 FlyoutButtonOnEnter = <function> defined @Select\Select_Menu.lua:146
 PLAYER_ENTERING_WORLD = <function> defined @Select\Select.lua:125
 CacheBags = <function> defined @Select\Select_Filters.lua:70
 landMountIDs = <table> {
	local flyout = self:GetParent()
	local main = flyout:GetParent():GetParent()

	flyout:Hide() -- hide opened flyout

	if IsAltKeyDown() and main:GetAttribute("DontSelectWithAlt") then
		return -- don't touch action button if <Alt> down and DontSelectWithAlt set

	local form = main:GetAttribute("UseWhenSelecting") and "%s" or "alt-%s*"
	local action = flyout:GetParent()
	local attribType = self:GetAttribute(string.format(form,"type"))
	local attribValue
	if attribType=="macro" then
		attribValue = self:GetAttribute(string.format(form,"macrotext"))
	elseif attribType then
		attribValue = self:GetAttribute(string.format(form,attribType))

	-- if the button contains valid attributes
	if attribType=="item" or attribType=="spell" or attribType=="macro" then

		-- wipe whatever was in the action button before

		-- set the action button's attributes to the new selec PLAYER_EQUIPMENT_CHANGED = <function> defined @Select\Select_Filters.lua:53
 GetLines = <function> defined @Select\Select.lua:167
 toySearchString = ""
 FillAttributes = <function> defined @Select\Select.lua:494
 SetTooltipByItemID = <function> defined @Select\Select.lua:626
 UpdateAllMacros = <function> defined @Select\Select.lua:151
 ToysUpdateEnded = <function> defined @Select\Select_Filters.lua:115
 professions = <table> {
 WipeButtonAttributes = <function> defined @Select\Select.lua:310
 CreateNewFlyouts = <function> defined @Select\Select.lua:322
 flyingMountIDs = <table> {
 BAG_UPDATE = <function
Tweets YouTube Website
Report comment to moderator  
Reply With Quote
Unread 10-12-19, 01:06 AM  
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
keyword "profession:" not working in classic


I tried to create a button for all my professions. I tried:
  • /select profession:Any
  • /select profession:Primary,profession:Secondary

Both tries ended up with an empty button.
Report comment to moderator  
Reply With Quote
Unread 09-29-19, 03:50 PM  
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
spell ranks

i'm trying to set up the addon to include different paladin spells (the seals) but seems to not work when including ranks.
My macro is:

/select Seal of Command(Rank 1), Seal of Light, Seal of Righteousness
/click [btn:2]S121M;S121A

I even tried typing the spell ID (20375) but everytime I press the button it casts the max rank of the Seal.

There is something i'm missing?
Last edited by EvilGab : 09-29-19 at 03:50 PM.
Report comment to moderator  
Reply With Quote
Unread 09-24-19, 11:04 PM  
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Re: Re: Great addon

Originally Posted by Gello
Try /select type:Consumable.
That works great, thank you!
Report comment to moderator  
Reply With Quote
Unread 09-24-19, 04:05 AM  
A Molten Giant
AddOn Author - Click to view AddOns

Forum posts: 501
File comments: 553
Uploads: 72
Re: Great addon

Originally Posted by MeriseS
I have had some trouble getting itemtype:Food & Drink to work.
Try /select type:Consumable.

They reverted the types of many things for Classic, and Food & Drink no longer appears to be a type/subtype. I don't know the extent of what's changed.
Report comment to moderator  
Reply With Quote
Unread 09-23-19, 11:25 PM  
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Great addon

I hadn't realised how useful this might be until i tried it.

I am using it for my seals as a paladin with seal of wisdom, light and crusader in one button I can quickly switch depending on what I am doing at the time.

I have had some trouble getting itemtype:Food & Drink to work.

I did get item:healing to work, and item:recipe is also great to quickly learn all those new recipes I am buying from vendors.

any thoughts on the itemtype:Food & Drink

I had the macro as /select itemtype:Food & Drink, also tried just Food. Have several types of food and won't detect any of them.

Thank you for your great work though while I am sure this isn't a simple addon in the work you put into it, its very simple to use and I think that makes it really great.
Report comment to moderator  
Reply With Quote
Unread 09-21-19, 05:42 AM  
A Pyroguard Emberseer
Dridzt's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1283
File comments: 816
Uploads: 48
Thanks a ton for this.

Is there a chance we could get https://wow.gamepedia.com/ItemEquipLoc in the Search:keywords?

Something to the tune of equip:INVTYPE_CLOAK

Edit: Took a look at the source and it seems it's already supported for the type:keyword filter, just undocumented in the addon description
This is amazing.

Edit2: Anyone knows if there's a Masque plugin to skin the select popout? "Select" is an awfully hard keyword to google for and get addon relevant results.
Last edited by Dridzt : 09-21-19 at 06:18 AM.
Report comment to moderator  
Reply With Quote
Unread 05-25-19, 04:41 AM  
A Molten Giant
AddOn Author - Click to view AddOns

Forum posts: 501
File comments: 553
Uploads: 72
Select - Classic

Note that the screenshot and description are from the live client; they'll be updated as the beta goes on.

The big changes between live and this is the toys and mount stuff is removed.

Also note that item subtypes seem to have changed. If you used /select type:Food & Drink, you'll want to use /select type:Consumable now.
Report comment to moderator  
Reply With Quote
Post A Reply

Category Jump: