-
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 and applications see each slot as a separate, real controller plugged into your PC — even though no physical hardware is attached to it. You decide what type of controller each slot pretends to be, which physical devices feed input into it, and how that input is mapped.
Think of slots as empty chairs at a table. Each chair can be filled by any of your physical controllers (or even by several controllers at once), and the game only sees the chairs — not who is sitting in them. You can have up to 16 slots at a time.
Every slot has its own independent settings:
- Controller type (Xbox 360, DualShock 4, DirectInput, Keyboard+Mouse, or MIDI)
- Button and axis mappings
- Dead zones and sensitivity curves
- Force feedback / rumble configuration
- Macros
You can add a new slot from two places:
- Dashboard — Click the Add Controller card that appears at the bottom of the controller list.
- Sidebar — Click the + button in the sidebar's controller section.
Either action opens the Add Controller popup, which shows an icon for each controller type. Click the icon for the type you want.

| Button | What It Creates |
|---|---|
| Xbox controller icon | An Xbox 360 virtual gamepad (requires ViGEmBus driver) |
| PlayStation controller icon | A DualShock 4 virtual gamepad (requires ViGEmBus driver) |
| Joystick icon | A DirectInput virtual joystick via vJoy (requires vJoy driver) |
| Keyboard icon | A Keyboard+Mouse output (no driver needed) |
| Musical note icon | A MIDI output device (requires Windows MIDI Services) |
A button in the popup will appear faded out and cannot be clicked in two situations:
- Driver not installed — The required driver for that type is not present on your system. Its tooltip will tell you which driver is missing. See Driver Management for installation instructions.
- Type at capacity — You have already created the maximum number of slots of that type. The tooltip will show the limit (for example, "DirectInput (max 16)").
The entire Add Controller card disappears from the Dashboard and sidebar when all 16 slots are in use or when every type has reached its limit.
Each slot outputs as one of five virtual controller types. You choose the type when you create the slot, and you can also switch an existing slot's type at any time by clicking the type icons on the Dashboard card.
| Driver | ViGEmBus |
| Inputs | 2 sticks, 2 triggers, 1 D-Pad, 11 buttons |
| Best for | Most modern PC games |
The default choice for the vast majority of games. Nearly every PC game released in the last 15 years supports Xbox controllers natively, so an Xbox 360 virtual controller will be recognized without any extra configuration in the game.
| Driver | ViGEmBus |
| Inputs | 2 sticks, 2 triggers, 1 D-Pad, 14 buttons |
| Best for | PlayStation ports, games that show PlayStation button prompts, or apps that need touchpad/gyro data |
Creates a Sony DualShock 4 virtual controller. Use this when a game explicitly expects a PlayStation controller — for example, PlayStation PC ports that display Circle/Cross/Triangle/Square prompts, or emulators that need DS4-specific features like the touchpad or light bar. Also useful when streaming motion/gyro data to emulators via the DSU server.
| Driver | vJoy |
| Inputs | Up to 8 axes, 128 buttons, 4 POV hats (fully customizable) |
| Best for | Flight simulators, racing wheels, HOTAS setups, custom control panels |
Creates a fully customizable virtual joystick. Unlike Xbox 360 and DualShock 4, you choose exactly how many axes, buttons, and POV hats the device has. A configuration bar appears on the slot's page where you adjust these values, and a schematic view shows the current layout.
DirectInput is the older Windows controller API, and many simulation titles (DCS World, Microsoft Flight Simulator, X-Plane, iRacing) work best with DirectInput devices. This type also supports DirectInput force feedback, so games can send rumble and resistance effects back through to your physical controller.


| Driver | None (always available) |
| Outputs | Keyboard key presses, mouse movement, mouse clicks, scroll wheel |
| Best for | Accessibility, games without controller support, desktop navigation |
Instead of pretending to be a gamepad, this type sends keyboard and mouse input directly to Windows. Map your controller's buttons to keyboard keys and your sticks or triggers to mouse movement or scroll. This is useful for:
- Playing older PC games that only support keyboard and mouse
- Accessibility setups where a gamepad is easier to use than a keyboard
- Navigating the Windows desktop or non-game applications with a controller
- Creating custom control schemes that mix controller and keyboard inputs
An interactive keyboard and mouse preview lights up in real time as you press buttons on your physical controller.

| Driver | Windows MIDI Services |
| Outputs | MIDI CC (Control Change) messages, MIDI Note On/Off messages |
| Best for | Music production, live performance, VJing, lighting control |
Creates a virtual MIDI output device that appears system-wide — no third-party loopback software like loopMIDI is needed. Stick and trigger axes are mapped to MIDI CC messages, and buttons are mapped to MIDI Note On/Off messages. A configuration bar lets you set the MIDI channel, CC count, note count, starting CC/note numbers, and velocity.
Use this to turn any gamepad into a MIDI controller for DAWs (Ableton Live, FL Studio, Reaper), VJ software, stage lighting, or any application that accepts MIDI input.

Note: MIDI slots cannot be switched to other controller types and vice versa. MIDI is a fundamentally different output format, so this type is isolated from the gamepad types.
If you are unsure which type to pick, use this quick guide:
| Your Situation | Recommended Type |
|---|---|
| Playing a modern PC game (Elden Ring, Forza, Halo, etc.) | Xbox 360 |
| Playing a PlayStation PC port that shows PS button prompts | DualShock 4 |
| Streaming gyro/motion data to Cemu, Yuzu, or another emulator | DualShock 4 (with DSU motion server enabled) |
| Playing a flight sim, racing sim, or space sim | DirectInput |
| Using a HOTAS, racing wheel, or custom button box | DirectInput |
| Playing a game that only supports keyboard and mouse | Keyboard+Mouse |
| Using a controller for accessibility or desktop navigation | Keyboard+Mouse |
| Controlling a DAW, VJ software, or stage lighting | MIDI |
| Not sure / just want it to work | Xbox 360 |
When in doubt, start with Xbox 360. It has the widest compatibility and you can always switch later.
PadForge supports up to 16 virtual controller slots in total across all types. You can use any mix of types you like, as long as you stay within both the overall 16-slot limit and each type's individual capacity.
| Type | Maximum Slots | Why This Limit Exists |
|---|---|---|
| Xbox 360 | 16 | ViGEmBus supports up to 16, though see the XInput note below |
| DualShock 4 | 16 | ViGEmBus supports up to 16 |
| DirectInput | 16 | vJoy driver supports up to 16 virtual joysticks |
| Keyboard+Mouse | 16 | No hard driver limit, capped at the overall slot count |
| MIDI | 16 | No hard driver limit, capped at the overall slot count |
In practice, most users create only 1 to 4 slots. The 16-slot maximum is available for advanced setups like multi-player arcade cabinets, complex sim rigs, or multi-output MIDI performance stations.
Windows has a built-in limitation called XInput that only allows games to see 4 Xbox-type controllers at a time. This is a Windows API restriction, not a PadForge limitation.
What this means for you:
- If you create 4 or fewer Xbox 360 slots, every game will see all of them — no issues.
- If you create more than 4 Xbox 360 slots, they all exist and function within PadForge, but a game using the XInput API will only detect the first 4. The remaining Xbox 360 slots are invisible to that game.
- DualShock 4, DirectInput, Keyboard+Mouse, and MIDI slots are not affected by this limit.
- Some games use alternative APIs (DirectInput, SDL, raw HID) that can see more controllers. Whether a game uses XInput or an alternative depends on the game.
Tip: If you need more than 4 gamepads for a local multiplayer game, consider using a mix of Xbox 360 and DualShock 4 slots. Many modern games detect both types. Alternatively, check whether the game supports DirectInput, which has no 4-controller limit.
If you use the DSU motion server (for streaming gyro and accelerometer data to emulators like Cemu or Yuzu), the DSU/Cemuhook protocol supports a maximum of 4 controller slots. Only the first 4 slots in your list will broadcast motion data to DSU clients. Slots 5 through 16 function normally for gamepad output but do not send motion data over DSU.
This is a limitation of the DSU/Cemuhook protocol itself, not PadForge.
Each slot has a power button — the circle icon on the left side of its Dashboard card. Click it to toggle the slot on or off.
| Status Color | Meaning |
|---|---|
| Green | The virtual controller is active and visible to games while the engine is running. |
| Red | The virtual controller is turned off. Games cannot see it. All settings are preserved — toggle it back on whenever you need it. |
| Yellow | The slot is enabled but something is preventing it from working. Common causes: no physical devices are assigned to the slot, the required driver is not installed, or the PadForge engine is stopped. |
Disabling a slot is useful when you want to temporarily remove a virtual controller without losing its configuration. For example, if a game gets confused by extra controllers, you can disable the slots you do not need instead of deleting them.
Click the X button in the upper-right corner of a slot card on the Dashboard, or the X button next to the slot name in the sidebar, to delete that virtual controller.
When you delete a slot:
- The virtual controller is removed from the system. Games will no longer see it.
- All settings for that slot (mappings, dead zones, macros, etc.) are permanently removed.
- Any physical devices that were assigned to that slot are automatically unassigned from it. If a device was also assigned to other slots, those other assignments are not affected.
- The remaining slots shift down to fill the gap. For example, if you delete Controller 2 out of four controllers, the former Controller 3 becomes Controller 2, and the former Controller 4 becomes Controller 3. Games will see the updated numbering.
Tip: If you want to temporarily hide a controller from games without losing its settings, use the power button to disable the slot instead of deleting it.
You can change the order of your controller slots by dragging and dropping them, either on the Dashboard or in the sidebar.
- Click and hold a controller card on the Dashboard (or a controller entry in the sidebar).
- Drag it to the position where you want it.
- Release to drop it into place.
The slot order determines the controller numbering that games see. Controller 1 is always whichever slot is first in the list, Controller 2 is the second, and so on.
This matters because:
- Many games assign player numbers based on controller order. If a game expects "Player 1" to be "Controller 1," you can drag your preferred slot to the first position.
- Some emulators bind specific controller slots to specific player ports.
When you create a new slot, PadForge automatically groups slots by type: all Xbox 360 slots first, then DualShock 4, then DirectInput, then Keyboard+Mouse, then MIDI. This grouping ensures that the XInput slot numbering stays predictable (since XInput only sees Xbox 360 controllers, having them grouped at the top avoids confusion about which Xbox slot is "Controller 1" in XInput-based games).
You can still drag slots to reorder within a group or override the grouping by manually dragging slots to different positions.
Click a controller card on the Dashboard or click the controller entry in the sidebar to open that slot's configuration page. From there, you can configure:
- 3D and 2D Visualization — Interactive controller model
- Button and Axis Mappings — Map physical inputs to virtual outputs
- Stick Dead Zones — Thumbstick dead zone and response curves
- Trigger Dead Zones — Trigger range and dead zone
- Force Feedback — Rumble passthrough and strength
- Macros — Button combo triggers and action sequences
A single physical controller can feed input into multiple slots at the same time. This is called multi-slot assignment.
- Split output: Use one physical controller to simultaneously drive an Xbox 360 slot (for the game) and a MIDI slot (for background music control).
- Mirrored output: Feed the same controller into two Xbox 360 slots so that two in-game characters move identically (useful for testing or specific game setups).
- Sim rigs: Route a single HOTAS to multiple DirectInput slots with different axis configurations for different in-game systems.
There are two ways to assign a physical device to slots:
-
Devices page — Slot toggle buttons: Go to the Devices page. Each device card shows a row of numbered toggle buttons, one for each created slot. Click a number to assign or unassign the device from that slot. A highlighted number means the device is currently assigned to that slot.
-
Sidebar — Drag and drop: Drag a device card from the Devices page and drop it onto a controller entry in the sidebar to assign it to that slot.
Each slot-device pairing has its own independent set of mappings, dead zones, and other settings. So if you assign the same controller to slot 1 and slot 3, you can configure completely different button mappings for each.