Skip to main content

Installation

A player wearing the RoadVR headset
RoadVR is a spatial AR interface for FiveM: world-anchored windows the player can place in the room, carry along and interact with. It runs on ESX, QBCore, Qbox and standalone.
Do not use FileZilla. It can corrupt or skip hidden files during upload. We recommend WinSCP.
There is no transaction ID to enter. Unlike our other scripts, RoadVR has no API.lua key step β€” in RoadVR, API.lua is the exports file for other developers. The database sets itself up on first start. If you came here looking for the license step, there isn’t one.

πŸ“‹ Prerequisites

OneSync

Required. RoadVR declares /onesync as a dependency and will not start without it.

ox_lib

Required. Must be started before RoadVR.

oxmysql

Required. Every persistence path depends on it.

FTP Client

WinSCP or similar (not FileZilla)

Inventory

Optional β€” only if you want the headset and the drone to be real items

RoadPhone

Optional, version 2.6.0 or newer. Adds messages, music, shared notes, the photo gallery and phone notifications. Older versions are treated as no RoadPhone at all.

πŸš€ Setup Instructions

1

Extract both resources

The download contains two resources. Put both into your resources folder β€” we recommend a [road] folder alongside our other scripts:
roadvr_models streams the headset itself: the wearable visor for the freemode bodies and the rs_visionpro prop that is carried between hands and head. Without it the headset falls back to whatever glasses a ped already has.
2

Register the items

Two items, both with configurable names:
data/items.lua
3

Configure

Everything lives in config.lua. For a first start you rarely need to touch more than the top:
config.lua
Config.Locale sets the language of the Lua-side notifications and is the interface language for every player who has not picked their own in Settings. English, German, Spanish and Italian are included.
Ship with Config.Debug = false. It enables /roadvr_calib and the in-game tuning commands, which players should not have.

Configuration

Every other block in config.lua, explained
4

Start the resources

server.cfg

πŸ—„οΈ About the database

RoadVR creates its tables on first start, and an older installation has missing columns added automatically. You do not have to prepare anything. The SQL files ship for two cases only:
  • your database user has no CREATE permission
  • you want to read the schema before a script touches your database
sql/roadvr.sql contains every table. If you are updating an existing install without CREATE permission, import the newer files on their own: sql/migrations/2026-09-20-shooter-loadouts.sql and sql/2026-10-12-reminders.sql.

βœ… Verification

Run this in your server console:
It checks the bridge and framework, ox_lib, oxmysql, your inventory, the locale, the valet price, Config.FirstPersonOnly, the roadvr_profiles table, whether every Beat song file is in place, and the optional integrations. Then in game: use the item in first person. The first time a character puts the headset on, a short setup assistant asks for language, look and how new windows should behave, and offers the window tutorial at the end.

πŸ”οΈ Environments work out of the box

The Environments app ships with three built-in 3D landscapes β€” Alpine Lake, Sand Dunes and Lunar Surface. They are generated in the interface, so there is nothing to download or add.

Environments

How landscapes behave and how to switch them off

πŸ”„ Updating

1

Replace everything except config.lua

Replace every file of roadvr except your config.lua, and roadvr_models with it. Mixing old and new files breaks the messages between game and interface.
2

Keep your config.lua and merge new blocks

Copy new blocks from the shipped config.lua into yours. Anything you do not add falls back to the shipped default, and the server console names the blocks that are missing:
3

Check the environments list

An older config.lua may still carry Config.Environments.list = {} from the panorama days. An empty list switches the Environments app off β€” replace it with the three built-in landscapes:
config.lua
4

Restart

New tables are created on start. Restart roadvr_models and roadvr.
Players see the installed and the newest version under Settings β†’ Updates, and the server console announces a new release. Checks only read public version metadata β€” nothing is downloaded or installed. See Config.Updates in Configuration.

πŸ“š Next Steps

Controls

Keys, focus mode and how windows are moved

Apps & Widgets

What comes with the headset

Games

Minigolf, Chess, Darts, Arena, Beat and Basketball

FAQ

Any problems or questions?