Skip to main content
Play in VR runs Roblox’s Meta Quest build on your PC and shows it in your headset through an OpenXR runtime. The headset is a display; the game runs on the computer.
Experimental. Use an alt account. This is new, and an account you care about is not something to test it with.This runs Roblox’s Quest client on hardware it was not made for. You are responsible for your account under Roblox’s Terms of Use and Meta’s Quest terms.

What you need

  • An x86-64 PC. The button does not appear on other computers, or in a build from source without the vr feature (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.
  • 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.
If you already have a Quest build of Roblox copied off your own headset, I Have the APK File takes it. 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.
A profile is shared between the normal game and VR: you sign in once, and the same profile lock stops both running at once. Each keeps its own game settings and caches, because the two Roblox versions store different things there.

When Roblox updates

Roblox stops accepting old versions after an update, and the Quest build goes stale with every one.
  1. Update Roblox on your Quest from the Meta Horizon Store.
  2. 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.
If the headset still has the version Cordial already has, the page says so and asks you to update it on the headset first. The old build stays until the new one is in, so a failed copy loses nothing. Cordial cannot tell you in advance that your build is too old, and no “too old” signal from the Quest build has been seen yet. A VR session that stops working after a Roblox update gets a note on the crash page pointing here. Why: ADR-053.

In Cordial’s 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 adb. With the headset connected and allowed, run these in a terminal, then choose I Have the APK File with the file it copied:
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:

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=1 set, 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.