-
Notifications
You must be signed in to change notification settings - Fork 6
Settings
Language, theme, engine timing, window behavior, drivers, and the settings file on disk all live on one page in the sidebar.

A dropdown at the top of the page. Changes apply right away. No restart. The picked language saves and comes back on the next launch.
PadForge ships with 10 locales.
| Locale | |
|---|---|
| English | Italian |
| German | Japanese |
| Spanish | Korean |
| French | Dutch |
| Brazilian Portuguese | Simplified Chinese |
New translations land as community pull requests.
New in 3.2: Profile Shortcuts dropdowns keep their picked value when you switch language. Earlier builds cleared them when culture changed. See Profiles.
| Option | Behavior |
|---|---|
| System Default | Follows your Windows theme. Updates live. |
| Light | Always light. |
| Dark | Always dark. |
Changes apply right away.
Defaults the slot pages to the flat 2D schematic instead of the 3D model. Pick this if you want a simpler layout or if 3D rendering taxes the GPU. The per-slot view-mode button still flips an individual slot. See 3D and 2D Visualization.
Controls the polling loop that reads physical controllers, runs mappings and deadzones, and writes the virtual controllers.
Starts the engine when PadForge opens. Off means you start it by hand from the Dashboard power button.
Turn it off if you want PadForge to open without making virtual devices live.
Keeps the engine running when PadForge is not the foreground window.
Leave this on. Without it, the engine stops the moment you tab into a game and virtual controllers go dead. Turn it off only if you use PadForge as a passive diagnostic.
Master switch for input hiding. Two pieces sit under it.
- HidHide cloaking makes physical controllers invisible to games at the OS level.
- Input hook suppression stops mapped raw inputs reaching other input APIs.
On (default) means the per-device hide toggles on the Devices page do what they say. Off forces every controller visible no matter what the per-device toggles are set to. Use it as a panic button.
Off (default) clears every HidHide cloak when PadForge exits, so other sessions see your controllers normally.
On leaves the cloaks in place between launches. Pick this when another app (Steam launching after PadForge exits, for example) scans for pads while PadForge is closed and you want it to keep seeing the physical controllers as hidden. The next PadForge start re-asserts the cloaks with no visible flicker.
Flipping the master switch above to off still decloaks right away, no matter what this is set to.
How often the engine reads input, in milliseconds. Default: 1 ms (~1000 Hz).
| Value | Frequency | Fits |
|---|---|---|
| 1 ms | ~1000 Hz | Competitive play, lowest latency (default) |
| 2 ms | ~500 Hz | Responsive, a bit lower CPU |
| 4 ms | ~250 Hz | Balanced for most games |
| 8 ms | ~125 Hz | Casual play, real CPU savings |
| 16 ms | ~60 Hz | Lowest CPU, matches 60 fps |
Lower means quicker reads and more CPU. Higher means slower reads and less CPU. Most users should leave the default. Raise it when CPU is tight or the machine runs on battery.
Slider range: 1-16 ms.
Controls how PadForge acts as a Windows app. Combine the four switches below for a fully background install.
Sends PadForge to the notification area instead of the taskbar when you minimize. Double-click the tray icon to bring the window back.
Opens PadForge with the window hidden. Combine with Minimize to system tray for a launch with only a tray icon.
Adds a Startup-folder shortcut so PadForge runs when you log into Windows.
Hands-off setup: turn on Auto-start engine, Start minimized, Minimize to system tray, and Start at login. PadForge launches at login, starts the engine, and sits in the tray. Virtual controllers are live by the time you open a game.
Each optional driver (HIDMaestro, HidHide, Windows MIDI Services) gets a card.
- Status dot. Green = installed. Red = not installed.
- Version. Installed version when present.
- Install / Uninstall buttons. One click, one UAC prompt.
| Driver | What it does | Install when | Skip when |
|---|---|---|---|
| HIDMaestro | Single user-mode driver that creates Xbox, PlayStation, and Extended (DirectInput) virtual controllers. 225+ device profiles. Replaces ViGEmBus and vJoy from v2. | You have any Xbox, PlayStation, or Extended slot (most setups). | You only output MIDI or Keyboard+Mouse. |
| HidHide | Hides physical controllers from games so they only see the virtuals. Stops double input. | Games see both the physical and the virtual. | MIDI-only output, or no double-input problem. |
| Windows MIDI Services | Sends MIDI virtual-controller output. Needs Windows 11 24H2 (build 26100)+. | You drive a DAW, synth, or other MIDI app from a controller. | No MIDI use, or you run Windows 10 or older Windows 11. |
PadForge blocks uninstall while a slot still uses the driver. HIDMaestro Uninstall stays disabled as long as any Xbox, PlayStation, or Extended slot exists. Delete or retype the Controller Slots first.
When HidHide is installed, a Whitelisted Applications section drops in under its card. The whitelist picks which apps can still see hidden controllers.
PadForge whitelists itself. You may also want to whitelist:
- Other controller-config tools
- Emulators that read raw hardware
- Diagnostic apps like joy.cpl
| Button | Action |
|---|---|
| Add... | Browse for an .exe. That program sees physical controllers even when hidden. |
| Remove | Drops the selected entry. Leave PadForge itself in the list. |


For full driver detail see Driver Management.
Every slot, mapping, deadzone, Profiles, Macros, and preference lives in one XML file: PadForge.xml.
The full path shows at the top of this section. Use it to back up, copy between machines, or share for bug reports.
| Button | Action | When to use |
|---|---|---|
| Save | Writes the in-memory config to disk. | Force-save, or confirm changes hit disk. |
| Reload | Throws out in-memory changes, re-reads from disk. | Undo since last save, or pick up an external edit. |
| Reset to Defaults | Restores factory defaults. | Last resort for a broken config. No undo. |
| Open Folder | Opens the config folder in Explorer. | Backup or sharing. |
If unsaved changes exist, an orange "Unsaved changes" warning sits under the buttons.
Most settings auto-save inside ~250 ms. You do not need to click Save after every change.
The Save button is there for two cases.
- Force-save before a risky operation.
- Batch-save after a rapid run of changes.
When a Controller Slots outputs MIDI, its config bar shows:
| Setting | What it does |
|---|---|
| Channel | MIDI channel (1-16). |
| Velocity | Note On velocity (0-127). Higher = louder. |
| CC Count | Number of 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 | Number of Note outputs (0-128). How many buttons send Note messages. |
| Start Note | Base note (0-127, 60 = Middle C). Button notes count up from here. |
PadForge creates one virtual MIDI device per slot. No port to pick. Different slots can target different channels.
Version info at the bottom of the page, for Troubleshooting:
| Field | Description |
|---|---|
| App Version | PadForge version |
| .NET Runtime | .NET runtime in use |
| SDL Version | SDL3 library version |
Paste these into any issue you file.
- Installation: first-time setup
- Dashboard: engine status and overview
- Controller Slots: add and manage virtual controllers
- Devices: physical controllers and assignments
- Driver Management: driver install detail
- Profiles: per-app config and Profile Shortcuts
- Troubleshooting: more help
Last updated for PadForge 3.2.0.