Be careful with your AHK scripts. Account suspended within 24 hours of editing my usual spam button script

Been lurking this forum for a while and just wanted to share this story for anyone using AHK or some hardware to spam a keystroke. Like many of you here I used GSE + AHK to spam my macro. I have it set up in such a way that when I hold down a button it just simply sends that button over and over again. I wasn’t using a trigger button or doing multiple actions for one key press or anything like that.

But I woke up this morning to a Blizzard e-mail saying my account just got suspended. The only thing I could think of was that I had made a small edit to my script to take into account the shift modifier. So that if I was holding down XButton1 it would spam XButton1 but if I was holding down Shift + XButton1 it would send Shift + XButton1. Logically it’s still a one to one mapping and should be okay right?

Below is the exact code I used:

#ifWinActive World of Warcraft

    While ( GetKeyState( "XButton1","P" ) ) {
	    if GetKeyState("LShift","p") {
	    Send {LShift down}{XButton1}{LShift up}
    } else {
		Send, {XButton1}
	Sleep, 100


I’m not entirely sure, but I think the thing that got me was that my Shift + XButton1 was actually sending LShift down + XButton1 + LShift up. So technically it wasn’t quite following the 1 button = 1 action rule. IMO seems like an absurd technicality if that’s the case. Otherwise, I can’t really think of anything else that would have caused this suspension. I’ve used this script to spam XButton1 for at least a couple months with no trouble. But as soon as I made that change, I got banned within 24 hours. So either that or Blizz is starting to crack down on AHK button spamming?

Anyways, just wanted to post this here to let other players know to be careful with using AHK scripts. Really check your scripts to make sure your code isn’t just logically following the 1 button = 1 action rule but literally follows it down to the signals you’re sending.

To clarify this for others as I know the fear-mongering will set in - this happens RARELY due to the use of AHK, not programs associated to your hardware such as Logitech Gaming Software and Razer Synapse.

Additionally, this is common to accounts that have been FLAGGED for PREVIOUS violations; previously banned/suspended accounts, accounts banned on the same hardware and-or IP, as well as accounts that have had billings complications such as chargebacks. When you are flagged for breaking Blizzard ToS, your account goes into a “bad standing” status and is monitored separately from the system used to initially catch offenders. The system is significantly more critical, thus flagging you for offenses such as the use of AHK.

1 Like

This is also where a macro keyboard comes in handy since they are FAR less likely to be seen than AHK. I have been using spam key macros ever since vanilla when we had those big ass Logitech G900 series keyboards with the crap LCD screen and never had an issue.


There are a lot of different ways to get modifiers to work. This might solve your issue but I take no responsibility if you get banned again. This is what I use for modifiers.

if not GetKeyState(“3”, “P”)
if GetKeyState(“LCtrl”, “P”)
Send ^3
else if GetKeyState(“LShift”, “P”)
Send +3
else if GetKeyState(“LAlt”, “P”)
Send !3
Send 3
sleep 27

I use a Razer mouse and have often wondered about that, it is pretty automatic and I push one button on the mouse and it cycles through the macro pretty fast …faster than I could manually

Here we go again. Once or twice a year we get a scare from this. Please read the pinned post from Timothy Luke in Discussions in Discord. Or better yet here:

1 Like

Not trying to cause a scare. I’m aware that AHK itself is allowed. But at the same time you can also do things with AHK that is not allowed. Just wanted to let users know that it is also possible to unintentionally cross that line from my own experience.

I keep seeing people talking about run speed being 100 MS or 150 MS. Could I set the run speed with the script you provided? Is it the Sleep 27 code line?

Yes just change the 27. I use that on my DH while my priest needs 110