M6: Extended macro conditionals

You may use the following additional conditionals in M6 macros.

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 (Classic-only)
Evaluates to true when the player or their pet has learned the specified spell (i.e. it appears as acquired in their spell book).
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.
instance:world/​garrison/​scenario/​dungeon/​lfr/raid/​worldpvp/​battleground/​ratedbg/​arena/outland/northrend/pandaria/draenor/broken isles/ashran/bfa/kul tiras/zandalar/island/shadowlands/torghast/dragon isles/zaralek/emerald dream (or in:)
Evaluates 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
Evaluates 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
Evaluate to true when the player character is part of the corresponding faction group.
mercenary / merc
Evaluate to true when the player character is acting as a mercenary on behalf of the other faction. For example, a worgen character during the Lady Jaina Proudmoore encounter in the Battle of Dazar'alor raid would satisfy [alliance,merc,nohorde] despite being transformed into a troll.
race:human/...
Evaluates to true when the player character is of a particular race, specified using the following tokens:
  • human
  • dwarf
  • nightelf
  • gnome
  • draenei
  • worgen
  • lightforged
  • voidelf
  • darkirondwarf
  • kultiran
  • mechagnome
  • pandaren
  • dracthyr
  • orc
  • troll
  • undead
  • tauren
  • bloodelf
  • goblin
  • highmountain
  • nightborne
  • maghar
  • zandalari
  • vulpera
Profession conditionals: prof:min skill
Evaluates to true when the player character has the specified profession or profession specialization (if minimum skill is specified in Classic WoW, 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
Skinningskinningskin
Miningminingmine
Archaeologyarchaeologyarch
Cookingcookingcook
Fishingfishingfish
First Aid (Classic)firstaidfaid
For example: [tail] evaluates to true if the player has at least one skill point in Tailoring, and [nomeng:40] evaluates to true if the player has at least 40 skill points in Engineering, and has the Gnomish Engineering specialization.

Additionally, the following conditionals check that the player has at least one skill point in an expansion-introduced trade skill: [cook3], [tail3], [tail6], [fish5], [lw6], [lw7], [eng2], [eng3], [eng4], [eng5], [eng6], [eng7], [eng8], [eng9]. For these, 2 corresponds to Burning Crusade, 3 to Wrath of the Lich King, etc. Note that these do not allow checking how many skill points are in that profession category, so [cook3:75] is not valid.

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.
covenant:kyrian/venthyr/nightfae/necrolord/fae/necro (or coven:)
Evaluates to true when the player character is a member of the specified covenant.
flag:name/name=value
Evaluates to true when the named flag is set (to a specific value, if specified). You can control flag states using the /setflag, /cycleflag, and /randflag commands in macros executed through M6.
visual
Always evaluates to false while running the macro (or evaluating the command options). Always evaluates to true when providing action feedback for the macro.

For example, /cast [visual] Moonfire; Rejuvenation will always display the icon, cooldown, and target feedback for Moonfire, but will always cast Rejuvenation.

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 conditionals listed in this section are primarily useful out of combat. While in combat, non-combat conditionals and their negations are considered satisfied if and only if the conditional is prefixed with +, regardless of its out-of-combat behavior. For example,

  • /cast [+moving] Roll; Red Shado-Pan Riding Tiger will always attempt to cast Roll while in combat;
  • /cast [moving] Roll; [nomoving] Red Shado-Pan Riding Tiger; Tiger Palm will always attempt to cast Tiger Palm while in combat.
moving
Evaluates to true while the player character is moving.
falling
Evaluates to true while the player character is falling.
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
Evaluates to true if the player is affected by the specified buff/debuff.
buff:name, debuff:name
Evaluates to true if the conditional target is affected by the specified buff/debuff.
ownbuff:name, owndebuff:name
Evaluates to true if the conditional target is affected by the specified buff/debuff cast by the player.
combo:X
Evaluates 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.