-
Notifications
You must be signed in to change notification settings - Fork 6
Settings
The Settings page configures PadForge's language, appearance, input engine behavior, window options, driver management, and settings file. Access it from the sidebar.

PadForge supports multiple languages via a dropdown at the top of the Settings page.
- Language dropdown — Select from available languages. Changes apply immediately across the entire UI without a restart.
- Persistent — Your choice is saved and restored on next launch.
Supported languages: English, German, Spanish, French, Italian, Japanese, Korean, Dutch, Brazilian Portuguese, and Simplified Chinese. Community contributions for new translations are welcome.
| Option | Behavior |
|---|---|
| System Default | Follows your Windows theme. Updates automatically if you change it while PadForge is running. |
| Light | Always light, regardless of Windows setting. |
| Dark | Always dark, regardless of Windows setting. |
Theme changes take effect immediately.
When enabled, the controller visualization on the slot configuration page defaults to the flat 2D schematic instead of the 3D model. Useful if you prefer a simpler layout or if 3D rendering causes performance issues. You can also toggle between 2D and 3D on the fly using the view mode button on any slot's Controller tab.
These settings control the core polling loop that reads physical controllers, applies mappings and dead zones, and writes results to virtual controllers.
Starts the engine automatically when PadForge opens. When disabled, you must start it manually from the Dashboard power button.
Disable this if you want PadForge to open without immediately activating virtual devices — useful when troubleshooting configuration.
Keeps PadForge reading and writing controller data even when the window is not in the foreground.
This should almost always be enabled. Without it, switching to a game stops all processing and your virtual controllers go dead. Disable only if you use PadForge purely as a diagnostic tool and want it to pause when unfocused.
Master switch for all input hiding in PadForge. Controls two mechanisms:
- HidHide cloaking — Makes physical controllers invisible to games at the OS level.
- Input hook suppression — Suppresses mapped inputs through other input APIs.
When on (default), per-device hiding toggles on the Devices page are respected. When off, all hiding stops immediately regardless of per-device settings. Acts as a single kill switch to make all physical controllers visible again — useful for troubleshooting.
Controls how often PadForge reads input, in milliseconds. Default: 1 ms (~1000 Hz).
| Value | Approx. Frequency | Best for |
|---|---|---|
| 1 ms | ~1000 Hz | Competitive/fast-paced gaming — lowest latency (default) |
| 2 ms | ~500 Hz | Very responsive, slightly lower CPU usage |
| 4 ms | ~250 Hz | Good balance for most games |
| 8 ms | ~125 Hz | Casual gaming — noticeable CPU savings |
| 16 ms | ~60 Hz | Minimum CPU usage, matches 60 fps display refresh |
Trade-offs:
- Lower interval = more responsive, higher CPU usage. At 1 ms, the polling thread is always active.
- Higher interval = less responsive, much less CPU. Fine for casual or turn-based games.
- Most users do not need to change this. Raise it only if PadForge causes high CPU usage or you are on a low-power device (tablet, mini PC, etc.).
Slider range: 1–16 ms (whole milliseconds).
These three settings control how PadForge behaves as a Windows application. Together, they enable silent background operation.
Sends PadForge to the system tray (notification area) instead of the taskbar when minimized. Double-click the tray icon to restore.
PadForge opens but immediately hides its window. Combined with "Minimize to system tray," it launches silently with only a tray icon.
Launches PadForge automatically when you log into Windows. A shortcut is placed in your startup folder.
Tip: For a fully hands-off setup, enable all four: Auto-start engine, Start minimized, Minimize to system tray, and Start at login. PadForge launches at login, starts the engine, and runs silently in the tray — virtual controllers are ready the moment you open a game.
Each of the four optional drivers — HidHide, ViGEmBus, vJoy, and Windows MIDI Services — has a management card showing:
- Status indicator — Green dot = installed. Red dot = not installed.
- Version — Installed driver version (when applicable).
- Install / Uninstall buttons — One-click install or removal.
| Driver | Purpose | Install when... | Safe to skip when... |
|---|---|---|---|
| HidHide | Hides physical controllers from games. Prevents double input. | Games pick up both physical and virtual controllers. | You only use MIDI output or have no double-input issues. |
| ViGEmBus | Creates virtual Xbox 360 and DualShock 4 controllers. | You want Xbox or PlayStation output (most common). | You only need DirectInput, MIDI, or Keyboard+Mouse output. |
| vJoy | Creates custom DirectInput virtual joysticks with configurable axes, buttons, and POV hats. | You need DirectInput output for older games, flight sims, or custom layouts. | Xbox or PlayStation output covers all your games. |
| Windows MIDI Services | Enables MIDI virtual controller output. Requires Windows 11 24H2+. | You want to send MIDI messages to DAWs, synths, or creative apps. | You have no interest in MIDI, or you are on Windows 10 / older Windows 11. |
PadForge prevents uninstalling a driver while it is in use. For example, the ViGEmBus "Uninstall" button is disabled if any slot is set to Xbox 360 or DualShock 4. Delete or change those slots first, then uninstall.
When HidHide is installed, a Whitelisted Applications section appears below its driver card. The whitelist controls which programs can see hidden controllers even while cloaking is active.
PadForge adds itself automatically. You may also need to whitelist:
- Other controller configuration tools
- Emulators requiring direct hardware access
- Diagnostic software like joy.cpl
| Button | Action |
|---|---|
| Add... | Opens a file browser to select an .exe. That program will see physical controllers even while hidden. |
| Remove | Removes the selected entry. Do not remove PadForge itself, or it will lose access to your controllers. |


For detailed driver information, see Driver Management.
PadForge stores all configuration — controller slots, mappings, dead zones, profiles, macros, and preferences — in a single XML file called PadForge.xml.
The full path is displayed at the top of this section. Use it to back up, share, or migrate your configuration.
| Button | Action | When to use |
|---|---|---|
| Save | Writes current configuration to disk immediately | Force-save or confirm changes are written |
| Reload | Discards in-memory changes and re-reads from disk | Undo changes since last save, or pick up external edits |
| Reset to Defaults | Erases all customizations and restores factory defaults | Last resort for broken configuration. Cannot be undone. |
| Open Folder | Opens the settings file folder in Explorer | Quick access for backup or sharing |
If unsaved changes exist, an orange "Unsaved changes" warning appears below the buttons.
Most settings auto-save within about a quarter second — toggling a checkbox, switching themes, changing polling interval, or adjusting a dead zone. Manual "Save" clicks are not required after every change.
The Save button exists to:
- Force-save for peace of mind.
- Batch-save after many rapid changes.
When a slot is set to MIDI output, its configuration bar provides these settings:
| Setting | Description |
|---|---|
| Channel | MIDI channel (1–16) |
| Velocity | Velocity for Note On messages (0–127). Higher = louder/stronger. |
| CC Count | Number of Control Change outputs (0–128). Determines how many axes send CC messages. |
| Start CC | Base CC number for axis outputs (0–127). Axis CCs count up from this value. |
| Note Count | Number of note outputs (0–128). Determines how many buttons send Note messages. |
| Start Note | Base note number for button outputs (0–127, where 60 = Middle C). Button notes count up from this value. |
PadForge creates its own virtual MIDI device per slot — no port selection needed. Settings are per-slot, so different MIDI controllers can target different channels and velocities.
The bottom of the Settings page displays version information for troubleshooting:
| Field | Description |
|---|---|
| App Version | PadForge application version |
| .NET Runtime | .NET runtime version in use |
| SDL Version | SDL3 library version handling device input |
Include these versions when reporting bugs.
- Dashboard — Engine status and quick overview
- Driver Management — Detailed driver install/uninstall information
- Profiles — Per-application settings management
- Troubleshooting — Common problems and solutions