I am going to preface this with a big why. Why bother with Gnome Sequencer Enhanced (GSE) and AutoHotkey (AHK)? For me this comes down to the basic fact that WoW is a bloat game. By that I mean they have far too many spells for single press keybinds. I remap my keyboard and squeak out about 14 keybinds: 1 2 3 4 5 6 q y g h j z x n. I can hit all these keys with my left hand without looking at the keyboard no problem. Going beyond those is a far reach. Things like a s d f c b are reserved for other hotkeys. I can add u I k and F1-F4, but typically I have to look to hit those. Once you get above around 14 distinctly different blind keys then you have to look at the stupid keys or mouse click, which puts your focus on the UI rather than the game and you wind up standing in stuff on the ground.
Anything that can be macroed off of a single spell per bind assignment then recovers binds and lets me function. Having a mash macro that you can hit blind to run through the basic rotation then helps out tremendously as you do not have to bind each action in that mash macro sequence.
Now in terms of a general philosophy of macros the mash macro is very specific. For my Warlock, I would want the mash macro to apply Agony, Corruption, keep 1 stack of UA up, and apply haunt, and shadow bolt otherwise. Maybe even pull UA out of the mix entirely, but I think 1 stack is not that bad. A good mash macro would load up your target with that stuff.
Where the decision for me comes in is how to burst and load beyond that. So extra stacks of UA, I would still need, and apply on a separate keybind. If I want to burst, I need all DoTs up, need to hit PS, Darkglare, then Deathbolt. Icy says do not delay Deathbolt but prepare for it. I find that to be crap. You want to deathbolt a hefty target that needs to die now and I would rather delay and make that mission happen than automate.
So when these macros at places like lazy macros tries to automate all the cooldowns into a mindless macro, I think they ultimately fail because it puts things on CD when you should be holding them to achieve a particular goal. Thus my philosophy is strip most of those CDs from the mash macro and use my brain when to use them, but the things you can cast over and over. Mash macro does the anytimes and short CDs. The rest is up to you.
So for my Warlock I would have PS, UA, Seed, drain life, boom macro, fear, enslave demon, command demon ability (spell lock for felhound), petattack, darkglare, shadowfury all on separate binds.
The boom macro then for me is a priority GSE macro with PS, Darkglare, and Deathbolt. I load it up with DoTs, get 5 stacks of UA, then mash the boom macro to have a big freakin deathbolt take it down.
Some will worry about bans. First off, AHK. If you are worried about banning, read the thin gray line. Note GSE by itself is fine. Specific paragraphs of relevance
What happens next is the grey line. Hardware manufacturers like Razer and Logitech include tools with their keyboards to be able to program the keyboard to a certain extent. These can be configured that when you hold down a key it will send multiple hardware events to WoW. Software applications like AutoHotKey, PunchKey, Keyboard Maestro and some home grown Java code available on these forums can also perform the same behaviours. What we know is that when these tools are used to remove the RSI (Repetative Strain Injury) inducing behaviours of spamming the same keyboard button over and over. No one has been banned for using these tools in this behaviour.
Some of these tools however have the ability to do more than cause a button to repeat over and over. Some of them can detect pixels at locations and then perform decisions. You as an individual may choose to use these functions but know that by doing so you are in violation of WoWâs ToS and do so at your own risk. We as a community will not tolerate any posts or discussions on macros written in third party tools like those mentioned above âto give the perfect rotationâ as it moves us from the grey line over it onto the wrong side of WoW ToS. If tools like the ones above are abused and then enforced it makes the game less enjoyable for a lot of people for a minimal advantage.
So GSE + AHK with a button spammer macro are fine. Repetive strain from mashing the 1-key is something they want to avoid and will tolerate. Botting starts when you have it detect things on screen.
Why then AHK? If I use these macros without AHK, I have to mash them hard over and over and it just wears my fingers out. So having AHK handle the mashing for your mash macro seems fine.
References on AHK
- Download it here .
- Video on how to do a spammer key. This key works as long as you are in WoW and pressing and holding it down.
- An alternative script to press the 1 key to turn on the spam, then press it again to turn it off
#IfWinActive World of Warcraft
; to force the hotkey only to Wow
$1::
Suspend On
keywait 1
Onetoggle := !OneToggle
While (OneToggle)
{ Send, 1
sleep, 150
}
Suspend Off
Return
#ifWinActive
; to end the WoW key binding
Note the semicolons are comments and not needed. Also adjust the 150 sleep timer to around 100. Most of the macros I see at Lazy macros run at 100ms, and this is where you change that timer.
If you are going to set 1 up as your spammer, then you drag the lazymacro to the 1 key. Pressing 1 then will spam that macro.
OK now on to GSE. You can get it from Twitch. If you just want to use someone elseâs stuff, google âlazymacro afflictionâ for example to pull up where on the lazymacro site authors are posting macros for the affliction spec. Note that you want to use 8.0 macros for BFA, not the old stuff. You can search for whatever spec you want.
What now follows are my notes that I took as I went through this amazing tutorial video on GSE. This is more my trying to understand how GSE works so I can modify macros I get from lazymacros. Forgive the brief bulletized notes, but I hope you can figure it out.
Load up macro example and modify
Configuration tab is where you say what spec it works for. I do not think this is critical, but it helps people know what to use.
New button will let you create different macros for different situations. For instance I could set up the 1 macro for default, pvp with Haunt, and have the 2 macro work with the sacrifice spec for raids, mythics and dungeons. Thus I can keep the same macro on the same button and where I am changes its use.
Click on the numbered button to edit the basic sequence.
Step function pull down, that says what kind of macro you want. Step function goes down a list, trying to do the next one in the sequence, and if it can not it goes to the next. Thus try action 1, if not available, do action 2, or after executing 1 doing 2 and so on down the list. It remembers where you are in the sequence. Priority list will go to the top of the list after each keypress and check again.
The inner loop limit is how many times it will do the sequence before reseting to the top.
The KeyPress section does this stuff every key press. You can pre-empt the usual sequence with a modifier action here like /cast [mod:ctrl] Unstable Affliction. So if I put my macro on the 2 key, if I hold control+2, it would cast UA instead of the usual sequence. DO not put spells here, it lags stuff out, keep non GCD stuff here. Personally I hate mods and will not use them. I think people put mods in with button spammer toggles so they can tap the mod and have it do something else. I suppose this beats toggling off the spammer then hitting the separate keypress.
The KeyRelease box is the same as the KeyPress box, but does it after key release. Only can put non GCD stuff in KeyRelease.
So KeyPress/KeyRelease are for each punch of the key.
PreMacro and PostMacro are what it does before and after each loop. So it does PreMacro, then loop iteration 1, then PostMacro, then PreMacro for loop 2, then loop 2⌠and so on. In the video I watched, he had mend pet in the post macro, Trueshot in the pre macro. PostMacro is where melee classes typically put /startattack. Premacro is where you typically put targetting and pet stance stuff.
The sequence box is where most of your macro goes in. Typically if it is a priority list, you put things in the order as defined by Icy Veins here. If you have the priority stack macro, you only need one cast line per spell. If you have a sequence macro, and you want to say cast UA 2x, then you have to have it in there twice in the sequence box.
Apparently you do not need to put in equipment punches in the main macro. You can just click on or off the equipment piece on the right side. So for my main mash macro, odds are I do not want it popping trinkets, so I would uncheck everything. But for my burst macro, I want it to pop trinkets, so I just check those. This means you do not have to have the classic /use 13 and /use 14 in the macro.
Now a lot of the art in this macro stuff comes down to making a sequence that can be repeated. It does not look like the macro can detect if a debuff is already applied, so the way you get this to work is time how long the debuff lasts and fit as many anytimes in there as filler until the debuff drops. This takes work on the target dummy and DPS meters, and it may be that you have to pull something out of the sequence because it simply can not be automated.
Also the other big central issue seems to be that if you have a big long list, you have to mash fast. Say you have a 10 action sequence. It can not do 5 things in the list, so a good 5 of your keypresses were wasted. If they were all in a row, and it took you longer than the GCD, you have dead time. People get around this by using masher 3rd party software like AutoHotkey. People love it and risk it though because they can set up AutoHotKey to mash the 1 button 10 times per second which then moves through a long ass sequence list with no issues. GSE by itself is not a violation and it is perfectly fine. One keypress per action.
GSE then works like this. Press key. It does all of the KeyPress, then does one action from the Sequence, then all from the KeyRelease. Next press does the same Keypress, but this time it goes down 1 in the Sequence, and does the same KeyRelease.
His example of how to sequence is this in the sequence box
/cast Spell 1
/cast Spell 2
/castsequence A, B, C
/cast Spell 3
The sequence order then is this
1 2 A 3 1 2 B 3 1 2 C 3 1 2 A 3 and so on. You can play with the timing by how you set these up.
Another example
/cast Spell 1
/castsequence A, B, C
/castsequence D, E, F
/cast Spell 2
This generates this order,
1 A D 2 1 B E 2 1 C F 2 1 A D 2 and so on.
Note that as it goes down this sequence, it will skip any action not available. So if B is on CD, then sequence looks like this
1 A D 2 1 E 2 1 F 21 D 2 and so on. This is pretty important because the first cast sequence will not execute again until B comes off CD, and this locks it up.
THings that do not work with GSE- reset timers , or reset by target.
Timing example
Spell A has a 2s CD
Spell B needs to be cast every 15s
/castsequence b, a, a, a, a, a, a, a
So it casts b, then goes through 7x a casts at 2s each before it does b again. This is how you do timing.
I think good macro design then is going to amount to trying to strip down a bunch of possible deadspace keypresses. If you have a really long sequence, then you will have to mash faster to get it to work, and if you can simplify it, it might work better.