ok for a start you are passing through the key press and then also sending it to your main, this will result in 2x w... try it in a chat box... v annoying


the ~ means pass the button press through to your active window and also do anything in the procedure

I also found that keywait was not as good as testing for the key up condition

try something like...

[code:1]
w::
ControlSend,, {w Down}, ahk_id %wowid1%
ControlSend,, {w Down}, ahk_id %wowid2%
Return

w Up::
ControlSend,, {w Up}, ahk_id %wowid1%
ControlSend,, {w Up}, ahk_id %wowid2%
Return
[/code:1]

Another thing... the line

[code:1]#IfWinActive, World of Warcraft[/code:1]

can be specified once in the script... everything below this line is considered to be governed by it

I put all my general commands above this line and all the WOW specifics below it. it just makes the script easier to read.

anyway, I hope this helps