What you need
- An x86-64 PC. The button does not appear on other computers, or in a build from source without the
vrfeature (From source). - Your own Quest with Roblox installed from the Meta Horizon Store. Cordial copies Roblox from it. It never downloads a Quest build from anywhere, and it refuses an APK that Roblox did not sign.
- An OpenXR runtime. WiVRn streams to a Quest over Wi-Fi or USB; SteamVR and Monado also work. Cordial uses one and does not install one.
- For copying Roblox off the headset: a USB-C cable that carries data (a charge-only cable is the commonest reason nothing shows up) and
adb.
Get Roblox off your Quest
Settings → VR → Get It from Your Quest walks through this and checks each step before the next. Nothing on the headset is changed: Cordial only lists packages and copies the installed APK.1
Install adb
adb is Android’s tool for talking to the headset. If it is missing, the page names the command for your distribution:Cordial’s Flatpak cannot run
adb; see In Cordial’s Flatpak.2
Turn on developer mode
In the Meta Horizon app on your phone: Devices, your headset, Headset settings, Developer mode, on. Meta only shows that switch to accounts in a developer organisation, which is free to create; see Meta’s guide. Restart the headset if the setting does not seem to take.
3
Connect the headset
Plug it in and put it on. Choose Allow on “Allow USB debugging?” and tick Always allow from this computer. The page updates by itself.
4
Copy Roblox
Cordial shows the version on the headset and compares it with the one it already has. Copying is about 150 MB. Cordial checks Roblox’s signature and keeps the build with its other Roblox builds. When it says done, you can unplug the headset.
The headset is not showing up
The headset is not showing up
- Press Restart adb on the page.
- Unplug and replug.
- Revoke USB debugging authorisations in the headset (Settings, System, Developer) and replug.
- Check developer mode is still on.
- Use a port on the computer itself rather than a hub.
cordial --import-quest-apk FILE does the same from a terminal.
Play
1
Start your OpenXR runtime
With WiVRn, its server must be running before you press Play in VR; the VR page says when it is not. To run it without WiVRn changing your system’s active runtime:
2
Choose the runtime
Settings → VR → Runtime lists your system’s active runtime, WiVRn’s Flatpak, SteamVR and anything in
share/openxr/1/, or Another runtime for a manifest file. The choice is given to the game for that launch only. Cordial never changes your system’s active runtime.3
Press Play in VR
Settings → VR → Play in VR, at the top of the page. If it is greyed, the line under it says what is missing: no Quest build imported yet, no OpenXR runtime found, or WiVRn’s server not running. The launcher itself only has the Roblox button. Why: ADR-053.
When Roblox updates
Roblox stops accepting old versions after an update, and the Quest build goes stale with every one.- Update Roblox on your Quest from the Meta Horizon Store.
- Open Settings → VR → Get It from Your Quest again. Once your computer is allowed, it goes straight to the Roblox step and copying is one click.
In Cordial’s Flatpak
WiVRn, adb and other runtimes under Flatpak
WiVRn, adb and other runtimes under Flatpak
VR in the Flatpak is meant for WiVRn installed as a Flatpak and needs nothing from you. Cordial’s Flatpak can read WiVRn’s install and reach its server, and brings its own OpenXR loader. Checked so far: it finds WiVRn, sees its server running and loads its runtime library. A whole VR session from the Flatpak has not been run yet.Getting Roblox off your Quest. The Flatpak has no Use the path the first command printed.Other runtimes. A Monado installed on your system does not load inside a Flatpak, because its library is built against your system’s libraries, not the Flatpak’s. Use Cordial installed another way for Monado.SteamVR’s runtime needs SteamVR already running and shared memory. To try it, grant it yourself. This has not been tested:
adb. With the headset connected and allowed, run these in a terminal, then choose I Have the APK File with the file it copied:What is broken or untested
- Sound goes to the same audio output as the normal game. It has been checked with Cordial’s own counters, not by ear in a game, and the microphone in VR has not been tried.
- Typing into a text box reaches it, checked through Cordial’s own control socket. Typing on a real keyboard while in VR has not been checked.
- Controller vibration can buzz on and on with WiVRn 26.9. That is a bug in WiVRn’s headset app, fixed in WiVRn’s pull request #1131, which no release carries yet.
- Leaving a game from the Roblox menu brings the menu back on Monado. The in-game Leave button has been exercised only partly.
- Joining a second game after leaving one crashes when the runtime is Monado with its default in-process compositor, inside the graphics driver. It has not been tried on WiVRn, whose compositor runs in its own process.
- Frame rate in game is below the headset’s refresh rate: 44 to 65 frames a second on Monado’s simulated headset. On a Quest 3 over WiVRn, in a game made for VR, it looked mostly above 60 with occasional slight stutters; that was watched, not measured.
- No warning when your Quest build is too old. See When Roblox updates.
- A session that stopped with MangoHud’s overlay loaded into Monado was seen once. If VR crashes with
MANGOHUD=1set, try without it.
Reporting a problem
cordial --diagnostics has a VR line and cordial --doctor has VR checks; paste both into a report. The switches for investigating a VR run are in vr/env.md.