Macros, ranks and auto-attack
The three things that actually catch people out on this client: what one key press is allowed to do, why your action bar keeps casting an old rank, and where the auto-attack goes.
Everything here is the client's own behaviour, transcribed from guides that read the client files, and tested against it where they say so. Where a claim is somebody else's check rather than ours, it says which.
01 — The rules
One press, one action on the global cooldown.
- 255 characters per macro, 16 for its name. Line breaks count towards the limit.
- One global cooldown per press. A macro can put things without a global cooldown in front of a spell — a trinket, /startattack, a pet command — but it will never cast two spells on the cooldown, never waits between lines, and never decides for you.
- Make it with /macro: pick a tab (general macros are account-wide, the tab with your character's name is not), click New, paste, then drag the macro onto a bar. #showtooltip as the first line makes the button wear the spell's own icon.
- A /run line runs like addon code, which means that in combat it can only see what an addon may see. This is the most common reason a clever macro from an older client silently does nothing here.
02 — Spell ranks
The bar keeps the old rank. A macro never does.
Forever keeps the spell ranks of the original game — Fireball has twelve, Healing Touch eleven — and that creates one trap that bites everybody after a trainer visit:
- A spell sitting on your action bar keeps the rank you dragged there. Buy the new rank from your trainer and the button is still casting the old one until you go back into the spellbook and drag it out again. Nothing warns you.
- A macro with no rank always casts your highest. /cast Fireball casts the best rank you know, today and after the next trainer visit. Make it once, never touch it again.
That is the whole argument for building a macro per ability instead of dragging spells onto bars, and it is what the class pages here are: one ready-made rank-less macro for every ability in the class.
#showtooltip Fireball
/cast Fireball
Want a low rank on purpose? You can, and there are real reasons — a rank 1 Frostbolt still slows, a small heal is cheaper for topping up. Write it the way the client's macro help writes it, with no space before the bracket:
#showtooltip Frostbolt(Rank 1)
/cast Frostbolt(Rank 1)
03 — Auto-attack, the basic macro
If you build one macro, build this one.
Auto-attack is what your character does with the weapon while you are doing something else. On a melee class it keeps running while you cast, but it stops when your target dies or you switch target — and that is where the swing you never noticed losing goes. The fix is one line, in front of the ability:
#showtooltip Sinister Strike
/startattack
/cast Sinister Strike
/startattack is off the global cooldown, so putting it in front of every melee ability you own costs nothing. It also fires even when the ability does not — no rage, no energy, on cooldown — so the swing starts anyway. Most of the class macros on this site already have it in front, because the source marks them that way.
On its own
#showtooltip
/startattack
Auto-attack the next thing, when yours dies
If your target is dead the macro clears it, grabs the nearest enemy and starts swinging — one key for a whole pull instead of two.
#showtooltip
/cleartarget [dead]
/targetenemy [noharm]
/startattack
Stop attacking, so you do not break your own crowd control
Your white swings hit whatever you are targeting, which is how a Polymorph or a Fear ends early. One button turns the swings off:
#showtooltip
/stopattack
/stopcasting
One ranged button, whatever you are carrying
Warriors, rogues and hunters can shoot with a bow, a crossbow, a gun or a thrown weapon. Instead of four buttons, one macro checks what you are wearing. Note that the worn: types follow your client's language.
#showtooltip
/cast [worn:Bows] Shoot Bow; [worn:Crossbows] Shoot Crossbow; [worn:Guns] Shoot Gun; [worn:Thrown] Throw
04 — Target markers
SetRaidTarget() is protected. Use /tm.
Since patch 12.0.0 the marker API is protected, so the old macro cannot call it. Running it gives you an error rather than a marker:
/run SetRaidTarget("target", 2)
The error is “blocked from an action only available to the Blizzard UI” — not a typo in your macro, and not something a conditional will fix. The supported route is the slash command, which the game itself runs and which therefore is not blocked:
/tm 2
The indices
| Mark | Index | Mark | Index |
|---|---|---|---|
| Star | 1 | Moon | 5 |
| Circle | 2 | Square | 6 |
| Diamond | 3 | Cross | 7 |
| Triangle | 4 | Skull | 8 |
Three forms, and the one that bites
- /tm 2 — toggles. Press it twice and the mark is gone, which is exactly the bug people report as “the marker flickers off”. /tm with no index clears the mark.
- /tm !2 — only ever adds the mark. Use this in a fight macro you press repeatedly.
- /tm ~2 — marks only if the target is entirely unmarked, so it will not overwrite somebody else's skull.
Mind the space with a conditional. A 12.x-era parser wants /tm [@mouseover] 2 — with the space. The older squeezed-together form /tm [@mouseover]2 is not what you want here.
/tm [@mouseover] !2
05 — Taming
Tame Beast has conditions, and they fail quietly.
- You need an empty Call Pet slot — no active pet. If your pet is out, the tame simply will not start.
- You cannot tame a beast above your level.
- The channel breaks if anything hits you, so a tame in a busy spot fails on damage rather than on skill.
None of those are macro problems, which is why the tame helper aura exists: it puts the cooldown and the target check on screen instead of leaving you to remember them mid-pull.
06 — Where to go next
The rest of the shelf.
A macro for every ability
All nine classes, each ability written as a rank-less macro you can copy straight into the game.
Every command and condition
The fifty commands this client knows, with their German forms, and every condition you can put in square brackets.
Import strings
The other half of a UI: auras generated by our own tooling, each with a copy button and a raw file.