What is MS and how can I change it? Answered (With working AHK script you can use with Modifiers)

Basically MS is the speed at which people are “pressing” the button that the macro is bound to.

If you have a keyboard or mouse or a software program such as AHK that allows you to program a key/button to repeat, then you could use one set to a speed of 100ms.

If you have mouse or keyboard software you will have to research how to do it as each software has it’s own method of achieving this however if you have no software for your keyboard and mouse then your best bet then would be to download and install auto hot key from here: https://www.autohotkey.com

Once installed right-click anywhere on your desktop and click new then Autohotkey Script. Once its open delete everything inside and put this code in:

#ifWinActive World of Warcraft  ; Only run if window 'World of Warcraft' is active
{
	$3::  ; If e is pressed
	$^3:: ; If e+control is pressed
	$+3:: ; If e+shift is pressed
	$!3:: ; If e+alt is pressed
		Loop ; If any of the above is true then loop below
    			{
				if not GetKeyState("3", "P") ; If E is not pressed then break the loop
					break
				if GetKeyState("LCtrl", "P") ; If left control is pressed then send control+e
					Send ^3
				else if GetKeyState("LShift", "P") ; If left shift is pressed then send shift+e
					Send +3
				else if GetKeyState("LAlt", "P") ; If left alt is pressed then send alt+e
					Send !3
				else
					Send 3 ; If 3 is pressed with no other modifiers send 3
				sleep 70 ; Time in milliseconds between key repeats
			 }
		return
}

Change all the 3’s to whatever key you have your macro on. The line with “Sleep” is your MS so in this case 70. Save and choose a name you will remember. Right-click that file and click run - go into the game and hold key it should now work.

7 Likes

Ok so did this step by step. Opened ahk and then opened wow. Loaded the lock, and as soon as it was logged the lock was on auto fire. I have it bonded to 2 and it was constant cast going throw the steps. Only issue was I couldn’t get it to stop by hitting 2. Just kept going like the Energizer bunny lmao. I had to find the ahk icon I think it was green and pause script to get it to stop.

I’m pretty sure it’s me and probably something simple I’m missing but i though to start the macro i hit key 2 and stop it hitting 2.

For it to be bound to number 2 it should look like this:

#IfWinActive World of Warcraft
$2::
GetKeyState, state, 2, P
if state = D

Loop
{
Send {2}
Sleep, 70
return
}
#IfWinActive

is that how yours looks?

#IfWinActive World of Warcraft

$2::
Suspend On
keywait 2
Onetoggle := !OneToggle
While (OneToggle)
{ Send, 2
sleep, 70
}
Suspend Off
Return

#ifWinActive

This is one I found on a help page. I initially tried your first one up in post and it wouldn’t even start. once I can get back in game ill copy yours exactly and see what happens

The one you have posted is set to turn on and off on key press which is why it turns on and off when you press the key

Neither works now it seems ahk is not attaching to wow or something. I’ve reinstalled ahk, rebooted computer, multiple start and reloggs of wow, I’m at a loss

To add I also tried starting ahk as administrator, then starting wow, and still no success

you dont have to start AHK you just right click and run the script

Yes I have done that both that way you say and also by right clicking and running it as administrator. It starts and shows up in the bottom right corner of the computer. Just doesn’t seem its attaching to wow.

are you using the keyboard or are you using mouse to press the key?

Keyboard, I have a corsair gaming mouse I use but nothing bound to it.

hmmm not sure will keep looking into it

I have used:

==========================================================
;; by Hadronox / Rezel

#MaxThreadsPerHotkey 2
#IfWinActive World of Warcraft ;; enabled only in WoW
Toggle1 := 0
Toggle2 := 0

$1::
Toggle1 := !Toggle1
While Toggle1 {
Send, {Blind}{1} ;; blind mode to send modifiers
Sleep, 150
}
return

$2::
Toggle2 := !Toggle2
While Toggle2 {
Send, {Blind}{2} ;; blind mode to send modifiers
Sleep, 150
}
return
#IfWinActive ;; disable WoW context sensitivity

^PgDn::Suspend ;; Ctrl + PageDown to suspend script (if you want to chat)
^PgUp::Reload ;; Ctrl + PageUP to reload script
^End::ExitApp ;; Ctrl + End to terminate script

But currently use:

======================================================

;; by Hadronox / Rezel

;; ############################
;; INFO
;; ############################

;; The purpose of this macro is to use 2 toggle keys to spam 2 other keys.
;; Default: “Mouse Button 4” will spam “1” at 150ms, and “Mouse Button 5” will spam “2” at 150ms.
;; All keys are customizable along with the delays in the CONFIG section.

;; for a list of AHK Keys: List of Keys (Keyboard, Mouse and Joystick) | AutoHotkey

;; PROGRESS WINDOW: Progress / SplashImage - Syntax & Usage | AutoHotkey
;; Progress, M B1 X1325 Y675 C1 W75 ZH-5 ZX0 ZY0 FM0 FS25 WM1 WS600 CT40FF06 CW000000, ON1,ON1,Verdana
; M: movable window / B: No border / B1: thin border, no title bar / B2: thick border.
; Xn/Yn coord upper left corner / Cxy: centered sub/main text / Wn: width client area.
; ZHn: window height/thickness / ZXn: left/right margin / ZYn: top/bottom margin.
; FMn: main font size, 0=10 / FSn: sub font size, 0=8.
; WMn: main font weight / WSn: sub font weight, 1-1000, 600=semi bold, 700=bold, 400=normal.
; CTn: color text / CWn: color background, 16 primary HTML color names or a 6-digit RGB hex.

;; #################################
;; AUTO EXEC
;; #################################

#NoEnv
SetWorkingDir %A_ScriptDir%
SendMode Input
#SingleInstance Force
#MaxThreadsPerHotkey 2

;; #################################
;; CONFIG
;; #################################

;; ------------------
;; 1st Toggle Key |
;; ------------------

;; Set your DELAY, in ms.
DelayA := 100

;; Set the key you want to press to start spam.
KeyToPressA = 1 ;; MB4

;; Set the key you want AHK to spam.
KeyToSpamA = 1

;; ------------------
;; 2nd Toggle Key |
;; ------------------

;; Set your DELAY, in ms.
DelayB := 100

;; Set the key you want to press to start spam.
KeyToPressB = 2 ;; MB5

;; Set the key you want AHK to spam.
KeyToSpamB = 2

;; ------------------
;; 3rd Toggle Key |
;; ------------------

;; Set your DELAY, in ms.
DelayC := 150

;; Set the key you want to press to start spam.
KeyToPressC = 3

;; Set the key you want AHK to spam.
KeyToSpamC = 3

;; #################################
;; MAIN
;; #################################

; Hotkey, IfWinActive, World of Warcraft ;; enabled only in WoW
Hotkey, $%KeyToPressA%, LabelA
Hotkey, $%KeyToPressB%, LabelB
Hotkey, $%KeyToPressC%, LabelC
return

ToggleA := 0
ToggleB := 0
ToggleC := 0

LabelA:
If(ToggleA) {
ToggleA := 0
Progress, Off
SetTimer, SpamKeyA, Off
} Else {
ToggleA := 1
;; PROGRESS WINDOW
Progress, M B1 X1325 Y675 C1 W75 ZH-5 ZX0 ZY0 FM0 FS25 WM1 WS600 CT40FF06 CW000000, ON1,ON1,Verdana
SetTimer, SpamKeyA, %DelayA%
}
return

LabelB:
If(ToggleB) {
ToggleB := 0
Progress, Off
SetTimer, SpamKeyB, Off
} Else {
ToggleB := 1
;; PROGRESS WINDOW
Progress, M B1 X1325 Y712 C1 W75 ZH-5 ZX0 ZY0 FM0 FS25 WM1 WS600 CT40FF06 CW000000, ON2,ON2,Verdana
SetTimer, SpamKeyB, %DelayB%
}
return

LabelC:
If(ToggleC) {
ToggleC := 0
Progress, Off
SetTimer, SpamKeyC, Off
} Else {
ToggleC := 1
;; PROGRESS WINDOW
Progress, M B1 X1325 Y747 C1 W75 ZH-5 ZX0 ZY0 FM0 FS25 WM1 WS600 CT40FF06 CW000000, ON3,ON3,Verdana
SetTimer, SpamKeyC, %DelayB%
}
return

;; blind mode to send modifiers
SpamKeyA:
Send, {Blind}{%KeyToSpamA%}
return

SpamKeyB:
Send, {Blind}{%KeyToSpamB%}
return

SpamKeyC:
Send, {Blind}{%KeyToSpamC%}
return

;; #################################
;; CONTROLS
;; #################################

^PgDn::Suspend ;; Ctrl + PageDown to suspend script (if you want to chat)
^PgUp::Reload ;; Ctrl + PageUP to reload script
^End::ExitApp ;; Ctrl + End to terminate script

=====================================================
Looks complicated but is easy to use, timings are easy to set.

2 Likes

Thank you comicus!! I hope this helps people out!!

Updated the original posts AHK script to now work with ALL the modifiers! Enjoy!

1 Like

hi , how do you set this up?

The script works but I am having this weird issue where after running it I have to hit escape twice until wow comes into focus and then I can cast spells again.

For instance when i select NPC and hold “3” down script runs, but lets say i pull 3 at one time. Sometimes I have to let go because the toon (Demonology - Warlock) will stop casting. I hit esc 2 times and then hold 3 the warlocks starts casting

Have you ever experienced that before?

I can’t say I have - do you play in full screen?

I play in Fullscreen - Borderless. I was thinking that as well, but in my video settings the only two options is windowed or full screen borderless. Its like its losing focus. I cant cast any abilities click or press but i hit esc and then esc again i get the system menu. I close that and then the toon will start casting.

It even happens in the middle of the fight. Something isnt right with something.

Could it be an addon possibly? I use zygor guides when i play i could try turning that off.