Steamworks Documentation
Suggesting default user settings for your game
SteamVR offers a rich set of customizable settings to the user. To ensure that a game will run well out-of-the-box, a developer can suggest tailored default user settings for their game on Steam Frame, including the refresh rate or the display resolution that should be optimal for the experience. A user can further refine these settings in VR Settings -> Video -> Per-Application Video Settings. A user can also use Reset to Default to restore the default settings suggested for this game.

The method for suggesting these default settings is identical regardless of which platform runtime (Proton, Lepton, native) or VR runtime (OpenVR, OpenXR) the application is built for. Developers can include a file named vrpreferences.json at the root of their game package and SteamVR will read this file and automatically create the corresponding per-application default values for relevant settings.
The vrpreferences.json file is read when the application is being installed or upon startup of SteamVR. During development, if the package is not fetched through Steam for installation, it is necessary to restart SteamVR for the changes to take effect.

The file must contain a dictionary named steam_frame and one or more of the following entries:

NameValue / TypeCorresponding Video -> Per-Application Video Settings menu entryBehavior when not specified
preferResolution<integer>, width componentResolution Per EyeUse 1728x1728
preferMinRefreshRate<integer>Frame Limit / Refresh Rate OverrideUse 72 Hz
preferHalfFrameratetrue, falseFrame Limit / Throttling BehaviorNo throttling
preferMotionSmoothingMode"off", "on", "alwaysOn"Motion SmoothingUse global setting under Video -> Motion Smoothing
JSON syntax can be prone to errors. In particular, make sure to not have a comma following the last entry in the steam_frame dictionary.

A developer can add, remove or change these suggested defaults though a game update, and as long as the user did not modify the settings through VR Settings -> Video -> Per-Application Video Settings, the updated defaults will be used. If a user has overridden a setting, their override will continue to be used until they use Reset to Default.

Example vrpreferences.json:

{ "steam_frame": { "preferResolution": 2160, "preferMinRefreshRate": 90, "preferHalfFramerate": true, "preferMotionSmoothingMode": "off" } }

This example file suggests:
  • A default resolution of 2160x2160
  • A default display refresh rate of 90 Hz
  • A default frame throttling to 1/2 (Frame Limit to 45 FPS)
  • A default override to disable Motion Smoothing

To validate that the vrpreferences.json is picked up by SteamVR, the vrserver.txt log file can be searched:

[Info] - [Settings] Loading app-provided preferences from '/home/steamos/.local/share/Steam/steamapps/common/<game folder>/vrpreferences.json'

Parsing errors will be reported in this log, for example:

[Info] - Parsing of JSON file "/home/steamos/.local/share/Steam/steamapps/common/[...]/vrpreferences.json" failed: * Line 5, Column 3 4: "preferMinRefreshRate": 120, 5: } 6: } Missing '}' or object member name Tue Jul 28 2026 11:05:56.126069 [Info] - [Settings] No or invalid application preferences settings at '/home/steamos/.local/share/Steam/steamapps/common/[...]/vrpreferences.json'

To fully validate that all preferences are being picked up, use VR Settings -> Video -> Per-Application Video Settings, press Reset to Default and check the defaulted settings against the specified preferences.