Adds an overlay to the OpenVR dashboard that allows access to advanced settings and useful utilities.

Do all this without leaving VR:
Get it on Steam at OVR Advanced Settings
Note: Please Un-install Other Versions Before Installing Via Steam.
Download the newest installer from the release section and run it.
If you have an older standalone version installed, the installer will automatically uninstall the old version and install the new version.
Download the newest standalone archive from the release section and unpack the archive.
To install for the first time simply start AdvancedSettings.exe once while SteamVR is running. It will register with SteamVR and automatically starts whenever SteamVR starts (Can be disabled in the settings).
To upgrade an existing installation first stop SteamVR and delete the old application folder (or override it). Then start SteamVR and run AdvancedSettings.exe once.
Get it on Steam at OVR Advanced Settings
Note: Please Un-install Other Versions Before Installing Via Steam.
The AppImage can be found in the release section and should run on most common Linux distributions.
Simply double click the AppImage once downloaded to run it. Depending on your distribution you may need to make it executable with chmod +x OpenVR_Advanced_Settings*.
If the AppImage doesn't work for whatever reason, please create an issue here describing the problem and try compiling from source.
OpenVR Advanced Settings is on the Arch User Repository as ovras.
Manjaro users can enable the AUR and install this package using pamac build ovras.
Detailed instructions are available here.
For information on how to properly set-up bindings see: SteamVR Input System Guide
The following actions currently exist:
Actions associated with media player.
| Action | Type | Explanation |
|---|---|---|
| Play Next Track | Binary/Button | The same as using the media keys. Tells a media player to play the next song. |
| Play Previous Track | Binary/Button | The same as using the media keys. Tells a media player to play the previous song. |
| Pause/Play Track | Binary/Button | The same as using the media keys. Tells the media player to press play/pause. |
| Stop Track | Binary/Button | The same as using the media keys. Tells the media player to stop playback. |
Actions associated with motion tab, and motion.
Override actions will take priority over non-override actions during simultaneous activation. Example: binding space turn to single click and space drag (override) to double click on the same physical button.
| Action | Type | Explanation |
|---|---|---|
| Left Hand Space Turn | Binary/Button | Rotates PlaySpace based on left controller rotation while held. |
| Right Hand Space Turn | Binary/Button | Rotates PlaySpace based on right controller rotation while held. |
| Left Hand Space Drag | Binary/Button | Moves PlaySpace based on left controller position while held. |
| Right Hand Space Drag | Binary/Button | Moves PlaySpace based on right controller position while held. |
| (Optional Override) Left Hand Space Turn | Binary/Button | Override version: will activate instead of non-override during simultaneous activation. |
| (Optional Override) Right Hand Space Turn | Binary/Button | Override version: will activate instead of non-override during simultaneous activation. |
| (Optional Override) Left Hand Space Drag | Binary/Button | Override version: will activate instead of non-override during simultaneous activation. |
| (Optional Override) Right Hand Space Drag | Binary/Button | Override version: will activate instead of non-override during simultaneous activation. |
| Swap Active Space Drag to Left Hand (Override) | Binary/Button | Activates space drag on left controller only if right controller is currently active in space drag. (Useful for climbing motions) |
| Swap Active Space Drag to Right Hand (Override) | Binary/Button | Activates space drag on right controller only if left controller is currently active in space drag. (Useful for climbing motions) |
| Gravity Toggle | Binary/Button | Toggles Gravity state when pressed. |
| Gravity Reverse | Binary/Button | Temporarily Reverses Gravity while held. |
| Reset Offsets | Binary/Button | Resets your offset and rotation to 0. |
| Apply Offsets | Binary/Button | Recalibrates center/rotation from offsets |
| Height Toggle | Binary/Button | Shifts the gravity floor level by offset configured in motion tab. If gravity is inactive: also shifts the user's current y-axis position by offset configured in motion tab. |
| Snap-Turn Left | Binary/Button | Rotates a set value to the left based on settings in motion tab. |
| Snap-Turn Right | Binary/Button | Rotates a set value to the right based on settings in motion tab. |
| Smooth-Turn Right | Binary/Button | Rotates an amount per frame to the right based on settings in motion tab. |
| Smooth-Turn Left | Binary/Button | Rotates an amount per frame to the left based on settings in motion tab. |
| Auto-Turn Toggle | Binary/Button | Toggles the Auto-Turn Feature on/off. |
Actions that don't have a clear category.
| Action | Type | Explanation |
|---|---|---|
| X-Axis Lock Toggle | Binary/Button | Toggles the lock of the X-Axis for offsets. |
| Y-Axis Lock Toggle | Binary/Button | Toggles the lock of the Y-Axis for offsets. |
| Z-Axis Lock Toggle | Binary/Button | Toggles the lock of the Z-Axis for offsets. |
| Chaperone Toggle | Binary/Button | Toggles the chaperone on/off. |
| Keyboard Shortcut One | Binary/Button | Sends the key sequence defined the the settings file. Defaults to Ctrl+Shift+M (Discord default toggle mute). |
| Keyboard Shortcut Two | Binary/Button | Sends the key sequence defined the the settings file. This has no default sequence. |
| Keyboard Shortcut Three | Binary/Button | Sends the key sequence defined the the settings file. This has no default sequence. |
| Key Press Misc | Binary/Button | Sends the key press defined in the settings file. Defaults to F9 |
Actions That will stay active regardless of the situation.
| Action | Type | Explanation |
|---|---|---|
| Push to Talk | Binary/Button | Acts as starter for PTT, can mute if push-to-mute is selected. |
| Add Left Haptic Click | Binary/Button | simulates a "click" with controller haptics. (left hand) |
| Add Right Haptic Click | Binary/Button | simulates a "click" with controller haptics. (right hand) |
| Key Press System | Binary/Button | Sends the key press defined in the settings file. Defaults to F9 |
| Exclusive Input Toggle | Binary/Button | Switches between App and OVRAS keybinds, note: OVRAS's system Key-Binds remain active all the time |
These Actions are Hidden, They are bound by default. They allow the application to use the haptics and proximity sensor in HMD's.
| Action | Type | Explanation |
|---|---|---|
| Haptics Left | Vibration | Handle for haptic events on the Left Controller. Do not "bind" this action |
| Haptics Right | Vibration | Handle for haptic events on the Right Controller. Do not "bind" this action |
| Proximity Sensor | Binary/Button | Connects Automatically to your HMD's proximity sensor. Do not "bind" this action, it will cause un-predictable behavior. |
No current default bindings you will have to make your own.
The application (AdvancedSettings.exe) can be run with the following optional arguments:
"--desktop-mode": Creates a settings window on the desktop, but not in VR. Running startdesktopmode.bat in the install directory has the same effect.
"--force-no-sound": Forces sound effects off.
"--force-no-manifest": Forces not using a .vrmanifest.
"--force-install-manifest": Force installs the .vrmanifest and adds the application to autostart. If you're having issues with autostart not working try running the program once with this set. The program will exit early when this flag is set.
"--force-remove-manifest": Force uninstalls the .vrmanifest. This should be done every time the application is uninstalled. On Windows it is automatically done by the uninstaller. The program will exit early when this flag is set.
"--reset-steamvr-settings": Resets the SteamVR settings we adjust to Steam's Default Values.
There are some features that can only be enabled by directly specifying them in the .ini file. On windows the .ini file can be found at Users\username\AppData\Roaming\AdvancedSettings-Team\OpenVRAdvancedSettings.ini.
When adding options to the .ini file, they must be added under the correct section to function.
Currently the following ini-file-only settings exist:
Under [playspaceSettings] adding showLogMatricesButton=true will enable a button in the Offsets Tab that when pressed will write a section to the log file containing the current pose matrix data for tracked devices and universe settings.
Also under [playspaceSettings] adding simpleRecenter=true will disable a workaround that allows seated recenter to function on non-lighthouse devices. The workaround instantly applies a second seated recenter whenever a seated recenter is executed. Because simpleRecenter=true will break non-lighthouse seated mode, and true/false behavior is indistinguishable on lighthouse devices, usage of simpleRecenter=true is not recommended.
Under [utilitiesSettings] adding vrcDebug=true will enable some buttons in the Utilities Tab to toggle debug panels in VRChat.
Under [applicationSettings] adding enableDebug=true will show a "Debug State" text box in the Settings Tab. Changing the debug state number may be used for in-dev branch builds. At this time, it doesn't do anything on the master build.
If you want to try latest and greatest unreleased features, you can download the latest from the CI (Continuous Integration) server for Windowsand Linux (gcc build, CircleCI issue requires login to see artifact tab).
These version are not stable and this should be considered for advanced users only.
%appdata%/AdvancedSettings-Team (C:\Users\<username>\AppData\Roaming\AdvancedSettings-Team)C:\\Program Files\\OpenVR-AdvancedSettings\\manifest.vrmanifest by default)
Allows users to temporarily move and rotate the center of the playspace. This allows reaching interaction elements that are just outside our real-world walls or otherwise inaccessible (e.g. when your playspace is smaller than the recommended one). Can also be used to discover the terrors that lie outside of the intended playspace (ever wondered what's behind the door in The Lab?).
Keyboard Utilities: Some applications (mostly 2D-monitor applications with tackled-on/modded-in VR support) do not support the VR keyboard but require an actual physical keyboard for text input. This utilities allow to send emulated key strokes from VR keyboard input to such application to overcome this limitation. Does not work in desktop mode. Adding vrcDebug=true to [utilitiesSettings] in the OpenVRAdvancedSettings.ini will display some buttons for VRChat debug overlay keybinds. The "Keyboard Input" button works as described here.
Alarm Clock: Just a simple alarm clock so you don't miss important appointments. VR can sure mess up perception of time. Does not work in desktop mode.
Media Control Keys: Allows controlling a media player through the media keys. This is the same as having a keyboard with media keys and then pressing them. Should support most common media players.
Show Tracker Batteries Shows an Overlay on Trackers depecting battery percentage
Full build instructions can be found here.
Full build instructions can be found here.
The center marker and the play space marker are provided by the chaperone subsystem, and therefore they will have the same color and visibility settings as the chaperone bounds.
Application autostart can also be configured in the SteamVR menu (SteamVR->Settings->Applications->"Advanced Settings").
You can modify the shutdown wait time when restarting SteamVR by opening restartvrserver.bat and changing the number behind "timeout /t" (unit is seconds).
When Using Proximity Sensor Features while the Dashboard is up the action will not evaluate, so your mic will be muted, and some chaperone warnings won't work while dashboard is up.
Issue: Upon clicking ADV-Settings icon no page shows up.
OpenGL Rendering GPU to the GPU your VR is connected to.Classic App and Browse for AdvancedSettings.exe -> Click Options -> Select High PerformanceIssue: Snap back when using motion controls with WMR headset
Issue: While using Trackers (additional devices besides controllers) Keybinds don't work.
held-in-handIssue: Custom Key Presses Not Saving In file.
This software is released under GPL 3.0, and other third-party Licenses
594 followers · starred Nov 2019
361 followers · starred Sep 2021
64 followers · starred Jan 2019
171 followers · starred Jan 2021
Adds an overlay to the OpenVR dashboard that allows access to advanced settings and useful utilities.

Do all this without leaving VR:
Get it on Steam at OVR Advanced Settings
Note: Please Un-install Other Versions Before Installing Via Steam.
Download the newest installer from the release section and run it.
If you have an older standalone version installed, the installer will automatically uninstall the old version and install the new version.
Download the newest standalone archive from the release section and unpack the archive.
To install for the first time simply start AdvancedSettings.exe once while SteamVR is running. It will register with SteamVR and automatically starts whenever SteamVR starts (Can be disabled in the settings).
To upgrade an existing installation first stop SteamVR and delete the old application folder (or override it). Then start SteamVR and run AdvancedSettings.exe once.
Get it on Steam at OVR Advanced Settings
Note: Please Un-install Other Versions Before Installing Via Steam.
The AppImage can be found in the release section and should run on most common Linux distributions.
Simply double click the AppImage once downloaded to run it. Depending on your distribution you may need to make it executable with chmod +x OpenVR_Advanced_Settings*.
If the AppImage doesn't work for whatever reason, please create an issue here describing the problem and try compiling from source.
OpenVR Advanced Settings is on the Arch User Repository as ovras.
Manjaro users can enable the AUR and install this package using pamac build ovras.
Detailed instructions are available here.
For information on how to properly set-up bindings see: SteamVR Input System Guide
The following actions currently exist:
Actions associated with media player.
| Action | Type | Explanation |
|---|---|---|
| Play Next Track | Binary/Button | The same as using the media keys. Tells a media player to play the next song. |
| Play Previous Track | Binary/Button | The same as using the media keys. Tells a media player to play the previous song. |
| Pause/Play Track | Binary/Button | The same as using the media keys. Tells the media player to press play/pause. |
| Stop Track | Binary/Button | The same as using the media keys. Tells the media player to stop playback. |
Actions associated with motion tab, and motion.
Override actions will take priority over non-override actions during simultaneous activation. Example: binding space turn to single click and space drag (override) to double click on the same physical button.
| Action | Type | Explanation |
|---|---|---|
| Left Hand Space Turn | Binary/Button | Rotates PlaySpace based on left controller rotation while held. |
| Right Hand Space Turn | Binary/Button | Rotates PlaySpace based on right controller rotation while held. |
| Left Hand Space Drag | Binary/Button | Moves PlaySpace based on left controller position while held. |
| Right Hand Space Drag | Binary/Button | Moves PlaySpace based on right controller position while held. |
| (Optional Override) Left Hand Space Turn | Binary/Button | Override version: will activate instead of non-override during simultaneous activation. |
| (Optional Override) Right Hand Space Turn | Binary/Button | Override version: will activate instead of non-override during simultaneous activation. |
| (Optional Override) Left Hand Space Drag | Binary/Button | Override version: will activate instead of non-override during simultaneous activation. |
| (Optional Override) Right Hand Space Drag | Binary/Button | Override version: will activate instead of non-override during simultaneous activation. |
| Swap Active Space Drag to Left Hand (Override) | Binary/Button | Activates space drag on left controller only if right controller is currently active in space drag. (Useful for climbing motions) |
| Swap Active Space Drag to Right Hand (Override) | Binary/Button | Activates space drag on right controller only if left controller is currently active in space drag. (Useful for climbing motions) |
| Gravity Toggle | Binary/Button | Toggles Gravity state when pressed. |
| Gravity Reverse | Binary/Button | Temporarily Reverses Gravity while held. |
| Reset Offsets | Binary/Button | Resets your offset and rotation to 0. |
| Apply Offsets | Binary/Button | Recalibrates center/rotation from offsets |
| Height Toggle | Binary/Button | Shifts the gravity floor level by offset configured in motion tab. If gravity is inactive: also shifts the user's current y-axis position by offset configured in motion tab. |
| Snap-Turn Left | Binary/Button | Rotates a set value to the left based on settings in motion tab. |
| Snap-Turn Right | Binary/Button | Rotates a set value to the right based on settings in motion tab. |
| Smooth-Turn Right | Binary/Button | Rotates an amount per frame to the right based on settings in motion tab. |
| Smooth-Turn Left | Binary/Button | Rotates an amount per frame to the left based on settings in motion tab. |
| Auto-Turn Toggle | Binary/Button | Toggles the Auto-Turn Feature on/off. |
Actions that don't have a clear category.
| Action | Type | Explanation |
|---|---|---|
| X-Axis Lock Toggle | Binary/Button | Toggles the lock of the X-Axis for offsets. |
| Y-Axis Lock Toggle | Binary/Button | Toggles the lock of the Y-Axis for offsets. |
| Z-Axis Lock Toggle | Binary/Button | Toggles the lock of the Z-Axis for offsets. |
| Chaperone Toggle | Binary/Button | Toggles the chaperone on/off. |
| Keyboard Shortcut One | Binary/Button | Sends the key sequence defined the the settings file. Defaults to Ctrl+Shift+M (Discord default toggle mute). |
| Keyboard Shortcut Two | Binary/Button | Sends the key sequence defined the the settings file. This has no default sequence. |
| Keyboard Shortcut Three | Binary/Button | Sends the key sequence defined the the settings file. This has no default sequence. |
| Key Press Misc | Binary/Button | Sends the key press defined in the settings file. Defaults to F9 |
Actions That will stay active regardless of the situation.
| Action | Type | Explanation |
|---|---|---|
| Push to Talk | Binary/Button | Acts as starter for PTT, can mute if push-to-mute is selected. |
| Add Left Haptic Click | Binary/Button | simulates a "click" with controller haptics. (left hand) |
| Add Right Haptic Click | Binary/Button | simulates a "click" with controller haptics. (right hand) |
| Key Press System | Binary/Button | Sends the key press defined in the settings file. Defaults to F9 |
| Exclusive Input Toggle | Binary/Button | Switches between App and OVRAS keybinds, note: OVRAS's system Key-Binds remain active all the time |
These Actions are Hidden, They are bound by default. They allow the application to use the haptics and proximity sensor in HMD's.
| Action | Type | Explanation |
|---|---|---|
| Haptics Left | Vibration | Handle for haptic events on the Left Controller. Do not "bind" this action |
| Haptics Right | Vibration | Handle for haptic events on the Right Controller. Do not "bind" this action |
| Proximity Sensor | Binary/Button | Connects Automatically to your HMD's proximity sensor. Do not "bind" this action, it will cause un-predictable behavior. |
No current default bindings you will have to make your own.
The application (AdvancedSettings.exe) can be run with the following optional arguments:
"--desktop-mode": Creates a settings window on the desktop, but not in VR. Running startdesktopmode.bat in the install directory has the same effect.
"--force-no-sound": Forces sound effects off.
"--force-no-manifest": Forces not using a .vrmanifest.
"--force-install-manifest": Force installs the .vrmanifest and adds the application to autostart. If you're having issues with autostart not working try running the program once with this set. The program will exit early when this flag is set.
"--force-remove-manifest": Force uninstalls the .vrmanifest. This should be done every time the application is uninstalled. On Windows it is automatically done by the uninstaller. The program will exit early when this flag is set.
"--reset-steamvr-settings": Resets the SteamVR settings we adjust to Steam's Default Values.
There are some features that can only be enabled by directly specifying them in the .ini file. On windows the .ini file can be found at Users\username\AppData\Roaming\AdvancedSettings-Team\OpenVRAdvancedSettings.ini.
When adding options to the .ini file, they must be added under the correct section to function.
Currently the following ini-file-only settings exist:
Under [playspaceSettings] adding showLogMatricesButton=true will enable a button in the Offsets Tab that when pressed will write a section to the log file containing the current pose matrix data for tracked devices and universe settings.
Also under [playspaceSettings] adding simpleRecenter=true will disable a workaround that allows seated recenter to function on non-lighthouse devices. The workaround instantly applies a second seated recenter whenever a seated recenter is executed. Because simpleRecenter=true will break non-lighthouse seated mode, and true/false behavior is indistinguishable on lighthouse devices, usage of simpleRecenter=true is not recommended.
Under [utilitiesSettings] adding vrcDebug=true will enable some buttons in the Utilities Tab to toggle debug panels in VRChat.
Under [applicationSettings] adding enableDebug=true will show a "Debug State" text box in the Settings Tab. Changing the debug state number may be used for in-dev branch builds. At this time, it doesn't do anything on the master build.
If you want to try latest and greatest unreleased features, you can download the latest from the CI (Continuous Integration) server for Windowsand Linux (gcc build, CircleCI issue requires login to see artifact tab).
These version are not stable and this should be considered for advanced users only.
%appdata%/AdvancedSettings-Team (C:\Users\<username>\AppData\Roaming\AdvancedSettings-Team)C:\\Program Files\\OpenVR-AdvancedSettings\\manifest.vrmanifest by default)
Allows users to temporarily move and rotate the center of the playspace. This allows reaching interaction elements that are just outside our real-world walls or otherwise inaccessible (e.g. when your playspace is smaller than the recommended one). Can also be used to discover the terrors that lie outside of the intended playspace (ever wondered what's behind the door in The Lab?).
Keyboard Utilities: Some applications (mostly 2D-monitor applications with tackled-on/modded-in VR support) do not support the VR keyboard but require an actual physical keyboard for text input. This utilities allow to send emulated key strokes from VR keyboard input to such application to overcome this limitation. Does not work in desktop mode. Adding vrcDebug=true to [utilitiesSettings] in the OpenVRAdvancedSettings.ini will display some buttons for VRChat debug overlay keybinds. The "Keyboard Input" button works as described here.
Alarm Clock: Just a simple alarm clock so you don't miss important appointments. VR can sure mess up perception of time. Does not work in desktop mode.
Media Control Keys: Allows controlling a media player through the media keys. This is the same as having a keyboard with media keys and then pressing them. Should support most common media players.
Show Tracker Batteries Shows an Overlay on Trackers depecting battery percentage
Full build instructions can be found here.
Full build instructions can be found here.
The center marker and the play space marker are provided by the chaperone subsystem, and therefore they will have the same color and visibility settings as the chaperone bounds.
Application autostart can also be configured in the SteamVR menu (SteamVR->Settings->Applications->"Advanced Settings").
You can modify the shutdown wait time when restarting SteamVR by opening restartvrserver.bat and changing the number behind "timeout /t" (unit is seconds).
When Using Proximity Sensor Features while the Dashboard is up the action will not evaluate, so your mic will be muted, and some chaperone warnings won't work while dashboard is up.
Issue: Upon clicking ADV-Settings icon no page shows up.
OpenGL Rendering GPU to the GPU your VR is connected to.Classic App and Browse for AdvancedSettings.exe -> Click Options -> Select High PerformanceIssue: Snap back when using motion controls with WMR headset
Issue: While using Trackers (additional devices besides controllers) Keybinds don't work.
held-in-handIssue: Custom Key Presses Not Saving In file.
This software is released under GPL 3.0, and other third-party Licenses
594 followers · starred Nov 2019
361 followers · starred Sep 2021
64 followers · starred Jan 2019
171 followers · starred Jan 2021