Installation

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:
- ox_inventory
- ESX / QBCore / Qbox
- No items at all
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.Configuration
Every other block in
config.lua, explained4
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
CREATEpermission - 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: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.π 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?