Castsequence macros, reset included

Rotation in a button: step through spells in order, reset on your terms, and know exactly when a sequence is the right tool.

What a castsequence is

/castsequence is the one command that remembers. Each press fires the next entry in a comma-separated list, in order, and the sequence resets when the condition you chose fires. It is the only native macro behavior with memory, and it is what makes opener and weaving macros possible.

#showtooltip/castsequence reset=target Shadow Word: Pain, Vampiric Touch, Devouring Plague, Mind Blast

First press casts the pain, second press the touch, and so on down the list. Change targets and the whole thing snaps back to the start, which is what you want from an opener pattern on every pull.

The reset options

  • reset=target: start over when you change targets. The default for opener-style sequences.
  • reset=combat: start over when you enter combat. Right for anything that is "my fight opener" rather than "my target opener".
  • reset=5 (any number): reset N seconds after the last cast. The timer-based reset, useful for sequences that should not linger.
  • reset=shift / reset=ctrl/ reset=alt: reset when you hold that key, which lets one sequence bind double as a ready-reset macro.
  • reset=combat/target and other slash-joined resets are honored: first condition to fire resets the list (the comma is the action separator, so a comma-joined reset is malformed).

The ! no-clip prefix

Prefix any entry with ! to stop the client from clipping the cast of a spell you are already channeling. This is the secret ingredient in the classic hunter weaver, which keeps auto-shot ticking between manually fired shots:

#showtooltip/castsequence reset=target !Auto Shot, !Auto Shot, !Auto Shot/petattack

Every press tries to start an auto-shot unless one is already in flight. Press it on cooldown and your classic hunter shoots as fast as the weapon allows, with the pet attacking on the same key.

When a sequence is the right tool

  • Openers and dot setups. A fixed best-order sequence at pull time is exactly what reset=target describes.
  • Weaving. Anything that interleaves two stable actions (auto shot, thistle tea, stance swaps) is a sequence in its natural habitat.
  • On-use chains without timers. "Pop trinket, then racial, then potion" in one button for the burst window.

When it is the wrong tool

  • Anything proc-driven. A sequence cannot skip to the procced spell or reorder itself. Priority systems belong inaddons.
  • Anything GCD-racy. Every press steps the list, even presses that land inside the global cooldown. Spam a sequence and it drifts ahead of your actual casts. Press it once per GCD, deliberately.
  • Rotation-as-gospel. The moment your rotation is not a fixed loop, a sequence becomes a lie you tell your button. Set it down and play the game.

Pair the sequence with targeting (a reset=target dot opener wants /targetenemy to prime it) and keeplazy macros for the context-driven binds. The two styles cover the entire bar.

Questions people ask

What does reset=target mean in a castsequence?+
Reset=target resets the sequence back to the first spell whenever you change targets. It is the correct reset for openers and dot setups: every new target starts the pattern fresh. Replace target with combat, a number of seconds, or a modifier key for the other reset modes.
Why does my castsequence sometimes skip steps?+
Because it steps on every press, even presses that happened while the global cooldown was running. If a press lands mid-GCD, the sequence advances but the spell does not cast. The fix is to press once per global cooldown, or to never put a sequence on a spam-happy bind.
Do castsequence macros work in Classic?+
Yes, and some of the best-known ones are classic-era: the hunter auto-shot weaver and the warrior stance chains are both /castsequence classics. The vanilla client supports reset=target, reset=combat, and the numeric timer.
Castsequence or a rotation addon?+
For a fixed sequence, the macro is simpler, faster, and needs nothing installed. For priority-based decision making, an addon is better. A castsequence cannot react to procs or fight the global cooldown; that is the boundary.