In case of an update to the Windows client being not working on Wine / Proton even with patched versions of them, don’t panic. There’s still some hope to play Roblox on desktop Linux, if you’re willing to run a Roblox Android Client and this works best if you’re running a Wayland display server and also using Intel and AMD GPUs. No VT-d compatible CPU/Motherboard and more than one GPUs required.
Things that are not covered:
- Windows / macOS VMs. Virtualizing Linux kernel is much better & faster than Windows or macOS, thanks to native KVM and virtio-gpu support. Also since Windows and macOS doesn’t have a proper virtio-gpu support (virtio-win’s PR #943 is still WIP), GPU passthrough is required and remember that Skylake/Zen or higher is required for VT-d in consumer motherboards. (Anything older requires enterprise Q-series motherboard to do so)
- Multi-booting (dual/triple booting, etc) such as running Android x86 (or it’s distributions) on real hardware. Defeats the purpose of this post.
- Anything about running Roblox on Cloud / remote servers. Also defeats the purpose, and it’s basically playing Roblox on another computer but done remotely.
Those methods mentioned above should have their own separate instructions.
These are 3 methods you could take to get the Roblox Client (although it’s designed for Android) back running on your desktop Linux again.
Method 1 - WayDroid (Highest Performance - Requires an AMD, Intel, Adreno, or other GPUs with compatible drivers included in upstream Mesa)
The most native way is running the android client through Waydroid, which is a compatibility layer for Android on desktop Linux. In some distributions like Arch, this requires you to use a custom kernel such as zen and xanmod. Since the Roblox’s Android client doesn’t support x86 (and x64) natively, it requires you to install a proprietary ARM64 translation layer, between libndk_translation for AMD CPUs, and libhoudini for Intel CPUs.
Installation is pretty straightforward considering there’s already a collection of scripts for Waydroid, including for the ARM64 libraries, available on GitHub by casualsnek. For the images though you can choose between GAPPS that includes core Google services, or VANILLA which doesn’t include Google services (if you’re going vanilla, you might need to install microG with adb force-queryable option to prevent the Play Services popup every time you start Roblox).
This does require you to use Wayland display server for it’s core operation, and a Mesa-compatible driver for hardware acceleration, which points to Intel, AMD, older pre-Kepler Nvidia (if nouveau works fine for you though) as another part of the requirements to run Waydroid smoothly. Weston over X11 works, but there will be issues related to input and clipboard.
These instructions related to Intel GPUs below are deprecated since recent Waydroid updates have fixed these issues and are kept here for historical purposes.
Check your Intel GPU generation first! If it’s Broadwell or older (ix-5xxx series or older), PLEASE READ EVERYTHING BELOW!
The reason is because the new Crocus driver, a replacement for the former i965 driver designed for pre-Skylake GPUs released in 2021, are included in latest Waydroid images and is currently known to be buggy. Roblox will turn into a black screen after the loading screen.
If you can’t use the latest Waydroid images for some reason, here’s the solution: You need to copy the
i965_drv_videodriver from a BlissOS 14.3 image and paste them into Waydroid Vendor Image. More instructions can be found in Waydroid forums due to how long the instructions would take.
FOR HASWELL (ix-4xxx) AND OLDER: You’re also required to disable Vulkan by commenting out the
/var/lib/waydroid/waydroid_base.propdue to buggy implementations in pre-Broadwell Vulkan drivers.
Method 2 - Android inside QEMU/KVM (Performance depends on RAM and CPU Cores, most GPUs should work including NVIDIA)
If you either don’t want to run Wayland and still choose X11, or you do have an NVIDIA GPU (especially Kepler and newer), you still have an option. You can install an Android x86 distribution such as BlissOS inside a QEMU virtual machine with KVM and virtio-gpu acceleration enabled. Make sure the distribution you want to install includes a translation layer for ARM such as libhoudini/libndk first, for better experiences it should have the latest kernel and Mesa also, and for the installations you can follow the instructions you can find around the Internet.
Performance depends on how your GPU driver works with QEMU’s virtio-gpu. Better driver means better experience.
Method 3 - The Traditional Way (Mediocre Performance & Experience)
If all the methods above didn’t work, the only ways to run Roblox on Linux is by using a so-called “Android Emulator” software, some of them which are paid (sometimes even for essential functions to run Roblox) or infected by bloatware and advertisements. Main catch is that you will no longer have a native mouse and keyboard input anymore in most emulators, and you might end up resorting to keymappers and mobile UIs instead.
You can also try a cloud service, but it’s kind of cheating since you’re basically running Roblox over a rented server. Other than that, no more ways other than straight-up dual-booting Windows, or setting up an isolated Windows VM in such complex ways.
Known Issues for running Roblox Android Client on Desktops and Laptops
- A distribution, image, or emulator with ARM translation layer is required for non-ARM CPUs (e.g. x86)
- You have to adapt with the Roblox mobile UI if you’re navigating through the Roblox website for day-to-day basis
- For WayDroid, it’s currently didn’t have a proper multi-GPU support, so in most cases you can only use the integrated graphics on any dual-GPU (or so-called “hybrid graphics”) laptops or AIO PCs without a mux-switch.
- Experiences with badly implemented “device platform checks” (e.g. only checks for
KeyboardEnabled, or even
LastInputType) will always give you a mobile UI since Android is primarily designed for touchscreen devices.
- Following the issue above, Experiences that encourages the use of touch-only events (e.g.
TouchSwipe, etc) on mobile UIs will prevent any interactions with physical mouse cursors. For Method 1, you need to use scrcpy which will give touch events but adds some input latency. For Method 2, BlissOS already has the “force fake touchscreen events” in the settings but there’s a catch: you must turn them off for unaffected experiences, and turn them back on for affected experiences which is kinda annoying. For Method 3 however, most emulators are not affected by this issue, but you will be mostly stuck for not having native right-clicking anyway.
All is not lost. There are still some ways we can do to keep Roblox working on Desktop Linux. While compatibility layers or even virtual machines and emulators are required, the hope is not lost. The Desktop Linux community keeps growing. Especially while Microsoft are still doing their own things inside their Windows 11 and after major companies in the gaming market keep pushing Linux forward. Eventually the good thing will always come for us.