Repository navigation
Basic Configuration
This section controls which API the DLL will hook into.
Windows games handle mouse/keyboard input either through the Windows Messages system or DirectInput (for older games). GtoMnK targets both: PostMessage for Windows Messages games, and a RawInput sink hook for DirectInput games, since DirectInput reads from RawInput on modern Windows. Hybrid mode sends both simultaneously.
-
PostMessage (Compatible with most modern games using Windows Messages)
-
RawInput (Compatible with older games using DirectInput, e.g., Battlefield 2, Far Cry 1)
-
Hybrid (Uses both PostMessage and RawInput simultaneously - Recommended Default)
Values :
0 = PostMessage | 1 = RawInput | 2 = Hybrid
[API]
InputMethod=2For more options check Advanced Configuration
The gamepad index you want to use (0 use the first, 1 use the second, etc.).
Enable ProtoInput fake cursor drawing method. Use this for games that don't have an in-game cursor.
Values :
0 = Disabled | 1 = Enabled | 2 = Draw Fake Cursor Fix
The delay (in seconds) before the DLL starts processing.
[Settings]
Controllerid=0
DrawProtoFakeCursor=0
StartUpDelay=0For more options check Advanced Configuration
It is recommended to leave these enabled unless you encounter a specific problem. Most of these hooks are imported from ProtoInput (Thanks to the original author)
The GetCursorPos is one way of obtaining the cursor position, so this hook redirects it to the "fake" cursor position. Should always be enabled.
Values : 0 = Disabled | 1 = Enabled
SetCursorPos sets the cursor position. This hook causes it to set the "fake" cursor instead. This is important in some games that will set the mouse cursor to the centre of the screen each frame, then calculate the difference in movement each frame. This hook also prevents moving the "real" cursor, which can be problematic. Should always be enabled.
Values : 0 = Disabled | 1 = Enabled
Prevents the game from setting a bounding region about the mouse cursor. Some games will repeatedly clip the cursor when they receive the focus, so this should almost always be enabled.
Values : 0 = Disabled | 1 = Enabled
Hooks GetKeyState to return the "fake" keyboard state. You should almost always have this enabled even if it appears to have no effect.
Values : 0 = Disabled | 1 = Enabled
Similar to Get Key State. Async also tells the caller whether the key was pressed since the last call, so this can resolve issues where keys are pressed or release when they shouldn't. Should almost always be enabled.
Values : 0 = Disabled | 1 = Enabled
Basically the same as Get Key State, except it returns the state of the entire keyboard. Should almost always be enabled.
Values : 0 = Disabled | 1 = Enabled
[Hooks]
GetCursorposHook=1
SetCursorposHook=1
ClipCursorHook=1
GetKeystateHook=1
GetAsyncKeystateHook=1
GetKeyboardstateHook=1This section allows you to filter out specific Windows messages. These filters are imported from ProtoInput (Thanks to the original author)
Filters the WM_INPUT messages (which send raw input data) to only allow the forwarded messages from the Register Raw Input hook. This will allow only input from the selected device(s). Also modifies the message to tell the game that input was received while the game was in the foreground.
Values : 0 = Disabled | 1 = Enabled
One method of getting the mouse position/state is through the WM_MOUSEMOVE message, so this modifies the data to return the "fake" mouse state. This filter is not recommended as it can be very CPU intensive, however it is required for input to work in some games. Test with it enabled and disabled to check if you require it.
Values : 0 = Disabled | 1 = Enabled
WM_MOUSEACTIVATE, WM_ACTIVATE and WM_ACTIVATEAPP all tell a window when it's activated or deactivated. These filters modify the messages to make the window think it's in the foreground and activated. Should always be enabled.
Values : 0 = Disabled | 1 = Enabled
Filters the WM_MOUSEWHEEL messages to only pass "fake" input. This fixes the issue of the foreground window receiving two scrolls for each scroll. Should always be enabled.
Values : 0 = Disabled | 1 = Enabled
Filters the mouse buttons messages to only pass "fake" input. This prevents any interaction from the "real" mouse cursor with our input.
Values : 0 = Disabled | 1 = Enabled
Same as the Mouse Buttons filter, for keyboard buttons.
Values : 0 = Disabled | 1 = Enabled
[MessageFilter]
RawInputFilter=0
MouseMoveFilter=0
MouseActivateFilter=1
WindowActivateFilter=1
WindowActivateAppFilter=1
MouseWheelFilter=1
MouseButtonFilter=0
KeyboardButtonFilter=0This section controls which thumbstick is used for the fake mouse and adjust the mouse movement feel.
Controls which thumbstick is used for cursor movement.
Values :
0 = Disabled | 1 = Left thumbstick moves fake mouse | 2 = Right thumbstick moves fake mouse
The base speed of the fake mouse. Higher values make the cursor move faster.
NOTE: It's recommended to set the sensitivity to the lowest in the game to get smoother mouse movement.
Value Range : 0.01 to 30.00
Further scales the base sensitivity.
Value Range : 0.01 to 30.00
The size of the "no-move" zone in the center of the thumbstick.
Value Range : 0.0 to 1.0
[StickToMouse]
ThumbstickToMouse=2
Sensitivity=2.60
Sensitivity_Multiplier=2.40
Radial_Deadzone=0.10For more options check Advanced Configuration
This section is where you map your gamepad buttons to specific mouse or keyboard actions.
Buttons can be bound to keys based on the key code table found in GtoMnK_Keys.txt.
Instead of that and easier way to bound the keys using GtoMnK Configuration.
Defines how far you must push the thumbstick to register as a button press.
Value Range : 0.1 to 1.0
Defines how far you must pull the triggers for it to register as a press.
Value Range : 0 to 255
Any action mapped to Mouse buttons will automatically gain double-click capability (mostly used in RTS games).
Values : 0 = Disabled | 1 = Enabled
A, B, X, Y, D_UP, D_DOWN, D_LEFT, D_RIGHT, RB, LB, RT, LT, RSB, LSB, LSU, LSD, LSL, LSR, RSU, RSL, RSR, Start, Back. For more buttons check Advanced Configuration
[KeyMapping]
StickAsButtonDeadzone=0.25
TriggerThreshold=40
EnableMouseDoubleClick=0
A = 13
B = 0
X = 42
Y = 0
; Preset for Arrow Keys
D_UP = 14
D_DOWN = 15
D_LEFT = 16
D_RIGHT = 17
; Preset for mouse buttons
RT = -1
LT = -2
; Preset for WASD keys
LSU = 47
LSD = 43
LSL = 25
LSR = 28
; Preset for Escape and TAB keys
Start = 1
Back = 3