Skip to content

Settings

hifihedgehog edited this page Mar 19, 2026 · 31 revisions

Settings

The Settings page lets you configure PadForge's language, appearance, input engine behavior, window options, driver management, and settings file. Access it from the sidebar.

Settings


Language

PadForge supports multiple languages via a built-in language selector at the top of the Settings page.

  • Language dropdown -- Select from the available languages. The list is populated from PadForge's bundled translation files.
  • Live switching -- Language changes take effect immediately across the entire UI without restarting the application.
  • Persistent setting -- Your language choice is saved and restored on next launch.

Currently supported languages: English, German, Spanish, French, Italian, Japanese, Korean, Dutch, Brazilian Portuguese, and Simplified Chinese. Community contributions for new translations are welcome.


Appearance

Theme

Choose how PadForge looks:

Option Description
System Default Follows your Windows theme (light or dark). If you change your Windows theme while PadForge is running, it updates automatically.
Light Always uses the light theme, regardless of your Windows setting.
Dark Always uses the dark theme, regardless of your Windows setting.

The theme change takes effect immediately -- no restart needed.

Use 2D Controller View

When enabled, the controller visualization on the slot configuration page defaults to the flat 2D schematic view instead of the 3D model. This is useful if you prefer a simpler layout, if 3D rendering causes performance issues, or if you just find the flat view easier to read. You can also toggle between 2D and 3D on the fly using the view mode button on the Controller tab of any slot page.


Input Engine

These settings control how the input polling engine operates. The engine is the core loop that reads your physical controllers, applies mappings and dead zones, and writes the result to your virtual controllers.

Auto-Start Engine on Launch

When enabled, the input engine starts automatically when PadForge opens. When disabled, you must manually start the engine from the Dashboard by clicking the power button.

When to change this: Disable it if you want PadForge to open without immediately taking control of your virtual devices -- for example, when troubleshooting a configuration before going live.

Continue Polling When Window Loses Focus

When enabled, PadForge continues reading your controllers and sending output to virtual controllers even when the PadForge window is not in the foreground.

This should almost always be enabled. Without it, the moment you switch to a game (or any other window), PadForge stops processing and your virtual controllers go dead. The only reason to disable it is if you are using PadForge purely as a diagnostic tool and want it to pause when you are not looking at it.

Hide Devices from Games

This is the master switch for all input hiding in PadForge. It controls two separate hiding mechanisms at once:

  • HidHide cloaking -- uses the HidHide driver to make your physical controllers invisible to games at the OS level.
  • Input hook suppression -- suppresses mapped inputs so games do not see them through other input APIs.

When this master switch is on (the default), per-device hiding toggles on the Devices page are respected. When it is off, all hiding and input suppression stops immediately, regardless of what the per-device settings say. This gives you a single kill switch to instantly make all your physical controllers visible to games again -- useful for troubleshooting.

Polling Interval

Controls how often PadForge reads input from your devices, in milliseconds. The default is 1 ms (approximately 1000 Hz).

Value Approximate Frequency Best for
1 ms ~1000 Hz Competitive/fast-paced gaming -- lowest possible latency (default)
2 ms ~500 Hz Still very responsive, slightly lower CPU usage
4 ms ~250 Hz Good balance for most games
8 ms ~125 Hz Casual gaming, everyday use -- noticeable CPU savings
16 ms ~60 Hz Minimum CPU usage, matches a 60 fps display refresh

Trade-offs to understand:

  • Lower interval = more responsive but more CPU. At 1 ms, PadForge reads your controller roughly 1000 times per second. This is great for responsiveness -- you get the lowest possible input latency -- but the CPU thread running the polling loop is always active.
  • Higher interval = less responsive but much less CPU. At 8 ms or 16 ms, PadForge reads far less frequently. You save CPU time, but input latency increases. For casual or turn-based games, this is perfectly fine.
  • You probably do not need to change this. The default 1 ms works well for the vast majority of users. Only raise it if you notice high CPU usage from PadForge or are running on a low-power device (tablet, mini PC, etc.).

The polling interval slider accepts values from 1 to 16, in whole milliseconds.


Window

These three settings work together to control how PadForge behaves as a Windows application. Used in combination, they let you run PadForge as a silent background service.

Minimize to System Tray

When enabled, clicking the minimize button sends PadForge to the system tray (notification area near the clock) instead of the taskbar. Double-click the tray icon to restore the window.

When to use this: Enable it if you want PadForge out of the way but easily accessible. It frees up taskbar space while keeping PadForge one double-click away.

Start Minimized

When enabled, PadForge starts minimized -- it opens but immediately hides its window. Combined with "Minimize to system tray," PadForge launches silently with only a tray icon.

Start at Login

When enabled, PadForge launches automatically when you log into Windows. A shortcut is placed in your startup folder.

Tip: For a fully hands-off setup, enable all three: Auto-start engine (in the Input Engine section above), Start minimized, Minimize to system tray, and Start at login. PadForge will launch at login, start the engine, and run silently in the tray -- your virtual controllers will be ready the moment you open a game.


Driver Management

The Settings page includes a driver management card for each of the four optional drivers: HidHide, ViGEmBus, vJoy, and Windows MIDI Services. Each card shows the same set of elements:

  • Status indicator -- Green dot for installed, red dot for not installed.
  • Version -- The installed driver version, shown below the status when applicable.
  • Install / Uninstall buttons -- One-click install or removal.

What each driver does and when to install it

Driver What it does Install when... Safe to skip when...
HidHide Hides physical controllers from games so they only see PadForge's virtual ones. Prevents double input. Games are picking up both your physical and virtual controllers. You only use PadForge for MIDI output or your games do not have double-input issues.
ViGEmBus Creates virtual Xbox 360 and DualShock 4 controllers. You want to output as an Xbox or PlayStation controller (the most common use case). You only need DirectInput (vJoy), MIDI, or Keyboard+Mouse output.
vJoy Creates custom DirectInput virtual joysticks with configurable axes, buttons, and POV hats. You need to output to older DirectInput games, flight sims, or software expecting a specific joystick layout. Xbox or PlayStation output covers all your games.
Windows MIDI Services Enables MIDI virtual controller output. Requires Windows 11 24H2 or later. You want to send MIDI messages to music software, VJ tools, or creative applications. You have no interest in MIDI output, or you are on Windows 10 or an older Windows 11 build.

Uninstall safety guards

PadForge prevents you from uninstalling a driver while it is still in use. For example, the ViGEmBus "Uninstall" button is disabled if any virtual controller slot is currently set to Xbox 360 or DualShock 4. Delete or change those slots first, then uninstall.

HidHide Whitelisted Applications

When HidHide is installed, a Whitelisted Applications section appears below the HidHide driver card. The whitelist controls which programs are allowed to see hidden controllers even when HidHide cloaking is active.

PadForge automatically adds itself to the whitelist so it can always read your controllers. You may need to add other programs to the whitelist too:

  • Add... -- Opens a file browser to select an .exe file. That program will be able to see your physical controllers even while they are hidden from everything else.
  • Remove -- Removes the selected entry from the whitelist. Be careful not to remove PadForge itself, or it will lose access to your controllers.

Common programs to whitelist: Other controller configuration tools, emulators that need direct hardware access, or diagnostic software like joy.cpl.

Driver management cards

HidHide whitelist configuration

For detailed information about each driver, see Driver Management.


Settings File

PadForge stores your entire configuration -- controller slots, mappings, dead zones, profiles, macros, and all preferences -- in a single XML file called PadForge.xml.

File Location

The full path to this file is displayed at the top of the Settings File section. You can use this to back up your configuration, share it with others, or move it to a new machine.

Operations

Button What it does When to use it
Save Writes the current configuration to disk immediately. Use this if you want to force-save right now, or to confirm that your changes have been written.
Reload Discards any in-memory changes and re-reads the settings file from disk. Use this to undo changes you made since the last save, or to pick up changes made by an external tool.
Reset to Defaults Erases all customizations and restores factory defaults -- mappings, dead zones, profiles, macros, everything. Use this as a last resort when your configuration is in a broken state and you want a clean start. This cannot be undone.
Open Folder Opens the folder containing the settings file in Windows Explorer. Use this to quickly find the file for backup or sharing.

If there are unsaved changes, an orange "Unsaved changes" warning appears below the buttons.

Auto-Save Behavior

Most settings are saved automatically. When you toggle a checkbox, switch themes, change the polling interval, or adjust a dead zone, PadForge writes the change to disk within about a quarter second. You do not need to manually click "Save" after every change.

The Save button exists for two reasons:

  1. To let you manually force a save if you want peace of mind that everything is on disk.
  2. To let you batch-save after making many rapid changes.

MIDI Configuration

When a virtual controller slot is set to the MIDI output type, its configuration bar on the slot page provides the following settings:

Setting Description
Channel The MIDI channel to use (1--16).
Velocity The velocity value for Note On messages (0--127). Higher values mean louder/stronger notes.
CC Count Number of MIDI Control Change outputs (0--128). Determines how many axes are sent as CC messages.
Start CC Base CC number for axis outputs (0--127). Axis CC numbers count up from this value.
Note Count Number of MIDI note outputs (0--128). Determines how many buttons are sent as 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 for each slot -- there is no port selection dropdown. These settings are configured per slot, so different MIDI virtual controllers can target different channels and velocities.


Diagnostics

The bottom of the Settings page shows version information useful for troubleshooting or bug reports:

Field Description
App Version The PadForge application version
.NET Runtime The .NET runtime version PadForge is using
SDL Version The version of the SDL3 library handling device input

Include these versions when reporting a bug -- they help narrow down compatibility issues.


Related Pages

Clone this wiki locally