-
Notifications
You must be signed in to change notification settings - Fork 6
Controller Slots
A slot is a virtual controller that PadForge creates on your system. Games see each slot as a real, separate controller. You choose the type, assign physical devices, and configure each slot independently.
PadForge supports up to 16 slots.
Each slot has its own:
- Controller type (Microsoft, PlayStation, Extended, Keyboard+Mouse, or MIDI)
- Button and Axis Mappings
- Stick Deadzones and Trigger Deadzones
- Force Feedback / rumble settings
- Macros
Add a slot from either location:
- Dashboard. Click the Add Controller card at the bottom of the controller list.
- Sidebar. Click the + button in the controller section.
Both open the Add Controller popup. Pick the type you want.

| Button | Creates |
|---|---|
| Xbox controller icon | Xbox 360 virtual gamepad (requires HIDMaestro) |
| PlayStation controller icon | DualShock 4 virtual gamepad (requires HIDMaestro) |
| Joystick icon | DirectInput virtual joystick (requires vJoy) |
| Keyboard icon | Keyboard+Mouse output (no driver needed) |
| Musical note icon | MIDI output device (requires Windows MIDI Services) |
Each type button uses the TypeSwitchButton style with a dark gray hover effect. A button appears faded (opacity 0.35) when:
- Driver not installed. The cursor changes to a "no" icon (Cursor.No) and the tooltip names the missing driver. See Driver Management.
- Type at capacity. The cursor changes to a "no" icon and the tooltip shows the limit.
The Add Controller card disappears when all 16 slots are in use or every type is at capacity.
You pick the type when creating a slot. You can also switch an existing slot's type by clicking the type icons on its Dashboard card.
| Driver | HIDMaestro |
| Inputs | 2 sticks, 2 triggers, 1 D-Pad, 11 buttons |
| Best for | Most modern PC games |
The default choice. Nearly every modern PC game supports Xbox controllers natively.
| Driver | HIDMaestro |
| Inputs | 2 sticks, 2 triggers, 1 D-Pad, 14 buttons |
| Best for | PlayStation ports, PS button prompts, touchpad/gyro apps |
Use this for PlayStation PC ports with Circle/Cross/Triangle/Square prompts, emulators needing touchpad or light bar, or streaming motion data via the DSU Motion Server.
| Driver | vJoy |
| Inputs | Up to 8 axes, 128 buttons, 4 POV hats (fully customizable) |
| Best for | Flight sims, racing wheels, HOTAS setups, custom panels |
A customizable virtual joystick. A configuration bar on the slot's page sets exactly how many axes, buttons, and POV hats the device exposes. A schematic view shows the current layout.
Many simulation titles (DCS World, MSFS, X-Plane, iRacing) work best with DirectInput devices. This type also supports DirectInput Force Feedback.

| Driver | None (always available) |
| Outputs | Key presses, mouse movement, mouse clicks, scroll wheel |
| Best for | Accessibility, games without controller support, desktop navigation |
Sends keyboard and mouse input to Windows instead of emulating a gamepad. Map buttons to keys, sticks to mouse movement, and triggers to scroll. Useful for:
- Older PC games without controller support
- Accessibility setups where a gamepad is easier than a keyboard
- Desktop or non-game navigation
- Mixed controller + keyboard schemes
An interactive keyboard and mouse preview lights up in real time as you press buttons.

| Driver | Windows MIDI Services |
| Outputs | MIDI CC messages, MIDI Note On/Off messages |
| Best for | Music production, live performance, VJing, lighting control |
Creates a system-wide virtual MIDI device with no third-party loopback software needed. Axes send CC messages; buttons send Note On/Off. A configuration bar sets channel, CC count, note count, starting CC/note numbers, and velocity.
Turn any gamepad into a MIDI controller for DAWs (Ableton Live, FL Studio, Reaper), VJ software, or lighting apps.

Note: MIDI slots cannot switch to other types, and vice versa. MIDI output is fundamentally different from gamepad output, so it stays isolated.
| Situation | Recommended Type |
|---|---|
| Modern PC game (Elden Ring, Forza, Halo, etc.) | Xbox 360 |
| PlayStation PC port with PS button prompts | DualShock 4 |
| Streaming gyro/motion to Cemu, Yuzu, or another emulator | DualShock 4 + DSU |
| Flight sim, racing sim, or space sim | DirectInput |
| HOTAS, racing wheel, or custom button box | DirectInput |
| Game with keyboard+mouse only | Keyboard+Mouse |
| Accessibility or desktop navigation | Keyboard+Mouse |
| DAW, VJ software, or stage lighting | MIDI |
| Not sure | Xbox 360 |
When in doubt, start with Xbox 360. It has the widest compatibility and you can switch later.
Up to 16 slots total across all types. Any mix is allowed within each type's individual cap.
| Type | Max Slots | Reason |
|---|---|---|
| Xbox 360 | 16 | HIDMaestro creates all 16. XInput games see only the first 4; SDL/DirectInput games see all 16. |
| DualShock 4 | 16 | HIDMaestro creates all 16. SDL/DirectInput games see all of them. |
| DirectInput | 16 | vJoy driver limit |
| Keyboard+Mouse | 16 | Capped at overall slot count |
| MIDI | 16 | Capped at overall slot count |
Most users need 1-4 slots. The 16-slot cap covers advanced setups like arcade cabinets, sim rigs, or multi-output MIDI stations.
The Windows XInput API only exposes 4 Xbox-type controllers. This is a Windows limitation.
- 4 or fewer Xbox 360 slots. Every game sees all of them.
- More than 4 Xbox 360 slots. All 16 exist and work. XInput games detect only the first 4; SDL/DirectInput/raw HID games see all 16.
- DualShock 4 slots are unaffected by XInput limits.
- DirectInput, Keyboard+Mouse, and MIDI slots are unaffected.
Tip: For more than 4 local-multiplayer gamepads, mix Microsoft and PlayStation slots, or use DirectInput (no 4-controller limit).
The DSU Motion Server supports a maximum of 4 slots. Only the first 4 broadcast motion data. Slots 5-16 work normally for gamepad output but skip DSU. This is a protocol limitation.
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. |
| Red | Off. Games cannot see it. Settings are preserved. |
| Yellow | Enabled but blocked (no devices assigned, driver missing, or engine stopped). |
Disabling a slot hides it from games without losing configuration.
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 (e.g., deleting slot 2 of four renumbers 3 and 4 to 2 and 3).
Tip: To temporarily hide a controller 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 to the desired position.
- Release.
Slot order determines controller numbering. Controller 1 is whichever slot is first. Games assign player numbers based on this order, and emulators bind slots to player ports.
New slots group by type: Xbox 360 first, then DualShock 4, DirectInput, Keyboard+Mouse, and MIDI. This keeps XInput numbering predictable.
You can override grouping by dragging slots manually.
Click a controller card on the Dashboard or its sidebar entry to open the slot's configuration page:
- 3D and 2D Visualization: Interactive controller model
- Button and Axis Mappings: Map physical inputs to virtual outputs
- Stick Deadzones: Thumbstick deadzone and response curves
- Trigger Deadzones: Trigger range and deadzone
- Force Feedback: Rumble passthrough and strength
- Macros: Button combo triggers and action sequences
A single physical controller can feed input into multiple slots at once.
- Split output. One controller drives an Xbox 360 slot (for the game) and a MIDI slot (for music) simultaneously.
- Mirrored output. Same controller into two Xbox 360 slots so two in-game characters move identically.
- Sim rigs. Route one HOTAS to multiple DirectInput slots with different axis configurations.
- 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 independent mappings, deadzones, and settings. The same controller in slot 1 and slot 3 can have completely different configurations.
- Dashboard: Virtual controller cards and engine status
- Devices: Assign physical controllers to slots
- Installation: First-time setup and driver installation
- Profiles: Save and switch slot configurations per game
- 3D and 2D Visualization: Interactive controller model
- Button and Axis Mappings: Map physical inputs to virtual outputs
- Stick Deadzones: Thumbstick deadzone and response curves
- Trigger Deadzones: Trigger range and deadzone
- Force Feedback: Rumble passthrough and strength
- Macros: Button combo triggers and action sequences
- Settings: Engine, appearance, and driver configuration
- Driver Management: Driver requirements per controller type