Skip to content

Advanced Configuration

SAM1430B edited this page Jul 19, 2026 · 2 revisions

This page covers the extended configuration of the Basic Configuration.

API Input

EnableOpenXinput

Enable OpenXinput to support more than 4 controllers for XInput version only.

Values :

0 = Disabled | 1 = Enabled

GamepadMaskHook

It's an experimental option. Allows both GtoMnK (gamepad to mouse/keyboard mapping) and the native gamepad backend to work at the same time on a per-button basis.

  • If a button is mapped to a key (e.g. A = 13): That button will send the mapped keyboard key instead of native gamepad input.

  • If a button is mapped to 0 (e.g. A = 0): That button will pass through to the native gamepad backend unchanged, allowing games that natively support gamepads to use it directly.

Values :

0 = Disabled | 1 = Enabled

[API]
InputMethod=2

EnableOpenXinput=1

GamepadMaskHook=0

General Settings

DontShowCursorWhenImageUpdated

This option belongs to DrawProtoFakeCursor. Some games (notably Unity engine games) need DontShowCursorWhenImageUpdated enabled or the cursors will show when they shouldn't.

Values :

0 = Disabled | 1 = Enabled

WaitForDllName

Wait for a DLL to be loaded to start the GtoMnK thread.

RecheckHWND

Check the game window for every 500ms. Useful when a game frequently changes its window.

Values :

0 = Disabled | 1 = Enabled

DisableOverlayOptions

Values :

0 = Disabled | 1 = Enabled

CreatedWindowIsOwned

Disabling this option sometimes fixes the fake cursor issue.

Values :

0 = Disabled | 1 = Enabled

Responsetime

The delay (in milliseconds) at the end of each polling loop (4 is recommended). For maximum button responsiveness set 1.

Values : 1 = 1000 Hz | 4 = 250 Hz | 6 = 166 Hz | 16 = 60 Hz.

[Settings]
Controllerid=0
DrawProtoFakeCursor=0
StartUpDelay=0

DontShowCursorWhenImageUpdated=0
WaitForDllName=SDL2.dll
RecheckHWND=1
DisableOverlayOptions=0
CreatedWindowIsOwned=1
Responsetime=4

Find Custom Window

GtoMnK automatically finds the main window, but some rare games use one other than the main window.

WindowName & ClassName

[FindWindow]
WindowName=Specify Window Name
ClassName=Specify Class Name

Thumbstick To Mouse

Horizontal_Sensitivity & Vertical_Sensitivity

Value Range : -1.0 to 1.0

Max_Threshold

An "outer deadzone". Allows the mouse to reach max speed before the stick is fully pushed.

Value Range : 0.0 to 0.15

Axial_Deadzone

An additional deadzone applied to register only perfect left, right, up, or down inputs.

Value Range : 0.0 to 1.0

Look_Accel_Multiplier

An "outer Sensitivity". Only at the very end of the stick's movement (effected by Max_Threshold).

Values : 1.0: No boost. Value > 1.0: Boosts speed when stick is near the edge.

Curve_Slope

Higher Value: (near 1.0): More Linear. The stick feels responsive immediately.

Lower Value: (near 0.0): More Curved. Allows the Curve_Exponent to dominate the feel.

Value Range : 0.0 to 1.0

Curve_Exponent

Higher Value: Slower center (more precision), but ramps up steeper at the end.

Lower Value: (near 1.0): Flatter, closer to linear speed throughout.

Value Range : 0.0 to 10.0

[StickToMouse]
ThumbstickToMouse=2
Sensitivity=4.00
Sensitivity_Multiplier=2.40
Radial_Deadzone=0.15

Horizontal_Sensitivity=0.00
Vertical_Sensitivity=-0.50 ; Vertical Sensitivity is lower than the base Sensitivity
Max_Threshold=0.045
Axial_Deadzone=0.0
Look_Accel_Multiplier=1.15
Curve_Slope=0.16
Curve_Exponent=1.95

Touchpad To Mouse

This section controls the feel of the touchpad when it's used to move the mouse.

This can be used with SDL versions only.

TouchpadToMouse

Values :

0 = Disabled | 1 = Enabled

Sensitivity

The base speed of the mouse movement. Higher values makes the mouse move faster.

Horizontal_Sensitivity & Vertical_Sensitivity

Value Range : -0.00 to 1.00

Deadzone

A micro-deadzone to ignore tiny hardware capacitive noise when a finger is resting. Prevents the mouse from vibrating or drifting when you hold still.

Value Range : 0.00 = Instant response (picks up noise) to 1.00 = Requires a full swipe to move.

Smoothing

Reduces mouse jitter by blending recent movements together. Used to prevent accidental mouse jitter when resting a finger on the pad.

Higher values make the mouse feel heavier and smoother, but introduce input delay.

Value Range : 0.00= No smoothing to 1.00= Maximum smoothing

[TouchToMouse]
TouchpadToMouse=1

Sensitivity=1500.00
Horizontal_Sensitivity=0.00
Vertical_Sensitivity=0.00

Deadzone=0.0015
Smoothing=0.65

Key Mapping

StickAsButtonAxialDeadzone

Defines how far you must push the thumbstick along a single axis.

Value Range : 0.0 to 1.0

InnerRingThreshold and OuterRingThreshold

Zones for RS_Inner and RS_Outer commands. They control how big the "light push"/"full push" zone is near the start/very edge of the stick's movement. When the stick is inside this zone, the Inner/Outer Ring button is active.

Higher Value: Bigger "light push"/"full push" zone.

Lower Value: Smaller "light push"/"full push" zone.

Value Range : 0.0 to 1.0

Gamepad buttons:

There are more options for setting the mapping keys, such as combine or press on release and hold, beyond the Basic Configuration :

Use plus + only to combine multiple keys.

Use caret ^ for key action when the button is released.

Use asterisk * for delayed key actions when the button is held down.

e.g X=^42+*30, also you can combine them like X=^(42+30)+*13.

There are also more buttons and mapped commands can be used such as:

Guide, Misc1, Paddle1, Paddle2, Paddle3, Paddle4, Touchpad_Button for SDL only.

LS_Inner, LS_Outer, RS_Inner, RS_Outer.

To add additional layers of button mapping, map a button in this section to Fn1 or Fn2, then use the [Fn1] and [Fn2] sections to map them to different actions.

[KeyMapping]
EnableMouseDoubleClick=0

StickAsButtonDeadzone=0.25
StickAsButtonAxialDeadzone=0.00
TriggerThreshold=40

InnerRingThreshold=0.10
OuterRingThreshold=0.10

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 layers of button
RB = Fn1
LB = Fn2

; 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

; The `RS_Outer` is mapped to 'Shift' key, which activates when the stick reaches the outer ring zone. For example 'Sprint' button will be assigned when the thumbstick reaches the `OuterRingThreshold`.
LS_Inner=0
LS_Outer=4

[Fn1]
; For example: when Fn1 is pressed use these instead of [KeyMapping]:

; Disable the mouse for Fn1 only:
ThumbstickToMouse=0

; Preset for WASD keys
LSU = 47
LSD = 43
LSL = 25
LSR = 28

; And use the right thumbstick as keys:
RSU = 14
RSD = 15
RSL = 16
RSR = 17

[Fn2]
; Can be set same as [Fn1]