Games
RoadVR ships six games. Minigolf, Chess, Darts and Arena run in private rooms: the host gets a six-letter code, friends join with the code or an invitation, and a player whose headset or connection drops keeps their seat for a while. Beat and Basketball start straight away and offer duels. Every game has its own block inconfig.lua. A block you leave out falls back
to the shipped defaults.
Minigolf
Two courses for up to six players. Adventure has twelve holes, each built around an obstacle — a tunnel through a hill, a jump over a creek, a turnstile, a bridge, a half-pipe, a loop, raised landings, side slopes and rotating gates. The Pro course has five holes where no tee opens to a straight stroke. The course opens full size in first person. Walk withWASD, aim with the
mouse, hold and release to putt — or set the power with the mouse wheel in 5 %
steps. F returns you behind your ball. Everyone watches the same ball path
from the server, then the next player takes their turn. Add a demo player to
practise alone.
config.lua
While a course or its score menu is open, the headset cannot be taken off by
accident. Death, vehicles and third person still remove it.
Chess
A room for two, against a friend or the computer at Beginner, Club player or Strong. The host lays a 3D board down on a table, a counter, a car roof or the ground; everyone who joins sees it at that spot and walks up to play. The board is lit by the in-game clock and weather. The window keeps the familiar side: time controls from one minute to thirty with or without increment (or no clock), a move list, captured pieces, draw offers, resignation and rematches with swapped colours. The rules and the engine run in Lua and the server validates every move.config.lua
Darts
Solo practice, or a room for up to six players. The host hangs the board on a wall with Place board. Choose a starting score of 301 or 501 and whether to finish on a double. Stand behind the line, aim, hold the mouse button to charge and let go to throw — three darts per visit. A bust restores the score from the start of the visit, and the first player to reach exactly zero wins. Darts cannot be played in a vehicle or while an environment is running.Arena
Team deathmatch in a 3D arena of its own, teams Alpha and Bravo. Create a lobby or join one, invite RoadVR friends, and let the host fill the teams with bots. Everybody readies up, then Enter arena. The host picks the score limit and the round time.
Players keep five class slots, starting from Assault, Rush, Recon
and Support. Changes apply from the next spawn. Field of view, sensitivity,
volume and a performance or quality preset are set in the game.
Saved classes live in
roadshop_vr_shooter_loadouts, which is created on
start. Without CREATE permission import
sql/migrations/2026-09-20-shooter-loadouts.sql.Beat
Blocks fly at you down a lane and you cut them with two sabers. Four difficulties up to Expert, with bombs, walls that fill an outer column and stacks of two blocks under one stroke. A Modifiers panel changes the rules of a solo run — One Life, Vanishing Arrows, Ghost Blocks, Faster Song, No Bombs, No Walls, No Arrows — and each one raises or lowers the score. Duels are played without modifiers, and a rematch challenges the same opponent again.ESC pauses a solo song.
Eight tracks ship. To add your own, drop an .ogg or .mp3 into
public/beat/ and add a line:
config.lua
.json of the same
name next to the audio wins over the generated chart.
The rest of the block — difficulties, energy, hits, stage, colors,
falloffStart / falloffEnd and the dance animation other players see — is
commented line by line in config.lua. roadvr diag checks that every song
file is in place.
Basketball
Place a hoop and shoot. Practice counts points, your streak and your best; Move hoop and Return ball sit in the app. Switch to Duel to challenge a player next to you at the same hoop: after a three-second count-in, whoever scores more inbattleSeconds wins. Leaving the hoop or closing the
app during a duel loses it.
rim, timing, assist, flick, angle and the speed limits are tuned to
the bundled hoop. Leave them unless you swap the model.
Games from other resources
Games written by other resources use the same lobby, invitations and characters. Their room lifetime is set once for all of them:config.lua
Custom Games
Ship a multiplayer game as your own resource