Skip to main content

Configuration

To make RacelabVR easier to use, we recommend binding Toggle VR and Recenter to your wheel. You can find these keybindings under Settings > Key Bindings. They are the first two entries in the list (note: one is currently mislabeled as [Translate]).

Key Bindings

Use the same re-center key as in-game

For ease of use, we recommend using the same key for recentering the view as you do in-game.

Overlays

Configuration

Currently, there is no UI for configuring overlays in VR. To add or remove overlays, you must manually edit the config.json file. Upon first startup, Racelab generates a default configuration file with some preconfigured overlays.

The config file is located at:

%USERPROFILE%\Documents\RaceLabApps\vr
OneDrive Users

If your Documents folder is synced with OneDrive, check your OneDrive Documents folder for RaceLabApps/vr.

To add overlays, you need to know their URL. The URL follows this format:

http://localhost:8080/ui/#/overlays/{name}
InstanceGuid

Please note that the field InstanceGuid must be set to a unique value within the config file.

External Tool

Until the built-in UI for configuring VR overlays in Racelab is ready, you can use this external tool to generate your config.json file effortlessly. Alternatively, you can edit the file manually with any text editor.

➡️ RL-VR Config Tool

Available Overlays

All Racelab overlays are supported. Use any of these names to replace {name} in the URL format above:

Standings & Positioning

relative, standings, horizontalstandings, leaderboard

Timing & Performance

deltabar, laptiming, laptimelog, laptimegraph, laptimespread, sessiontimer, head2head

Fuel & Strategy

fuelcalculator, pitboxhelper

Track & Navigation

flatmap, trackmap, minimap, worldmap

Awareness

radar, blindspot, radarbars, overtakealert

Telemetry & Data

inputtelemetry, datablock, boostbox, advancedpanel

Flags & Warnings

flags, digiflag

Miscellaneous

heartrate, weathermonitor

Streaming Overlays

chat, chathighlight, chatracegame, chatracegamestandings, customtext, customurl, garagecover, micvisualizer, statbot

You can also find the URL of an overlay in the Browser section when editing its settings.

Finding Overlay URL

Default config file

In Racelab under Settings > VR Settings you can always revert back your settings to the default config provided by Racelab.

%USERPROFILE%\Documents\RaceLabApps\vr\config.json
{
"openxr": {
"enabled": true,
"useWorldLockedPositions": true
},
"overlays": [
{
"enabled": true,
"instanceGuid": "{fb7cb579-5ec7-4a43-a540-18145366648f}",
"uri": "http://localhost:8080/ui/#/overlays/deltabar",
"pose": {
"position": [0.6379981, -0.22400045, -0.99199826],
"orientation": [0.29999998, -0.6099997, 0]
},
"physicalSize": {
"dimension": "Height",
"length": 0.1
},
"alpha": 1,
"curvatureRY": 0
},
{
"enabled": true,
"instanceGuid": "{fb7cb579-5ec7-4a43-a540-18145366648b}",
"uri": "http://localhost:8080/ui/#/overlays/standings",
"pose": {
"position": [-0.011999998, 0.6279987, -0.6679976],
"orientation": [0.7299996, -0.010000015, 0]
},
"physicalSize": {
"dimension": "Width",
"length": 0.1
},
"alpha": 1,
"curvatureRY": 0,
"fadeOut": {
"startDistance": 0.1,
"endDistance": 0.3,
"minimumAlpha": 0.3
}
}
],
"showWelcomeOverlay": true,
"mouseInvertY": false,
"mouseMovePositionSensitivity": 0.001,
"mouseMoveRotationSensitivity": 0.01,
"mouseWheelAlphaDelta": 0.05,
"resolutionScale": 1
}

Performance & Scaling

resolutionScale Property

The resolutionScale property in config.json determines the scaling factor for overlay resolution. The default value is 1.0.

Increasing this value scales both width and height proportionally. Since pixel count increases quadratically, higher values will significantly increase VRAM usage.

Scaling Examples:

Scale FactorOverlay Size (Original: 512x512)VRAM Usage Increase
1.0512x5121x (default)
2.01024x10244x VRAM usage
3.01536x15369x VRAM usage

Usage Considerations

This feature is mainly beneficial for Varjo headset users, as Varjo performs poor-quality scaling when compositing overlays. On other headsets, increasing resolutionScale may improve text clarity and sharp edges, but it is not generally recommended due to the excessive VRAM usage.

openXR/useWorldLockedPosition Property

This property is true by default. Setting it to false acts as a workaround for Varjo Base v4.4 and above, which have a bug causing world-locked overlays to appear in the wrong position or not at all.

When set to false, the OpenXR API layer will convert world-relative positions to head-relative positions every frame, submitting overlays as head-locked overlays instead.

Pros & Cons:

Fixes rendering issues in Varjo Base v4.4+

May cause overlays to feel 'floating' or 'jittery', especially at low frame rates

Users often describe this effect as overlays no longer feeling firmly attached to the world.