Macros: Essential Information

1 Like

@adreaver can you help me make a macro. i would say its a rather long one

With Classic now being a thing, I’m going to add a section to the guide on spell ranks and how (and why) to use them.

TL;DR until I have it tested thoroughly and written up:

  • /cast Spell will attempt to cast the highest possible rank.
  • /cast Spell(Rank #) will attempt to cast the specified rank.

I recommend using this macro:

#showtooltip
/cast Spell

for all your primary spells while leveling - this will automatically update when you learn new ranks without you having to remember to drag the higher rank spell on to your action bars.

1 Like

Remove the space between spell and rank or it won’t function properly.

/cast Spell(Rank #)

1 Like

um, anyone have a macro for classic so it will either dispel magic/cure disease into one button on a priest? i don’t want it to be mouse over. just those two so i can cut down on hotkeys for pve.

Not possible without modifiers.

no i am willing to press the button twice for both actions. ie dispell magic, if no dispell then cure disease. i have seen similar macros but they all have mouse over commands in them, i don’t want those.

ie. #showtooltip
/cast [mod:alt] !Mass Dispel; [spec:3,@mouseover,help,nodead] Purify Disease; [@mouseover,help,nodead] Purify; [@mouseover,harm,nodead] [harm] Dispel Magic; [spec:3] Purify Disease; Purify

Not possible, see above. The macro you used as an example, which I wrote, doesn’t apply because the spells function differently in Classic than they do in Retail.

lame. guess i will just try classic decursive addon instead. thanks for the response.

Let me ask here, Macro pros.

Can’t use /targetenemy or /targetenemyplayer

The scenario
A group of mobs, or players. You tab target a mob in the distance, yet there is a mob right in front of you. You go to attack that close mob but realize your target is stuck on the far mob.

Using //cleartarget, can you add any modifier that one the press of the macro it figures out that far mob IS NOT ATTACKING YOU and clears that target allowing you to attack the mob right next to you?

/cleartarget
/startattack
/cast sinister strike

The above will clear that far mob, but once you attack your mob next to you, on each successive attack it clears your target you are attacking and retargets it, clear/retarget, until its dead.

If /cleartarget can be modded to understand not to clear if target is attacking you, i’d be golden.

Possible?

Nope.

You can add a modifier to the clear command so that you can decide to clear the target but the macro can’t do it intelligently.

/cleartarget [mod]
/cast Sinister Strike
/startattack

OP updated to include WoW Classic. See changelog below. Also included the new section in this post for better visibility.

Changelog 20190915:

  • Added Classic Changes section with the below:
  • Spell Ranks
  • Focus UnitID Removed (Classic Only)
  • Reticle Targeting Conditionals Removed (Classic Only)

6. Classic WoW Macro Changes

There are a few changes to the macro system specific to WoW Classic. For the most part, the API is unchanged, and live macros should work in most cases.

NEW: Spell Ranks

  • Classic WoW returns to the ranking system for spells. Most spells with an absolute value effect (read: not percentage-based) have multiple ranks, which cost an increasing amount of mana (and sometimes have a longer cast time) for higher ranks. Some spells (primarily buffs) are level restricted for certain ranks, (You can’t buff a level 1 character with max rank Blessing of Might or Power Word: Fortitude). Use spell ranks in macros like so:

    • /cast Spell will cast Spell at the highest possible rank for that target. For offensive spells, this will always be the highest rank. For beneficial spells, this will be the highest rank depending on target level.
    • /cast Spell(Rank #) will cast Spell at the specified rank. This is primarily useful for healers to conserve mana, or if you have an offensive spell that applies a debuff and you want the debuff effect but not necessarily the spell damage. Rank 1 Frostbolt for Mages is a common tool for kiting as the mana cost is lower and the cast time is shorter than higher ranks.

REMOVED: Focus (UnitID)

  • In Classic, Focus (and related unitIDs, like focustarget) is not recognized as a valid target for spells.
  • This means that you will need to target the unit you want to cast at. You an use other unitIDs like targettarget, pettarget, or party1target, but this is less reliable as the intermediate unitID can swap to a different target.
  • Mouseover is generally a better option as it is 100% within your control, but it does take more coordination and mouse accuracy than Focus macros from BfA.

REMOVED: Reticle Targeting (Conditionals)

  • In Classic, reticle (ground targeted) spells require two keypresses to activate. The first press will bring up the targeting reticle, and the second press will cast the spell.
  • This is a change from BfA, where you can use [@cursor] to immediately drop the spell on your mouse, or [@player] to immediately drop the spell on yourself.
  • There is no effective workaround for this issue, though it may be helpful to bind these types of spells to additional mouse buttons (Mouse3 (wheel click), Mouse4 (forward), Mouse5 (back), or other buttons as available depending on your mouse), as that doesn’t require the use of both hands to cast a single spell.

I can’t figure out why this is being so difficult.
#showtooltip# Aspect of the Wild
/cast Aspect of the Wild
/use 13

AotW casts, trinket fails
Both AoTW and the on use trinket have 2 min cooldowns
Swap the two around /use then /cast, trinket fires, no AotW.
What am I missing?

Which trinket?

Also, there’s no # after #showtooltip

1 Like

The trinket is Notorious Gladiator’s Maledict.
Will remove the “#”
Thanks in advance for any and all assistance.

It’s on the GCD so can’t be combined with other GCD locked abilities

1 Like

Well that is just …
Will keybind the darn thing
Thanks

You might want to add a mention of []
Lots of new people don’t know about it and how it functions with auto self-cast.

1 Like

Good point; I use this so often I didn’t even consider it might not be common knowledge.

How do i run this in the game or with some app or software? "function CommandList()

local HT = {}
HT.Commands = {}
HT.NormalizedCommands = {}

for key, value in pairs(G) do
if strsub(key, 1, 6) == "SLASH
" then
local cTypeKey = gsub(key, “%d+$”, “”)
for cSeq = 1, 20 do
local cPrime = cTypeKey…“1”
local cKey = cTypeKey…tostring(cSeq)
if _G[cPrime] and _G[cKey] then
if strsub(_G[cPrime], 1, 1) == “/” and
strsub(_G[cKey], 1, 1) == “/” then
HT.Commands[_G[cKey]] = _G[cPrime]
if HT.NormalizedCommands[_G[cPrime]] then
– skip it
else
– make it
HT.NormalizedCommands[_G[cPrime]] = {}
end
HT.NormalizedCommands[_G[cPrime]][_G[cKey]] = true
end
else
break
end
end
end
end
return CopyTable(HT)

end
"