What's wrong with this macro?

Hello guys so here it goes:

#showtooltip

/cast [nomod,@target,help,nodead,exists][nomod,@mouseover,help,nodead]Renewing Mist;Renewing Mist

/cast [mod:ctrl,@target,help,nodead,exists][mod:ctrl,@mouseover,help,nodead]Surging Mist;Surging Mist

Works perfectly with one spell, but now that I added the mod/nomod conditionals, it still only uses Renewing Mist even if I press CTRL.

If you have multiple /cast commands in a macro, the first one where the condition is true gets cast.

In your macro, your first /cast command has a condition-less “else” case at the very end which states “if none of the previous conditions match, then cast Renewing Mist”. Due to this, the second /cast command never gets evaluated.

You could try adding “[nomod]” to the final Renewing Mist cast condition. That would then prevent it from evaluating to true when Ctrl is pressed.

On the other hand, what exactly are you trying to achieve? This macro seems quite complicated, and if you want to do similar things with other spells/skills and other characters, you’ll have to write a lot of complicated macros. Maybe a hotkey bar addon that allows you to switch hotkey bars based on Ctrl/Alt/Shift modifiers might be better, or you might want to use multiple hotkey bars with separate keybinds for Renewing Mist and Surging Mist.

I personally use ElvUI and always show 3 horizontal hotkey bars with 12 buttons each. The 1st has keybinds without a modifier, the 2nd has keybinds with Shift, and the 3rd has keybinds with Ctrl. Then I use very simple mouseover macros for spells I might want to cast on other players (heals, debuffs, etc.)

#showtooltip Vivify
/cast [@mouseover,help,nodead] Vivify

By default, WoW doesn’t support mouseover casts. With that macro, you allow mouseover casts, and if you don’t have a mouseover target, it simply casts as it normally would.

1 Like

In your macro [nomod] triggers what happens before the semicolon ; and the inverse will trigger what happens after the semicolon.

Which is why this :point_up_2: keeps happening, the inverse of [nomod] is [mod]

Macros are based on true or false triggers, this usually means 1 of 2 things can happen and not 1 of 3.

Just split the macro in half, make 2

/use [mod, @target][@mouseover] !Renewing Mist; !Renewing Mist
That’s one

/use [mod, @target][@mouseover] !Surging Mist; !Surging Mist
That’s two

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.