Extended macro conditionals

You may use the following additional conditionals in macros triggered though M6.

spec:name/id
The spec conditional is extended to support specialization names (like Balance or Marksmanship), or specialization IDs (102 for Balance), in addition to specialization indices (1 for Balance).
For example: [spec:feral] is true when the player character is a Feral Druid.
me:character name/class name
Evaluates to true if your character's name is equal to the specified value, or if your character's class is equal to the specified value (either in localized or internal english form).
For example: [me:Ygramul/Gmork] is true when the player character is named Ygramul or Gmork; [me:druid/deathknight] is true when the player character is a druid or a death knight.
zone:name
Evaluates to true when you're in a specific zone (or subzone).
For example: [zone:Valley of the Four Winds] is true when the player is in the Valley of the Four Winds (but not in The Lazy Turnip, which is apparently in a separate zone).
known:spell id
Evaluates to true when the player or their pet has learned the specified spell.
For example: [known:109248] is true when the player has learned Binding Shot.
form:cat/bear/travel/aquatic/flight/moonkin/stag/treant
The form conditional is extended to support form names for druid forms in addition to form indices; moon may also be used in place of moonkin.
For example: [form:cat/bear] is true when the player is in Bear Form or Cat Form.
talent:row.col/level.col/name
Evaluates to true when the player has the specified talent.
For example: [talent:4.2] [talent:60.2] [talent:burning rush] are all true when a Warlock has selected the Burning Rush talent.
instance:world/​garrison/​scenario/​dungeon/​lfr/raid/​worldpvp/​battleground/​ratedbg/​arena/outland/northrend/pandaria/draenor/broken isles/ashran (or in:)
Evalutes to true based on which type of instance you're currently in.
For example: [in:arena] is true when you're in an arena, [in:world] is true when you're out in the world.
outpost:garrison/arena/yard/sanctum/arsenal/brewery/run/corral/tankworks
Evaluates to true when the player is in a zone where they have access to a garrison outpost special ability. The optional argument can be used to query for specific abilities; lumber yard and smuggling run may be used in place of yard and run respectively.
For example: [outpost:garrison] is true when the player has the Call to Arms ability, i.e. has established their garrison and is in the Shadowmoon Valley or Frostfire Ridge; [nooutpost] is true when the player has no zone-specific garrison ability in the current zone.
level:minimum level
Evalutes to true when the level of the player character is at least the specified value. Note that slash-separated alternatives cannot be used with this conditional; you must provide a single number.
For example: [level:50] is true when the player is level 50 or above; and false if the player is level 49 or below.
horde / alliance
Evalute to true when the player character is part of the corresponding faction group.
race:human/nightelf/bloodelf/goblin/...
Evalutes to true when the player character is of a particular race, specified using the non-localized race string (e.g. nightelf or orc).
Profession conditionals: prof:min skill
Evaluates to true when the player character has the specified profession or profession specialization (if minimum skill is specified, only if the they have at least that number of skill points in that profession). The following profession names are supported:
ProfessionConditionalShortcut
Alchemyalchemyalch
Blacksmithingblacksmithingbs
Enchantingenchantingench
Engineeringengineeringengi
Gnomish Engineeringnomeng
Goblin Engineeringgobeng
InscriptionInscriptionscri
Jewelcraftingjewelcraftingjc
Leatherworkingleatherworkinglw
Tailoringtailoringtail
Herbalismherbalismherb
Archaeologyarchaeologyarch
Cookingcookingcook
Fishingfishingfish
First Aidfirstaidfa
For example: [tail] evaluates to true if the player has at least one skill point in Tailoring, and [nomeng:300] evaluates to true if the player has at least 300 skill points in Engineering, and has the Gnomish Engineering specialization.
pet:stable slot
Extended to support querying by stable slots, based on the name/race of the pets within them.
For example: [pet:1] is true the pet in a Hunter's first stable slot is currently active.
havepet:stable slot
Evaluates to true if there is a pet in the specified stable slot.
flag:name/name=value
Evaluates to true when the named flag is set (to a specific value, if specified). See [flag] details.

The conditionals use the same syntax as [mod]: you can prefix the conditional name with no to negate the result (e.g. [nospec:arcane] evaluates to true whenever [spec:arcane] would evaluate to false), and specify a list of alternatives separated by forward slashes (e.g. [spec:fire/frost,me:mage] evaluates to true for Fire or Frost mages). Conditional arguments are case-insensitive, making [spec:fire], [spec:Fire], and [spec:fIRe] equivalent.

Additional units

In addition to the standard units, extended conditionals may refer to the following units:

tank1, tank2, ...
Other players in your group who have selected the Tank role.
healer1, healer2, ...
Other players in your group who have selected the Healer role.
mtank1, mtank2, ...
Other players in your raid who have been assigned the Main Tank role by the raid leader/assistant.
assist1, assist2, ...
Other players in your raid who have been assigned the Main Assist role by the raid leader/assistant.

You can freely combine these units with the target and pet suffixes (e.g. using tank1target to refer to the target of the group's tank).

Non-secure conditionals

The following non-secure conditionals are primarily useful out of combat:

moving
Evaluates to true while the player character is moving.
ready:spell name/item name/spell id/item id
Evaluates to true if the cooldown remaining on any of the argument spells/items is below the current global cooldown.
For example: [ready:Hearthstone] is true when the player's Hearthstone is not on cooldown.
have:item name/item id
Evaluates to true if the player has at least one of the argument items in their inventory/bags.
For example: [have:Healthstone] is true while the player has a Healthstone.
selfbuff:name, selfdebuff:name
Evalutes to true if the player is affected by the specified buff/debuff.
buff:name, debuff:name
Evalutes to true if the conditional target is affected by the specified buff/debuff.
ownbuff:name, owndebuff:name
Evalutes to true if the conditional target is affected by the specified buff/debuff cast by the player.
combo:X
Evalutes to true if the player has at least X combo points. For Paladins, Monks, Shadow Priests, Destruction and Affliction Warlocks, this conditional checks the relevant alternate power (e.g. chi) instead of combo points.
cleanse
Evaluates to true if the conditional target has at least one debuff the player can dispel.

While in combat, clauses containing non-secure conditionals not prefixed with a + always evaluate to false, while non-secure conditionals prefixed with a + are considered to be satisfied. For example: