What a modifier macro is
A [mod:shift] gate makes a command fire only while that key is held. Chain a few gates on one button and the same keybind becomes three or four different actions. No addon, no special hardware, just the bracket language from theconditionals page.
The cleanest template in all of macro writing:
#showtooltip/cast [mod:shift] Power Word: Shield; [@mouseover,help,nodead] Flash Heal; Flash Heal
Hold shift to bubble yourself, mouse over an ally to heal them, plain press to self-heal. Three actions, one bind, zero retargeting.
The modifier family
[mod:shift],[mod:ctrl],[mod:alt]: the three keys, each gating on itself.[mod]: any modifier key at all. Used for "the fancy version of whatever this button does".[nomod]: no modifier held. The inverse gate: the plain-press behavior.- Combined pairs: commas make modifiers AND together:
[mod:shift,mod:ctrl]fires only on the exact chord. The full matrix: shift, ctrl, alt, shift+ctrl, shift+alt, ctrl+alt, and all three.
Pattern: interrupt on the mouseover, always
The most valuable interrupt macro in the game: who you mouse over is who gets kicked or silenced, no retarget. The shift gate adds the focus-target variant on the same key:
#showtooltip/stopcasting/cast [mod:shift,@focus,harm,nodead] Counterspell; [@mouseover,harm,nodead] Counterspell; [harm] Counterspell
Shift interrupts your focus target, otherwise whoever's under the cursor, otherwise your current target. The /stopcasting line drops your own cast first so the kick actually lands, which is why this macro works where a plain interrupt doesn't.
Pattern: right-click for the fancy action
[button:2] gates on the right mouse button. Classic use: right-click dismounts your mount macro, left-click rides:
#showtooltip/cast [button:2] Dismount; [swimming] <water mount>; <flying mount>; <ground mount>
The brackets are placeholders for your actual mount names, which is honest macro writing: the pattern is the product, your collection is a find-and-replace away.
Pattern: cooldown stacking without panic
Big cooldown page, one button: shift for the trinket line, plain press for the class cooldown. The shift+ctrl chord fires the whole core at once:
#showtooltip/cast [mod:shift,mod:ctrl] <major offensive cooldown>; [mod:shift] <trinket>; <short cooldown>
Rules that make modifiers safe
- Put the modifier section first. The client evaluates left to right, so the earlier the gate, the earlier it wins. Modifier sections first, situational gates second, fallback last.
- Do not let a modifier swallow the plain press. If the first section hogs every press, the fallback never fires. Test the plain key after every change.
- Mouse buttons bind on the action bar, not in the macro. Shift, ctrl, and alt are keyboard-real;
[button:2]works when the macro sits on a keybind that can see the mouse. - Bar paging still works. Modifiers never conflict with
/changeactionbarpages, so the two techniques stack on any bind.
Now put modifiers together with mouseover targetingand a focus bind, and three keys cover most of a healer's raid. For buttons that need to do this and never change, that's alazy macro.