Macro conditionals

From Wowpedia
Jump to: navigation, search

This page lists macro conditionals, keywords used with macro commands, the RestrictedEnvironment and the SecureStateDriver API to allow limited logic for player convenience without trivializing the game.

Refer to secure command options for syntax and making a macro for a tutorial.

Targeting keywords

/cast [@focus] Counterspell

Targeting keywords begin with @ and assign a temporary target to the macro command. (This does not change the player's selected target.)

@unitId 
Any valid unitId.
@cursor 
Immediately targets the ground under the cursor.
@none 
Interupts auto self-cast and requires a targeting cursor.

Boolean conditions

/cast [dead] Resurrection; Heal

All other conditionals evaluate as either true to execute the macro command, or false to skip it. The no prefix reverses this (ie, nodead means alive).

The following tables categorize each boolean condition by whether it evaluates the state of any target, only the player, or the user interface.


Evaluated against a target
Macro Conditional Similar API Description
exists UnitExists() The unit exists
help, harm UnitCanAssist() and UnitCanAttack() The unit exists and can be targeted by helpful/harmful spells
dead UnitIsDeadOrGhost() The unit exists and is dead
party, raid UnitInParty() and UnitInRaid() The unit exists and is in your party/raid
unithasvehicleui UnitInVehicle() The unit exists and is in a vehicle


Evaluated against the player only
Macro Conditional Similar API Description
canexitvehicle CanExitVehicle() In a vehicle and able to exit
channeling, channeling:spellName UnitChannelInfo("player") and WoW Icon update.pngChannelInfo() Channeling any spell, or a certain spell
combat InCombatLockdown or UnitAffectingCombat("player") In combat
equipped:type, worn:type IsEquippedItemType(type) Refer to itemType for possible types (ie, weapon) and subtypes (ie, sword)
flyable IsFlyableArea() Unreliable in Wintergrasp
flying IsFlying() Mounted or flight form, and in the air
form:n, stance:n GetShapeshiftForm() Refer to GetShapeshiftForm for possible values
group, group:party, group:raid IsInGroup() and IsInRaid() Self-explanatory
indoors, outdoors IsIndoors() and IsOutdoors() Self-explanatory
mounted IsMounted() Self-explanatory
pet:name, pet:family UnitCreatureFamily("pet") Using a hunter pet by name or family
petbattle C_PetBattles.IsInBattle() In a pet battle
resting IsResting() In a rested zone
spec:n, spec:n1/n2 GetActiveSpecGroup(false) Activated the n'th (or any of n1, n2) spec
stealth IsStealthed() Self-explanatory
swimming IsSubmerged() Self-explanatory
talent:row/col The given row/col talent is active


Evaluated against the user interface (action bars, keyboard, mouse)
Macro Conditional Similar API Description
actionbar:n, bar:n, or bar:n1/n2/... GetActionBarPage() The n'th (or any of n1, n2, ...) action bar page appears
bonusbar, bonusbar:n HasBonusActionBar() The bonus action bar is visible; see
button:n, btn:n1/n2/..., btn:<virtual click> OnClick The mouse button used as left (1), right (2), middle (3), extra (4 & 5) or virtual
cursor GetCursorInfo() Dragging an action button (item, spell, macro, etc.)
extrabar HasExtraActionBar() An extra action bar/button is visible
modifier, mod, mod:key, mod:action IsModifierKeyDown() or IsModifiedClick(action) Accepts shift, ctrl, alt, lshift, rshift, ..., and any action title
overridebar HasOverrideActionBar() The override bar is replacing the main action bar
possessbar IsPossessBarVisible() The possess bar is visible
shapeshift HasTempShapeshiftActionBar() The temporary shapeshift action bar is replacing the main action bar
vehicleui HasVehicleActionBar() The vehicle UI is active

Patch changes

Warlords of Draenor Patch 6.0.2 (2014-10-14): "talent" conditional added.
The Burning Crusade Patch 2.3.0 (2007-11-13): Several conditions and shorthand alternatives added.[1]
The Burning Crusade Patch 2.0.1 (2006-12-05): Added.

References