ALT/SHIFT/CTRL mod keys not working

Hi
Long time reader first time poster,

I use macros for GSE alot and I wanted to utilize the Shift/CTRL/ALT mod key to increase my performance,

Is there anything extra i need to do to make this work because when i press ALT or SHIFT or CTRL for any macro i have got from here that supports it it doesnt work.

Do i need to change anything in the settings of the keybindings within the game or the GSE settings

Whatever your macro is set to, make sure there’s not an existing in-game keybind for.

For example, if you have a macro set to your “b” key and that macro has a shift modifier, it won’t work because in-game, by default, has shift+b bound as a inventory bag keybinding.

To remove it, you can open your keybindings in wow, find any task that isn’t already keybinded, click to bind it and then enter shift+(whatever key your macro is set to). Once you do this, you’ll see at the bottom of the keybind page “blank function has been unbound”. Now, you can click that same task and unbind the function again. Then you’re good to go.

1 Like

By default Shift 1,2,3
9,0 and Ctrl 1,2,3
9,0 are bound to different action bars. eg CTRL+x are bound to the Pet Action bar. These are the common ones to check.

  1. you have the ALT, SHIFT, or CTRL key keybound to other keys so the input to the system gets confused and it does not register that you are using the macro over the keybind. Solution, unkey bind the alt, shift or ctrl keys from your keybinds. This includes checking the Interface setting and reviewing the Controls, Combat and Action Bars sections as they may have shift, alt or ctrl key modifiers for looting, Focus cast, self cast, pick up keys for your action bar. There may be other options that use alt, shift and ctrl that may or may not affect functionality and you should test with and without them to see what works best
  2. Another input issue is what exact key you are using for the mod in WOW. The key should have Alternate Values that can be obtained from ALT, CTRL, And SHIFT. For example, NUM LOCK keys do not have any SHIFT modifiers in them; they are just numbers 0-9, casting alt and ctrl keys to modify their use. So Shift + NUM 1 does not mean anything to the computer. Example 2, Using the keybind v with shift will produce Shift+v= V (ctrl and alt will also work). So when you bring this to auto hot key or logitech gaming software it means that you should be binding the mouse button to a keyboard letter, symbol or number over the NUMLOCK PAD(edited)
    I use the Keybind v Keybind ; and keybind ’
  1. The other thing you can do ( and I dont reccomend this unless you are aware of what you are doing and back everything up in a seperate folder) is Check your bindings-cache.wtf using a text editor like Notepad for a complete list of every bound key specific to that character.

Go to your WoW directory and navigate to WTF/Account/(acct name)/(realm)/(character) and look for the file named ‘bindings-cache.wtf’. Open it with Notepad and look through it carefully to make sure your not trying to use a key combo that is bound to something else.

1 Like

Also note that if you use the keys I posted you will also have to remove keybinds from any wow function that uses V, ALT V, CTRL V, SHIFT V;
;, ALT ;, CTRL ;, SHIFT ;
', ALT ', CTRL ', Shift ’

I also noticed if you have Nvidia in-game overlay enabled its default action is Alt Z. You need to turn it off in Nvidia GeForce experience panel.

I have a similar issue. i have tried everything i have read to get my mod keys to work. i have searched through every keybinding i can think of and even tried changing my macro keybind to see if that works and nothing. Any help would be greatly appreciated. Thanks

Edit: I figured it out

I’m sure that I’m doing something wrong here. I have removed everything that involves TAB SHIFT or CONTROL from my keybindings and i still cant get the mods to work. When i push SHIFT for a mod, the camera view zooms in behind my character. Any help would be greatly appreciated. You’re the best!!!

Yeah
 my alt and shift mod works, while my ctrl mod doesn’t, i don’t know why :frowning:

all good info
first off
 to be able to use the ALT/CNTRL/SHFT keys for the macros
you must, as instructed make sure all keybindings that have those keys bound to them must be modified by deleting their orders in keybindings
so go into key binding in game and do so
then alt/cntrl/shft will not be bound to anything and the macro will use when those keys are pressed. ONE TIP
as mentioned heres 
 if you have a NVIDIA vid card and NVIDIA Experience 
Alt Z is bound for use in that software
 you must take that out also> to do so: open GeForce icon/Settings * (star wheel icon) /scroll down you will see a slider bar on the right to turn off ALTz 
slide to the left to turn off and walaa youre good to go . hope this helps. happy trails

1 Like

Here is a simple 3 button AHK I got from Deadly Hunters Camp on Discord:

;; by Hadronox / Rezel

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

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

$2::
Toggle2 := !Toggle2
While Toggle2 {
    Send, {Blind}2	;; blind mode to send modifiers
    Sleep, 100
}
return

$3::
Toggle3 := !Toggle3
While Toggle3 {
    Send, {Blind}3	;; blind mode to send modifiers
    Sleep, 100
}
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

Just need to change the “Sleep” to what you want.

So I’ve been trying to rebind the alt key on my keyboard to the discord push to talk key `. I want this rebind to only to work while in wow.

I have tried SO MANY THINGS in ahk. And many things work outside of wow, but when I open up wow and press lalt, instead of ` being sent, lalt is sent instead. It’s been driving me nuts.

I made a thread here about all my attempts:
https://www.autohotkey.com/boards/viewtopic.php?f=76&t=66655

I just tried a suggestion found elsewhere on this forum:

$*lalt:: 
While GetKeyState("lalt","P") 
{ 
Sendinput {Blind}{vkDFsc029 down} 
Sleep, 100
} 
Return

$*lalt up:: Sendinput {Blind}{vkDFsc029 up} 

It worked while I was on my bank alt for about 2 min. I did a dance, and logged to my main to test
and it stopped working. Now it won’t even work while I’m on my bank alt.

From your thread here on this forum, what I understand is
I need to UNBIND ALT from absolutely everything in wow? So I need to remove the alt conditional from all my macros. Remove all the macros that are bound to something like alt+p. Remove all the main game keybinds that use alt. Effectively remove alt from the game entirely. And after I do all that, THEN I can rebind alt to my push to talk button and it should work?

So the only way I can use ahk to rebind alt to another key is to completely eliminate the possibility of using alt in wow? Leaving me with only two conditional buttons to work with, shift and control?

That seems insane! Is this really true?

Edit: And what about isboxer? What if I want to use alt there? I genuinely don’t think I can use my FTL isboxer setup if alt doesn’t work.

@Manfrex I had the exact problem with the right ctrl button, tried everything and nothing worked
 then noticed my keyboard was set to English (Canada) and apparently we dont use the right ctrl
 so switched keyboard to US and now it works great! So an option to explore!

@Liwu thanks for your reply! My problem was that ctrl was being used a lot on blizzard’s standard binds. I just cleared all ctrl binds and now its working!

2 Likes

It is in fact possible to rebind alt (or I assume shift/ctrl) in wow using autohotkey. However, if you want to use alt as a modifier on any other hotkeys using ahk, then you’ll need to use a keyboard hook.

For example, these rebinds work on their own:
LAlt::`
*c::
Send, {sc38 Down} ;alt down
KeyWait, c
Send, {sc38 UP} ;alt up
Return

But if you were to try to add the following hotkey, then LAlt::` would stop working properly.
<!s::x ;lalt + s

If you would like to use <! (lalt) as a modifier, you must use a keyboard hook as shown below:

; script based on https://www.autohotkey.com/boards/viewtopic.php?f=76&t=66655&p=291059
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

if not A_IsAdmin
{
   Run *RunAs "%A_ScriptFullPath%"  ; Requires v1.0.92.01+
   ExitApp
}

#SingleInstance, Force
SetBatchLines, -1

; based on https://autohotkey.com/boards/viewtopic.php?f=6&t=26059
hHookKeybd := DllCall("SetWindowsHookEx", "int", 13 ; WH_KEYBOARD_LL = 13
    , "ptr", RegisterCallback("Keyboard")
    ; hMod is not required on Win 7, but seems to be required on XP even
    ; though this type of hook is never injected into other processes:
    , "ptr", DllCall("GetModuleHandle", "ptr", 0, "ptr")
    , "uint", 0, "ptr") ; dwThreadId

GroupAdd, Wow, ahk_exe wow.exe
GroupAdd, Wow, ahk_exe Wow.exe
return

Keyboard(nCode, wParam, lParam) {
    Critical
    if (wParam=0x104 && NumGet(lparam+4, "UInt") = 0x1F) ; WM_SYSKEYDOWN (alt) + s
        SetTimer, SendXdn, -0
    if (wParam=0x105 && NumGet(lparam+4, "UInt") = 0x1F) { ; WM_SYSKEYUP (alt) + s
        SetTimer, SendXup, -0
    }
    if (wParam=0x100 && NumGet(lparam+4, "UInt") = 0x1F) { ; s down
        SetTimer, SendSdn, -0
    }
    if (wParam=0x101 && NumGet(lparam+4, "UInt") = 0x1F) { ; s up
        SetTimer, SendSdn, off
        SetTimer, SendSup, off
    }
    return DllCall("CallNextHookEx", "ptr", 0, "int", nCode, "ptr", wParam, "ptr", lParam, "ptr")
}

SendXdn:
    If WinActive("ahk_group Wow")
        Send, {x down}
Return
SendXup:
    If WinActive("ahk_group Wow")
        Send, {x up}
Return
SendSdn:
    If WinActive("ahk_group Wow") && !GetKeyState("LAlt", "P")
        Send, {s down}
Return
SendSup:
    If WinActive("ahk_group Wow") && !GetKeyState("LAlt", "P")
        Send, {s up}
Return

#If WinActive("ahk_group Wow")
	LAlt::`
    !s::Return ;to prevent lalt from being sent by the sendxdn function
	*s Up::Send, {s up} ;to fix the sendsup function from not actually sending s up properly
    *c::
        Send, {sc38 Down}
        KeyWait, c
        Send, {sc38 UP}
     Return
#If

^Esc::ExitApp

This is based on these two threads:
https://autohotkey.com/boards/viewtopic.php?f=6&t=26059
https://www.autohotkey.com/boards/viewtopic.php?f=76&t=66655&p=291059

How much work woud it be to ame the modifier there on buttios i plsy dn amac and reattly sturggil it hthe modifiers

I cant even bind my control key in keybinding within wow, but the control key works with other keybinds in game like cnt I for dundeons. i am at a loss. it use to work