This document explains how to enable and configure the SteamVR display in EliteG19s, change resolution and options via options.json, access and use the overlay toolbar, and understand per-ship overlay positioning and monitor mode.
options.jsonoptions.json snippetsUse the Settings Wizard when you first run EliteG19s or when you want to re-run the setup flow. The Settings Wizard provides a guided experience for enabling SteamVR overlay output.
If you prefer to enable SteamVR manually while the app is running, use the in-app menu screen.
If the overlay does not appear, verify:
options.jsonEliteG19s stores low-level rendering and overlay settings in an options.json file located in your user data folder. Editing options.json lets you change resolution, scaling, monitor mode, per-ship positions, and other advanced options not available in the GUI.
Where the SteamVR options live (exact keys)
The SteamVR-related options are nested under DisplayOptions -> SteamVRDisplay in options.json.
The property names you'll see and can edit:
IsEnabled (bool) — whether the SteamVR overlay is enabled.Width (int) and Height (int) — the overlay render target size in pixels used when rendering into VR. The implementation creates a square shared texture with size = max(Width, Height).MonitorModeWidth (int) and MonitorModeHeight (int) — pixel size used when running in Monitor Mode (desktop mirror window).MonitorModeWidthMeters (float) and MonitorModeDistanceMeters (float) — physical size in meters and distance used to compute the monitor-mode plane transform when toggling Monitor Mode.DefaultTransform (object) — default OverlayTransform applied when there is no per-ship saved transform. OverlayTransform contains WidthMeters, Position (with X,Y,Z) and Rotation (with X,Y,Z).Opacity (float) — overlay background opacity used when filling the overlay window area.How to edit safely:
options.json is read/written.options.json and edit the values under DisplayOptions → SteamVRDisplay using the exact property names above.Important: Keep a backup copy of options.json before making manual edits.
Monitor Mode temporarily changes the overlay to a larger screen with a larger resolution (default 1920x1080) to mirror your display. This makes it easier to navigate to Inara while not having to take off your headset.
To enable Monitor Mode:
Changing the monitor resolution:
options.json, edit the resolution object. Example:"resolution": {
"width": 1920,
"height": 1080
}
Tips:
The overlay toolbar is the small floating control panel attached to the overlay. You use it to change position, lock the overlay, resize, and access settings quickly.
How to access the toolbar:
Toolbar buttons and actions:
EliteG19s saves per-ship overlay transforms in the per-commander memory store (memory.json), not in options.json.
What is stored and where:
Memory object under the OverlayTransforms dictionary (string key -> MemoryOverlayTransform).How the app chooses which transform to apply:
Memory.OverlayTransforms using the ship identifier provided by Elite Dangerous (for example Anaconda or an SRV type string).MemoryOverlayTransform exists it is used and applied to the overlay; otherwise the global settings from options.json is used.Notes:
memory.json, different commander profiles (or different platforms) will have separate memory.json entries and therefore independent overlay positions.options.json — SteamVR settings (under DisplayOptions → SteamVRDisplay)"DisplayOptions": {
"SteamVRDisplay": {
"IsEnabled": true,
"Width": 640,
"Height": 480,
"MonitorModeWidth": 1920,
"MonitorModeHeight": 1080,
"MonitorModeWidthMeters": 2.0,
"MonitorModeDistanceMeters": 1.5,
"DefaultTransform": {
"WidthMeters": 1.5,
"Position": { "X": 1.0, "Y": 1.0, "Z": -2.0 },
"Rotation": { "X": 0.0, "Y": 0.0, "Z": 0.0 }
},
"Opacity": 1.0
}
}
options.json — Monitor mode settings only"DisplayOptions": {
"SteamVRDisplay": {
"IsEnabled": false,
"MonitorModeWidth": 1920,
"MonitorModeHeight": 1080,
"MonitorModeWidthMeters": 2.0,
"MonitorModeDistanceMeters": 1.5
}
}
memory.json — per-ship transform example (this is where per-ship positions are saved){
"OverlayTransforms": {
"Anaconda": {
"IsEnabled": true,
"WidthMeters": 1.2,
"Position": { "X": -0.3, "Y": 0.2, "Z": 1.2 },
"Rotation": { "X": 0.0, "Y": 10.0, "Z": 0.0 }
}
}
}
Recommended values and notes:
Width/Height used for the VR overlay determine the render target and are used to compute a square shared texture; higher values give crisper UI at higher GPU cost.MonitorModeWidth/MonitorModeHeight to your monitor or streaming canvas.DefaultTransform.WidthMeters or edit per-ship WidthMeters entries in memory.json.DisplayOptions.SteamVRDisplay.IsEnabled is true and SteamVR is running. The code checks for an HMD and OpenVR runtime before creating the overlay; if either is missing the overlay will not initialize. Restart EliteG19s after enabling SteamVR.DisplayOptions.SteamVRDisplay.Width/Height (the code creates a square texture with size = max(Width, Height)), or increase DefaultTransform.WidthMeters / per-ship WidthMeters to scale UI elements larger in world space.MemoryOverlayTransform JSON object for one ship to another key inside memory.json (backup first), or position the overlay in VR while that ship is active and let the app save the new transform automatically.