-
Notifications
You must be signed in to change notification settings - Fork 6
Button and Axis Mappings
The Mappings tab defines which physical input controls which virtual output. Every button, axis, trigger, and D-Pad direction can be mapped individually.

The grid shows one row per virtual output with these columns:
| Column | Description |
|---|---|
| Output | The virtual controller output this row controls (e.g., "A", "Left Stick X", "D-Pad Up"). This is what the game sees. |
| Source | Dropdown listing all physical inputs from the selected device. Pick manually or use Record to auto-detect. |
| Value | Live value of this mapping, updated in real time for verification. |
| Record | Enter recording mode — press a button or move an axis on your controller and PadForge fills in Source automatically. |
| Clear | Removes the mapping, leaving the output unmapped. |
| Options | "Inv" (Invert) and "Half" (Half-axis) checkboxes for axis mappings. See Modifiers. |
The Source column lists every physical input available on the selected device. This is the manual alternative to recording.
- Recognized gamepads (Xbox, DualSense, DualShock 4, Switch Pro, etc.) — Friendly names: "A", "B", "Left Stick X", "Right Trigger", etc.
- Raw/unrecognized devices (generic joysticks, racing wheels, flight sticks, Force Raw mode) — Numbered names: "Button 0", "Axis 0", "POV 0 Up", etc.
Selecting an input assigns it immediately — same result as recording. The blank entry at the top clears the mapping.
| Use the dropdown when... | Use recording when... |
|---|---|
| You know the exact input you want (e.g., "Axis 3") | Setting up a new controller and want the fastest workflow |
| Recording detects the wrong input | You want to press each button in turn |
| The input is hard to isolate physically (e.g., a specific D-Pad direction) |
Recording is the fastest way to assign a physical input to a virtual output:
- Click Record on the target row.
- The button changes to "Recording..." and the row pulses blue.
- Press the button or move the axis on your physical controller.
- PadForge detects the input, fills in Source, and stops recording automatically.
- Buttons — First button that transitions from released to pressed.
- Axes — Stick and trigger movements past a detection threshold from rest.
- POV / D-Pad — All four cardinal directions and diagonals.
- Mouse axes — Mouse X/Y movement detected instantly. No sustained hold required.
- Move only the intended input. Wiggling a stick while pressing a button may capture the stick instead.
- Push sticks firmly — a gentle nudge may not cross the detection threshold.
- Pull triggers far enough to distinguish from drift.
Map All walks through every row sequentially — the fastest way to set up a controller from scratch.
- Click Map All (available on both the Controller tab and Mappings tab toolbar).
- PadForge highlights the first unmapped row and begins recording.
- A blue prompt shows which output it expects (e.g., "Press A").
- Press the corresponding button or move the corresponding axis.
- PadForge captures the input and advances to the next row automatically.
- Repeat until done, or click Stop (or press Escape) to stop early.
Rows with existing sources are included. Pressing an input overwrites the existing mapping; skipping preserves it.
When PadForge detects a recognized gamepad (Xbox, DualSense, DualShock 4, Switch Pro, etc.), it creates a default mapping matching the standard layout:
- Axes — Left Stick X/Y, Left Trigger, Right Stick X/Y, Right Trigger
- Buttons — A, B, X, Y, LB, RB, Back, Start, LS, RS, Guide
Auto-mapping applies when a device is first assigned to a slot. You can modify or override any auto-mapped input afterward.
Unrecognized devices (generic joysticks, flight sticks, raw-mode devices) do not receive auto-mapping. Use recording, Map All, or the Source dropdown to set them up.
Two checkboxes appear in the Options column for each axis mapping row.
Flips the axis direction. Pushing a stick up produces a "down" value, and vice versa.
When to use: The game or controller reports an axis opposite to what the virtual output expects (e.g., pushing left makes the game go right).
Treats the input as half-range (0 to max) instead of full-range (-max to +max).
When to use:
- Mapping a trigger (0–100%) to a full stick axis (-100% to +100%).
- Mapping a stick axis to a trigger where only positive deflection should register.
These modifiers add prefixes to the mapping descriptor:
| Prefix | Meaning | Example |
|---|---|---|
| I | Inverted | "IAxis 1" |
| H | Half-axis | "HAxis 0" |
| IH | Both | "IHAxis 2" |
You do not normally need to see descriptors — PadForge shows friendly names in the UI. But if a raw descriptor like "IHAxis 2" appears in the Source column for an unrecognized device, the prefixes indicate which modifiers are active.
For unrecognized devices or Force Raw mode, the Source column shows raw descriptors:
| Descriptor | Meaning |
|---|---|
| Button 0, Button 1, ... | Physical button by zero-based index |
| Axis 0, Axis 1, ... | Physical axis by zero-based index. Typical order: LX(0), LY(1), LT(2), RX(3), RY(4), RT(5) — varies by device. |
| POV 0 Up, POV 0 Right, ... | Direction on POV hat 0 (most controllers have only one) |
| Slider 0, Slider 1 | Slider axes (some flight sticks and throttles) |
| Mouse X, Mouse Y | Mouse movement axes |
The "I" and "H" prefixes can appear before any of these.
The toolbar above the mapping grid provides bulk operations:
| Button | Action |
|---|---|
| Clear All | Removes all mappings for the current device on this slot |
| Copy | Copies the current mapping configuration (including source controller type metadata) to the clipboard |
| Paste | Applies a copied configuration. Translates automatically if source and target types differ. |
| Copy From | Opens a dialog to copy mappings from another slot. Translates automatically if types differ. |
| Map All | Starts the Map All wizard |
Copy From and Paste intelligently translate mappings between different controller types:
| Translation | Example |
|---|---|
| Xbox to DualShock | A becomes Cross, B becomes Circle, X becomes Square, Y becomes Triangle, LB becomes L1, RB becomes R1, etc. |
| DualShock to Xbox | Cross becomes A, Circle becomes B, Square becomes X, Triangle becomes Y, etc. |
| To/from DirectInput | Translated using the standardized gamepad mapping |
Both buttons and axes are translated. Pasting to the same controller type applies mappings directly with no changes.
The Value column shows each mapping's live calibrated value, accounting for dead zone, center offset, and max range settings. Verify mappings work correctly with your configuration before entering a game.
Mappings are organized into categories in the grid:
- Buttons — Face buttons (A/B/X/Y or Cross/Circle/Square/Triangle), shoulder buttons (LB/RB or L1/R1), stick clicks (LS/RS or L3/R3), system buttons (Back/Start/Guide or Share/Options/PS)
- Left Stick / Right Stick — X and Y axes per thumbstick
- Triggers — Left and right trigger axes
- D-Pad — Up, Down, Left, Right
When a slot uses DirectInput with the Custom preset, the mapping grid adjusts dynamically to match your configured layout:
| Category | Rows shown | Axis pool usage |
|---|---|---|
| Sticks | X and Y per stick, based on ThumbstickCount (0–4) | 2 axes per stick |
| Triggers | One per trigger, based on TriggerCount (0–4) | 1 axis per trigger |
| Buttons | One per button, based on ButtonCount (0–128) | N/A |
| POVs | Four directions per POV hat, based on PovCount (0–4) | N/A |
Sticks and triggers share a pool of 8 axes total. Example: 2 sticks (4 axes) + 2 triggers (2 axes) = 6 of 8 used.
Changing the DirectInput configuration rebuilds the mapping grid automatically.
- Start with Map All. Assign everything in one pass, then fine-tune individual rows.
- Use the Source dropdown for tricky inputs. If recording picks up the wrong input, select the exact one manually.
- Check the Value column. Move your inputs and watch for correct direction and range. Toggle Inv if an axis moves backward.
- Half-axis is your friend for trigger-to-stick mappings. If a trigger mapped to a stick axis only reaches 50%, enable Half. Conversely, Half clamps stick-to-trigger mappings to the positive range.
- Copy From saves time with multiple controllers. Set up the first, then Copy From on the second.
- Force Raw mode for unusual devices. If inputs are detected incorrectly (wrong button numbers, missing axes), try Force Raw mode on the Devices page to bypass gamepad remapping.
- 3D and 2D Visualization — Click-to-map from the controller model
- Stick Dead Zones — Adjust response after mapping stick axes
- Trigger Dead Zones — Adjust range after mapping triggers
- Devices — Assign physical devices to slots before mapping