-
Notifications
You must be signed in to change notification settings - Fork 6
Controller Slots
A slot is a virtual controller PadForge creates. The game sees it as a real, separate pad. Up to 16 slots in any mix of types.
Each slot has its own:
- Controller type (Xbox, PlayStation, Extended, Keyboard+Mouse, MIDI)
- Button and Axis Mappings (multi-source rows, shift layers, cross-device chords, custom formulas)
- Stick Deadzones and Trigger Deadzones
- Force Feedback / rumble settings, including audio bass rumble
- Impulse Triggers (Xbox One / Elite / Series sources, routed to DualSense as AT Vibration)
- Adaptive Triggers and Lighting (DualSense / DualSense Edge / DS4 sources)
- Gyro tuning, calibration, engage gates, and Motion Passthrough
- Touchpad outputs (stick / D-pad / mouse) and gesture engine
- Macros
- Shift Layers
The Pad page Copy / Paste / Copy From operations carry every per-device tuning on this list along with the mapping table. See Button and Axis Mappings for the matching rules.
Open the Add Controller popup from either spot:
- Dashboard. Click the Add Controller card at the bottom of the controller list.
- Sidebar. Click the + button in the controller section.
Pick the type you want.

| Button | Creates |
|---|---|
| Xbox icon | Xbox virtual controller (needs HIDMaestro) |
| PlayStation icon | PlayStation virtual controller (needs HIDMaestro) |
| Joystick icon | Extended DirectInput joystick (needs HIDMaestro) |
| Keyboard icon | Keyboard+Mouse output (no driver) |
| Musical note icon | MIDI output device (needs Windows MIDI Services) |
A type button shows faded (opacity 0.35) when:
- Driver missing. The cursor turns into a "no" icon. The tooltip names the missing driver. See Driver Management.
- Type at capacity. The cursor turns into a "no" icon. The tooltip shows the cap.
The Add Controller card disappears when all 16 slots are in use or every type is at capacity.
Pick the type when you create the slot. You can also switch an existing slot's type by clicking the type icons on its Dashboard card.
The default. 2 sticks, 2 triggers, 1 D-Pad, 11 buttons. HIDMaestro-backed. Almost every PC game with controller support reads Xbox-style input natively, so this is what to pick when you do not know what to pick.
HIDMaestro-backed. 2 sticks, 2 triggers, 1 D-Pad, 14 buttons. The slot ships as a DualShock 4. Switch to DualShock 3, DualSense, or DualSense Edge from the slot's profile picker. Pick this type for PlayStation PC ports with Circle / Cross / Triangle / Square prompts, emulators that need touchpad or lightbar, or motion streaming through the DSU Motion Server.
A customizable virtual joystick. Up to 8 axes, 128 buttons, 4 POV hats. The slot's configuration bar sets how many of each the device exposes and picks one of HIDMaestro's 225+ device profiles (HOTAS, wheels, third-party gamepads). The DirectInput device name Windows reports comes from the active profile. A schematic view shows the live HID layout.
Sim titles (DCS World, MSFS, X-Plane, iRacing) read DirectInput best. Extended slots also carry HID PID 1.0 force feedback (constant, ramp, periodic, condition effects) through the HIDMaestro PID descriptor.

No driver. Always available. Sends keyboard and mouse input to Windows instead of emulating a gamepad. Map buttons to keys, sticks to mouse movement, triggers to scroll. Good for older PC games without controller support, accessibility setups where a gamepad is easier to hold than a keyboard, and desktop or non-game use. An interactive keyboard-and-mouse preview lights up in real time as you press buttons.

Backed by Windows MIDI Services. Axes send Control Change (CC) messages. Buttons send Note On / Note Off. A configuration bar on the slot's page sets channel, CC count, note count, starting CC and note numbers, and velocity. Creates a system-wide virtual MIDI device with no third-party loopback software needed. Turn any gamepad into a MIDI controller for DAWs (Ableton Live, FL Studio, Reaper), VJ software, or stage lighting.

Note: MIDI slots cannot switch to other types, and vice versa. MIDI output is too different from gamepad output to share settings.
| Situation | Recommended type |
|---|---|
| Steam, Epic, or Microsoft Store game (Elden Ring, Forza, Halo, etc.) | Xbox |
| PlayStation PC port with PS button prompts | PlayStation |
| Streaming gyro/motion to Cemu, Yuzu, or another emulator | PlayStation + DSU |
| Flight sim, racing sim, or space sim | Extended |
| HOTAS, racing wheel, or custom button box | Extended |
| Game with keyboard+mouse only | Keyboard+Mouse |
| Accessibility or desktop use | Keyboard+Mouse |
| DAW, VJ software, or stage lighting | MIDI |
| Not sure | Xbox |
When in doubt, start with Xbox. It has the widest game support and you can switch later.
Up to 16 slots total across all types. Any mix is allowed within each type's own cap.
| Type | Max slots | Reason |
|---|---|---|
| Xbox | 16 | HIDMaestro creates all 16. XInput games see only the first 4. SDL/DirectInput games see all 16. |
| PlayStation | 16 | HIDMaestro creates all 16. SDL/DirectInput games see all of them. |
| Extended | 16 | HIDMaestro per-type cap, same as the other gamepad types. |
| Keyboard+Mouse | 16 | Capped at the overall slot count. |
| MIDI | 16 | Capped at the overall slot count. |
Most users need 1 to 4 slots. The 16-slot cap covers arcade cabinets, sim rigs, and multi-output MIDI stations.
The Windows XInput API only exposes 4 Xbox-type controllers. This is a Windows limit, not a PadForge one.
- 4 or fewer Xbox slots. Every game sees all of them.
- More than 4 Xbox slots. All 16 exist and work. XInput games detect only the first 4. SDL, DirectInput, and raw HID games see all 16.
- PlayStation slots are unaffected by the XInput cap.
- Extended, Keyboard+Mouse, and MIDI slots are unaffected.
Tip: For more than 4 local-multiplayer gamepads, mix Xbox and PlayStation slots, or use Extended (no 4-controller cap).
The DSU/Cemuhook motion protocol supports a maximum of 4 slots. Only the first 4 broadcast motion data. Slots 5 to 16 work normally for gamepad output but skip DSU. This is a protocol limit.
Each slot has a power button (circle icon on the left of its Dashboard card). Click to toggle on or off.
| Color | Meaning |
|---|---|
| Green | Active and visible to games. Stays green during the HM-inactivity grace period (no inputs for HmInactivityDestroyTimeoutSeconds, default 60s, settable via Settings, 0 disables the timeout). |
| Red | Off. Games cannot see it. Settings are kept. |
| Yellow | Enabled but blocked. No devices assigned, driver missing, engine stopped, or the inactivity timeout fired and the virtual controller has been torn down. The slot config itself is kept. Plugging a device back in rebuilds the virtual controller. |
Disabling a slot hides it from games without losing config.
Click the X on a slot's Dashboard card or next to its name in the sidebar.
- The virtual controller is removed from the system.
- All settings (mappings, deadzones, macros) are permanently deleted.
- Physical devices are unassigned from this slot only.
- Remaining slots shift down. Deleting slot 2 of four renumbers slots 3 and 4 to 2 and 3.
Tip: To hide a controller temporarily without losing settings, disable the slot instead.
Drag and drop controller cards on the Dashboard or sidebar entries to change slot order.
- Click and hold a controller card or sidebar entry.
- Drag it to the spot you want.
- Release.
Slot order sets the controller number. Controller 1 is whichever slot is first. Games assign player numbers based on this order. Emulators bind slots to player ports.
Within a type group (Xbox / PlayStation / Extended), each visual position keeps a stable kernel-side controller. Reordering repoints the data identity (mappings, profile, devices) at that position. It does not move the kernel slot.
-
Same HIDMaestro profile on both moved slots. Pure pointer swap. No destroy, no
Initializing…flicker, no game disconnection. Three slots all usingxbox-360-wired. Swap any two and the kernel doesn't notice. -
Different HIDMaestro profiles. Only the positions whose profile changed get rebuilt at their new visual location. Other slots in the same reorder, including same-profile slots that moved alongside, stay zero-flicker. Two slots, one
xbox-360-wiredand onexbox-series-xs-bt. Swap them and each rebuilds with the right profile at its new position. - Disabled or awaiting-devices slots. Invisible to the kernel. Moving them around touches no live controller.
Visual position is the kernel-slot anchor. Pad index is the data identity. Reorders move the data identity. The kernel slot stays put unless the profile at that position has to change.
New slots group by type. Xbox first, then PlayStation, Extended, Keyboard+Mouse, MIDI. This keeps XInput numbering predictable.
You can override the grouping by dragging slots by hand.
Click a controller card on the Dashboard or its sidebar entry. The slot's config page opens with a row of tabs. Every slot type gets these:
- 3D and 2D Visualization: live interactive controller view.
- Button and Axis Mappings: maps physical inputs to virtual outputs, with shift layers.
- Macros: combo triggers and action sequences.
- Stick Deadzones: thumbstick deadzones and response curves.
- Trigger Deadzones: trigger range and curve.
- Force Feedback: rumble strength, audio bass rumble, constant force.
- Gyro: motion-sensor calibration, sensitivity, and engage gates.
PlayStation slots also get Adaptive Triggers and Lighting. Xbox slots and PlayStation slots both get Impulse Triggers for trigger-motor effects.
One physical controller can feed multiple slots at once.
- Split output. One controller drives an Xbox slot (for the game) and a MIDI slot (for music) at the same time.
- Mirrored output. Same controller into two Xbox slots so two in-game characters move identically.
- Sim rigs. Route one HOTAS to multiple Extended slots with different axis configs.
- Devices page. Each device card shows numbered slot toggles. Click a number to assign or unassign.
- Sidebar. Drag a device onto a sidebar controller entry.
Each slot-device pairing has its own mappings, deadzones, and settings. The same controller in slot 1 and slot 3 can have completely different configs.
- Dashboard: virtual controller cards and engine status.
- Devices: assign physical controllers to slots.
- Installation: first-time setup and driver install.
- Profiles: save and switch slot configs per game.
- Button and Axis Mappings: map physical inputs to virtual outputs, with shift layers.
- Shift Layers: per-slot overlay mapping tables.
- Macros: button combo triggers, axis triggers, and Custom Expression triggers.
- Stick Deadzones and Trigger Deadzones: stick and trigger tuning.
- Force Feedback and Impulse Triggers: body-rumble and trigger-motor effects.
- Adaptive Triggers and Lighting: DualSense-specific effects.
- Gyro: motion-sensor mapping.
- Driver Management: driver requirements per controller type.