/cancelaura - Looking for Advanced Help (Elvenbane around atm?)

I’m guessing there’s probably no API/XML for what I want to do, but I wanted to check if anyone knew a creative solution or way to script my goal:

I’m wanting to add some form of protection or stop to a /cancelaura macro so that I can spam it in the heat of the moment without instantly canceling my Aura.

Basically I want a /cancelaura version of:

/castsequence reset=combat/1 XXXXX(spell), null

  • so that it’s safely spammable like this popular Death Knight macro:

/castsequence [combat,nochanneling,harm,nodead,known:47568] reset=10 Empower Rune Weapon, null


This macro isn’t “supported” I know, but just to make it completely clear what I’m trying to do, if this formatting actually worked this is the “logic” I’m trying to achieve (both lines would be in the same singular macro):

/cancelaura reset=3 Umbilicus Eternus, null
/castsequence reset=3 Vampiric Blood, null

With the idea being that if I rapidly spammed the macro it would cast Vamp Blood then completely null/stop the macro until I left it alone, then when I pressed the macro again after the 3second reset it would cancel the Aura.


I’m assuming /cancelaura cannot accept [modifiers] or [conditional:booleans] right? Like:

/cancelaura [combat] Blessing of Protection


What about in a script? Is /cancelaura “Protected” at all? If not wouldn’t it be possible to use some form of Pause/Delay/Timer kind of like a janky reset=xx?


Sorry to make this such a big wall of text for what is a relatively straightforward question, but I wanted to make sure I was clear about my goals and get the point across that I’m between novice and expert regarding WoW UI.

/cancelaura can have [options] like /cast but “reset=xyz” is a feature only available to /castsequence. reset doesn’t fire an action on its own either, after the reset condition is met the “pointer” is moved back to the beginning of the sequence and that the next time you trigger the macro, it starts from the first spell and not from where you last left things. No matter what, nothing happens until click the macro.

wowpedia is one of the better reference sites for many wow items including macro commands. This is a very comprehensive list of all things macro to put you on the road to becoming a macro master.
https://wowpedia.fandom.com/wiki/Macro_commands
https://wowpedia.fandom.com/wiki/Macro_conditionals
https://wowpedia.fandom.com/wiki/UnitId
https://wowpedia.fandom.com/wiki/Cooldown#Global_cooldown

Regarding cancelaura
/cancelaura is “off” the gcd and you can stack it in the same macro as /cast commands. It also doesn’t affect #showtooltip or #show in any way.

So if there was a buff you always wanted to drop when you start combat and you always started combat with “AttackSpellA” this macro would work really well.

#showtooltip
/cancelaura IdontWantThisBuffInCombat
/cast AttackSpellA

Any time you use the “AttackSpellA” macro, if you have that buff it will be removed. If you don’t have the buff, nothing happens. The cancelaura has no impact on AttackSpellA whatsoever. If you want to limit it to the start of combat and not drop the buff if you pick it up during combat you could do this:

#showtooltip
/cancelaura [nocombat] IdontWantThisBuffInCombat
/cast AttackSpellA

The attackspellA will start combat but its second. When the cancelaura is evaluated by wow combat won’t have started yet.

As of Legion-ish, a while ago anyway, abilities like Ice Block and Dispersion can be toggled on and off by casting the spell again; doing it that way has what feels like a 1 GCD delay. You can prevent that functionality by prefixing the spell with !.
eg /cast !Shadowform

I can’t picture a scenario for Vamp Blood or ERW where you’d want to cancel the aura (but I haven’t spent much time on my DK this xpac), and I’m surprised they’d fall into the category of things you can toggle on/off.

Like Tink mentioned you can definitely include conditions on cancelaura (about the only thing I’ve seen that can’t is /console.)

So, if you want to add a toggle to something I’d use this technique

#showtooltip
/cancelaura [mod] BUFF
/cast !SPELL

That way you can spam it all you want and it will only remove it if you do it with a modified press.

#showtooltip
/cancelaura [mod:alt] Divine Shield
/cast Divine Shield

Alternatively, you can do what Tink mentioned, and put the cancel on a completely different macro.

Thanks to both you and @Tinkerrific.

Neither of you quite understood my goal, but you both also answered most of my questions in the end despite that heh.

And you inadvertently solved a long-standing mystery for me: Back in MY day ! was used to prevent auto-cast spells from turning back off, like /cast !Autoshot or /cast !Volley or /cast !Feign Death (can you guess what I mained back then? lol); but when I tried to use ! in modern macros it was never doing what I expected.
So it’s nice to finally have that answered too.

It would have probably been helpful if I’d properly explained the end-goal of the macro lol.

It’s moot now since yall have already given me answers that I can work with, but IMO it’s also one of the strangest niche interactions that I’m aware of in WoW (like this is some Rextroy level weirdness) and I think yall will think it’s interesting so here’s the “But why would you even want to do that??”:

(Be prepared though, it’s a doozy)


/cancelaura Umbilicus Eternus
/cast Vampiric Blood

That is the original/basic form of the macro.

First off one major clarification: Vampiric Blood is NOT the Aura being canceled, ever. The /cancel is for the tertiary Aura that gets applied with Vamp Blood when Talented:

Umbilicus Eternus must have been coded in some kind of ɛʟɖʀɨȶƈɦ language because not one bit of it functions mechanically like you would expect it to. (It feels eerily similar to how the original Fire Mage Ignite was coded like 10 years ago, the way it builds and falls and sometimes does whatever the hell it feels like; and IIRC old Ignite was coded by the Devil himself.)

I still don’t even fully understand how it works myself, but the TLDR (I think?) is:

  • While Vamp Blood is active (and you have that Talent) you gain an Aura that stores a % of the damage-dealt from only Diseases which were applied BEFORE the UE-Aura Buff was applied to you…
    • Meaning that if you cast Vamp Blood and then apply your Disease then none of that damage (or less of it? IDK it’s weird) gets rolled into the bonus UE-Absorb Shield.
      • BUT if you /cancelaura the UE-Aura early while Vamp Blood is still active, then it not only goes ahead and gives you whatever Absorb Shield it had “Ignited” up till that point, it ALSO immediately re-applies a brand new UE-Aura.
        • The end result is that you almost NEED to cancelaura it sometimes just to make sure it actually proccs properly from all your Disease damage and it doesn’t accidentally end up an empty dud of an Ignite-Absorb.
          • AND on top of that it’s also absurdly efficient to strategically cancelaura UE multiple times per buff to give yourself early Absorbs and to minmax which Diseases are actively rolling into the Absorb.
            • Like REALLY REALLY efficient- In controlled testing with rational conditions I’ve managed to get 2MILLION+ Absorbs while entirely solo/unbuffed, from a single talent point that is a modifier/bonus Talent for Vamp Blood… Seems a bit off ya know…

I think I said that right, good lord just trying to type the explanation in a way that makes sense was hard (good “Rubber Duck” moment though), but do you see why I compare it to old Ignite?


It doesn’t seem like it’s possible to do exactly what I’d like.

Still not confirmed impossible though. I basically just want to build in protection against being able to rapidly spam cancel the aura. The same way this common macro protected DK’s from accidentally double-casting the half-GCD Death Grip (before Blizzard recently patched in a fix themselves): /castsequence reset=1 Death Grip, null

I knew something like /cancelsequence was a long-shot, but if /cancelaura isn’t a Protected/Secure Function I would assume there’s some creative way to accomplish my goal with a script-macro; I can work on figuring that out myself though since I don’t want to ask yall to start writing fresh code for me.

BUT it is a pleasant surprise that [mods] DO work with cancelaura. Controlling the cancel manually with [mods] wasn’t the plan, but it will get the job done just fine while I try to find a creative work-around.
I only just recently learned about non-/cast or non-/use /commands working with [options] such as these 2 macros I’ve been iterating on for a while, so it didn’t occur to me to try it for this too (feel free to point out improvements btw, I wrote these mostly by guessing lol)…


LootMount
/use [@mouseover,dead] Loot-A-Rang
/stopmacro [flying]
/run if SecureCmdOptionParse"[@mouseover,nomod,noexists,outdoors,nocombat,nochanneling][nomod,noexists,outdoors,nocombat,nochanneling]"then C_MountJournal.SummonByID(0)end
/targetenemy [noharm][dead]


PetControl
/petmoveto [mod:shift]
/petattack [@mouseover,nomod,harm]
/click [nomod,harm] PetActionButton9
/petfollow [nomod,noharm]
/petpassive [nomod,noharm]
/cast [nopet,nochanneling,exists,spec:3][nopet,nochanneling,group,spec:3] Raise Dead


…and I’m still figuring out the rules of what does and doesn’t work like that, but I believe "Tink’s Links"© (heh) will most likely contain that info; I already knew about 1 of the 4 Tink Links© and it’s been GOAT Tier valuable as a reference till now, so 4x the GOAT is… How something like Goat Simulator comes into existence?

BTW How do yall make those bigger black boxes for special text here? That seems like it’d be way easier than the manual way I’ve been formatting things, but I can’t figure out how to make them.

```code```

But on separate lines. Quote one of the code blocks and you’ll see.

Cancelaura command / macros are bug ATM.

They should fix it soon…