Skip to content

Command Line Reference

NightHammer1000 edited this page Sep 14, 2026 · 5 revisions

Command-Line Reference

WSGM.exe (installed to %LOCALAPPDATA%\WSGM\bin):

Flag Effect
(none) or --settings Settings window. The first run shows Quick Setup first.
--boot What the logon service starts at sign-in. Runs the Game Mode takeover, or a Desktop session when Start in is Desktop.
--shell Resident shell session. With Explorer running this is Desktop Mode; the Start Menu shortcut adds --activate.
--shell --desktop-resident Desktop session without the takeover, as the service launches it for a Desktop start.
--activate Open the overlay in the running session, or start one if none runs.
--overlay-test The sheet alone, without a shell session or device code (development).
--restore-shell Recovery: turn off the sign-in start, start Explorer, restore display scaling, exit. Needs no working GUI or config.
--setup [--profile=<mode>] Headless, run by the installer: per-user files, boot manifest, Xbox FSE guard. The profile seeds settings only when no config exists.
--uninstall-restore Restore machine settings (display scaling, UAC, lock-on-wake, Steam autostart entries) from their snapshots.
--unregister-shell Legacy: quiet restore of an old shell registration. A no-op on service installs.
--set-uac-silent / --restore-uac Elevated one-shot: silence or restore the UAC prompt for admins.
--disable-lock-on-wake / --restore-lock-on-wake Elevated one-shot: disable or restore the sign-in requirement on wake.
--disable-steam-autostart / --restore-steam-autostart Elevated one-shot: disable or put back the Run entries, Startup shortcuts and scheduled tasks Windows uses to start Steam. Rescans; takes no names from the command line.
--apply-steam-input-shim / --remove-steam-input-shim Elevated one-shot: place or park the Steam Input file in Steam's directory.
--install-device-plugin <path> / --remove-device-plugin Elevated: replace or clear the protected device package slot. Validates the package again before replacing.
--radio-probe Diagnostics for Wi-Fi and Bluetooth control from a shell-less session.
--verbose Debug-level logging for this run.

Flags that maintain the machine bypass the one-package startup gate, so recovery works even when two device packages are installed. --overlay-test does not.

WSGM.LogonService.exe (in Program Files\WSGM, driven by setup):

Flag Effect
--install Create or reconfigure the WSGM Logon Service and start it
--uninstall Stop and delete the service

WSGM.Launch.exe, the per-game launch wrapper. You normally never type it: the sheet's Steam page writes it into the game's Steam settings for you.

Flag Effect
--deelevate Run the game at medium integrity, for titles that refuse to start elevated
--input-lease Block Steam Input for the game's lifetime through the file Steam already loaded. Never injects.
--input-lease-inject Same block, delivered by injection. The only route in the shipped product that injects
-- Everything after this is the game's own command. Required.
--status Report the Steam Input gate's lease and handle counts
--rescan Ask Steam to rediscover controllers
--target-name <exe> Process the gate is injected into (default steam.exe)
--payload <dll> Override the path to the gate DLL

At least one of --deelevate, --input-lease, --input-lease-inject is required. De-elevation combines with either lease mode; the two lease modes are mutually exclusive. The wrapper shows a small console window while the game runs. That is deliberate: a windowless wrapper is treated by Steam as a game, gets Steam Input hooked into it, and dies before it starts anything.

Every controlled launch also strips SDL_GAMECONTROLLER_IGNORE_DEVICES from the game's environment. Steam sets it to hide direct controllers from SDL, which would also hide WSGM's virtual pad.

Per-game launch fixes

Open the sheet on a game's page, go to Steam > Per-game launch fixes, pick the fix. WSGM writes it into the running client, no restart. Remove launch fixes puts the original settings back.

With the Steam integration off, the same buttons copy the command and you paste it yourself. Normal Steam title, Launch Options:

"%LOCALAPPDATA%\WSGM\bin\WSGM.Launch.exe" --deelevate --input-lease -- %command%

Non-Steam shortcut. Steam ignores an exe-replacement launch option there, so the wrapper goes in Target and the program in Launch Arguments:

Target:           "%LOCALAPPDATA%\WSGM\bin\WSGM.Launch.exe"
Launch Arguments: --deelevate -- "C:\Games\YourGame\game.exe"

Logs

WSGM: %LOCALAPPDATA%\WSGM\wsgm.log (Settings > System > Open log location). Service: %ProgramData%\WSGM\wsgm-service.log. Launch wrapper: %LOCALAPPDATA%\WSGM\launch.log.

When you report a problem, paste the log rather than describing what happened. Almost everything WSGM does leaves a line in there, and a description usually leaves out the part that matters.

Clone this wiki locally