-
Notifications
You must be signed in to change notification settings - Fork 6
Settings
Configures language, appearance, engine behavior, window options, drivers, and the settings file. Access it from the sidebar.

A dropdown at the top of the page.
- Language dropdown. Changes apply immediately, no restart needed.
- Persistent. Saved and restored on next launch.
Supported: English, German, Spanish, French, Italian, Japanese, Korean, Dutch, Brazilian Portuguese, and Simplified Chinese. New translations are welcome as community contributions.
| Option | Behavior |
|---|---|
| System Default | Follows your Windows theme. Updates live. |
| Light | Always light. |
| Dark | Always dark. |
Changes take effect immediately.
Defaults to the flat 2D schematic instead of the 3D model on slot configuration pages. Useful if you prefer a simpler layout or if 3D rendering hurts performance. You can still toggle per-slot via the view mode button on the Controller tab. See 3D and 2D Visualization.
Controls the core polling loop that reads physical controllers, applies mappings and deadzones, and writes to virtual controllers.
Starts the engine automatically when PadForge opens. When disabled, start it manually from the Dashboard power button.
Disable if you want PadForge to open without activating virtual devices right away.
Keeps PadForge processing controller data even when the window is not in the foreground.
Leave this on. Without it, switching to a game stops all processing and virtual controllers go dead. Disable only if you use PadForge purely as a diagnostic tool.
Master switch for input hiding. 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 regardless of per-device settings. A kill switch to make all physical controllers visible again.
Controls how often PadForge reads input, in milliseconds. Default: 1 ms (~1000 Hz).
| Value | Approx. Frequency | Best for |
|---|---|---|
| 1 ms | ~1000 Hz | Competitive gaming, lowest latency (default) |
| 2 ms | ~500 Hz | Responsive, slightly lower CPU |
| 4 ms | ~250 Hz | Good balance for most games |
| 8 ms | ~125 Hz | Casual gaming, noticeable CPU savings |
| 16 ms | ~60 Hz | Minimum CPU, matches 60 fps refresh |
Trade-offs: Lower = more responsive, higher CPU. Higher = less responsive, much less CPU. Most users should leave the default. Raise only if CPU usage is a concern or you are on a low-power device.
Slider range: 1-16 ms.
Controls how PadForge behaves as a Windows application. Together these 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.
Opens PadForge with its window hidden. Combined with "Minimize to system tray," it launches silently with only a tray icon.
Launches PadForge when you log into Windows via a startup folder shortcut.
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 optional driver (HidHide, HIDMaestro, vJoy, Windows MIDI Services) has a card showing:
- Status indicator. Green = installed. Red = not installed.
- Version. Installed 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 see both physical and virtual controllers. | MIDI-only output or no double-input issues. |
| HIDMaestro | Creates virtual Microsoft and PlayStation controllers. | You want Xbox or PlayStation output (most common). | Only DirectInput, MIDI, or Keyboard+Mouse needed. |
| vJoy | Creates custom DirectInput virtual joysticks. | DirectInput output for older games, flight sims, or custom layouts. | Xbox/PlayStation output covers your games. |
| Windows MIDI Services | MIDI virtual controller output. Requires Windows 11 24H2+. | Sending MIDI to DAWs, synths, or creative apps. | No MIDI use, or on Windows 10 / older Windows 11. |
PadForge blocks uninstalling a driver while slots use it. For example, HIDMaestro "Uninstall" is disabled if any slot is Xbox 360 or DualShock 4. Delete or switch those Controller Slots first.
When HidHide is installed, a Whitelisted Applications section appears below its card. The whitelist controls which programs can still see hidden controllers.
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... | Browse for an .exe. That program will see physical controllers even while hidden. |
| Remove | Removes the selected entry. Do not remove PadForge itself. |


For detailed driver information, see Driver Management.
All configuration (slots, mappings, deadzones, Profiles, Macros, preferences) lives in a single XML file: 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 config to disk | Force-save or confirm changes are persisted |
| Reload | Discards in-memory changes, re-reads from disk | Undo changes since last save or pick up external edits |
| Reset to Defaults | Restores factory defaults | Last resort for broken config. Cannot be undone. |
| Open Folder | Opens the config folder in Explorer | Backup or sharing |
If unsaved changes exist, an orange "Unsaved changes" warning appears below the buttons.
Most settings auto-save within ~250 ms. Manual "Save" clicks are not needed after every change.
The Save button exists to:
- Force-save for peace of mind.
- Batch-save after rapid changes.
When a Controller Slots is set to MIDI output, its configuration bar provides:
| Setting | Description |
|---|---|
| Channel | MIDI channel (1-16) |
| Velocity | Note On velocity (0-127). Higher = louder. |
| CC Count | Control Change outputs (0-128). How many axes send CC. |
| Start CC | Base CC number (0-127). Axis CCs count up from here. |
| Note Count | Note outputs (0-128). How many buttons send Note messages. |
| Start Note | Base note number (0-127, 60 = Middle C). Button notes count up from here. |
PadForge creates a virtual MIDI device per slot. No port selection needed. Different slots can target different channels and velocities.
Version information at the bottom for Troubleshooting:
| Field | Description |
|---|---|
| App Version | PadForge version |
| .NET Runtime | .NET runtime in use |
| SDL Version | SDL3 library version |
Include these when reporting bugs.
- Installation: First-time setup guide
- Dashboard: Engine status and quick overview
- Controller Slots: Add and manage virtual controllers
- Devices: Physical controllers and assignments
- Driver Management: Driver install/uninstall details
- Profiles: Per-application settings management
- Troubleshooting: Common problems and solutions