Roblox on Linux (Everything summarized in 1 post) (updated)

Why is there a second one?

Well the original was outdated, and a lot of the things said in it, I no longer agree with, I believe it deserves a rewrite entirely, to make it more friendly for people to read and understand. Everything in this version will be sourced, and formatted nicely. I will be keeping the original for you to look at and laugh at.

What will we discuss?

We will discuss the following:

  1. Brief history of Roblox on Linux
  2. Will Roblox support Linux?
  3. How to run Roblox on Linux today (may be out of date in the future)
  4. How to run Roblox on LInux in the future (Qemu/KVM Single GPU Passthrough)

So let’s get started

Brief History of Roblox on Linux

Pre-2012

There’s not many reliable sources for pre-2012, at least from what I looked at

2012

On July 28th 2012, Roblox CEO David Baszucki released a QnA blog post found here where a user by the name of Oliver asked if Roblox would be supporting Roblox on Linux, David Baszucki replied with the following:

“We’re probably 97% of the way to a Linux port, now that we’ve all the work necessary to port ROBLOX to OSX – which, as you probably know, is based on the UNIX kernel. I think the problem that we would likely run into on Linux is poor video driver support. I’ve heard horror stories from other developers. However, as Linux becomes more popular, I expect this hurdle to disappear.”

2013

On December 10th 2013 Roblox released their Feedback Loop blog post, found here a user by the name of osd3001 asked the following:

Is it possible for ROBLOX to become available on Linux? I know that Mac OS X is UNIX-based, so why couldn’t you do it for Linux? John Shedletsky replied with this:

John Shedletsky replied with the following:

We could spend six months porting ROBLOX to Linux, or we could deliver other highly requested features. If we’re going to be porting ROBLOX to another platform, Android is definitely next in line. Consoles are a close second–maybe that would involve a Linux port, particularly if the Steam OS takes off. We’ll see.

2015 - 2021

in July 2015, Roblox has broken unofficial wine support, and Roblox no longer worked under Linux for years until 2021. Here’s a post linking to the time period where Roblox broke

2021

On June 11 2021, User ImSlappy826 created a patch for wine that allowed Roblox to run on Linux for the first time in years. This patch has this function: “ZwFilterToken”, BrinkerV ported this patch to Arch Linux & robigan ported it to Debian.

2022

On January 18th 2022, Wine officially includes the patch in their stable 7.0 release

2023

Roblox began to roll out it’s Hyperion Anticheat, breaking Roblox support on Linux

2024

In March 2024, Roblox started to see an increase in cheaters using Wine, and have blocked Wine from playing Roblox again.
In August 2024, VinegarHQ made a closed source software called Sober, which uses the Android version of Roblox to run under Linux.

Will roblox support Linux?

Quick answer

No. QnA Answers from YouTube here (skip to 1:08:00)

Long answer

Still no. But this time, not as strong of a no. While yes right now, there’s no real shot that Roblox would port to Linux, I do believe that in several years time, as Linux grows in marketshare, Roblox will change their minds.

Let’s start with an example, Roblox announced their port to Mac on January 2011, and released it on October 2011, In January 2011, MacOS had a marketshare of 6.56% growing at rapid rate, While LInux only had 0.74% and stagnant. It is only recently Linux started growing at a similar rate as MacOS was in 2009 to 2010.

Around the time of RDC 2020 QnA, Linux still looked like it wouldn’t reach 2% in years. fast forward a year and it’s at 2.3%, fast forward a year after that, it’s at 3.12% fast forward a year later and it’s at 4.44% in the present. source, and I am sure Roblox took note of this sudden rapid growth.

Comparing the Mac port for a second, Roblox officially ported Roblox to Mac on October 2011, it had 7.18% of the marketshare, which is a 2.74% difference when comparing to Linux today. There’s a very good chance they are already porting Roblox to Linux. (hugely speculative), I am not even mentioning that porting a game the size of Roblox takes ages, years in fact, and it’s very expensive. I am looking at it from an investment standpoint with reference to the Mac port.

We can’t even go around without talking about the Meta Quest port, as Linux already surpassed the Quest
-Meta Quest sold ~ 20,000,000 units (note: may be innacurate)
-Linux userbase ~ 74,200,000 users (note: may be innacurate)
The way we calculate this is by taking the total PC userbase and times that by Linux’s marketshare (4.44%)

Challenges

All that is fine and all but what kind of challenges will Roblox face should a Linux port be a thing?

  1. Well Roblox is going to face a lot of API issues
    things work differently on Linux, you have to go around and painstakingly get alternatives and dependencies that are built into Windows, Mac, Android ect. It isn’t impossible, just really really difficult.
  2. Roblox may, or will lose in profit.
    Linux may be a growing market but Roblox is still a business in a capitalist society. A for-profit company, Roblox absolutely sees zero profit in Linux unless Linux starts to go absolutely ballistic in marketshare
  3. They can do literally anything else
    Why spend potentially years on a port for a platform you aren’t even sure is worth your time when you can spend that manpower developing features people want to use
  4. Just accept it’s not happening.

Is a port likely now? No. Is it likely in the distant future? Maybe.

How to run Roblox on Linux today

Run Roblox on Linux today (may be out of date in the future)

If you want to play Roblox today (writting this on 28th August 2024) We are going to use Sober, Which has been made by VinegarHQ. Note that Sober is closed source, if you don’t feel comfortable with that, then it’s fine I guess.

You can download Sober by following these steps:

  1. Ensure that Flatpak is installed on your system. You can setup flatpak here.https://sober.vinegarhq.org/
  2. After that, run this command:
    flatpak install --user https://sober.vinegarhq.org/sober.flatpakref
  3. Reboot, and launch Sober, and follow the steps it shows you.

Note that Sober uses an x86_64 APK version of Roblox to run Roblox, which you can get here
!!!(Please note that this website may be untrusted, if you feel uncomfortable using it, I reccomend you get your own Android x86_64 device, or use virtual machine with Android x86 to get the file. I used this website and I haven’t gotten hacked but your mileage may wary.)!!!

-You then want to get the universal APK file listed with the “universal” architecture. After you download it, you can select it in Sober.

If Sober pops up with a error message complaining about how it can’t use a particular version, use the version before that using the same steps shown above.

After this the Android app of Roblox should show up, and you can start playing Roblox.

How to run Roblox in the future

VFIO Single GPU-Passthrough Guide

Note that not all hardware will support what we are going to do here, but the principle here is simple. We are going to pass a graphics card onto a virtual machine that way we can play Roblox.

Requirements:

  1. Your PC must support IOMMU
  2. Your PC must have Intel VT-x & Intel VT-d or NX mode SVM mode enabled in BIOS
  3. UEFI

For NVIDIA GPUs

You may require your GPUs BIOS to put it under a virtualized environment, I am not using an NVIDIA GPU, and I am not too familiar with the process. To obtain your GPU’s BIOS, check this tutorial to see how you can get the files.

Grub Config

Edit /etc/default/grub by the following command
sudo nano /etc/default/grub

and add the following to GRUB_CMDLINE_LINUX_DEFAULT:
On Intel systems add the following:

  1. intel_iommu=on
  2. iommu=pt

On AMD systems add the following

  1. amd_iommu=on
  2. iommu=pt

After this run the following:
sudo grub-mkconfig
and reboot your system after the command is done

To verify if IOMMU is enabled, paste the following into the terminal:
dmesg | grep IOMMU
The output should pop out with Intel-IOMMU: enabled for Intel CPUs or AMD-Vi: AMD IOMMUv2 loaded and initialized for AMD CPUs

Now that you have enabled IOMMU in grub, we can move on to actually installing packages for virtualization

Gentoo

sudo emerge -av qemu virt-manager libvirt ebtables dnsmasq

Arch Linux / arch based

sudo pacman -S qemu libvirt edk2-ovmf virt-manager dnsmasq ebtables

Fedora /Fedora-based

sudo dnf install @virtualization

Debian /debian based

sudo apt install qemu-kvm qemu-utils libvirt-daemon-system libvirt-clients bridge-utils virt-manager ovmf

After installing said packages, you should enable the libvirtd service.

SystemD (used on majority distros)

systemctl enable --now libvirtd

OpenRC

virsh net-start default
virsh net-autostart default

Now it is time to setup your virtual machine
Type in
usermod -aG kvm,input,libvirt **YOUR_USERNAME**
Download the following:
VirtIO drivers ISO
Windows 11 ISO

Now before you instantly go and try to put your GPU into your VM, first let’s actually setup the VM.
After your ISO’s are downloaded you want to launch virt-manager and create a new virtual machine with your Windows 11 ISO, and name it “win11”
Follow the steps the prompt will give you until you see a button that says Customize before install. Press it.
In Overview change your Chipset to Q35 and Firmware to UEFI
In CPUs, set your CPU Model to be host-passthrough, and change the CPU Topology to whatever you think is best with your system.
Change the SATA disk section to VirtIO for high speed performance
In NIC Section, change Device model to virtio
Add hardware → Disk → CDROM, and put your virtIO iso in
Now begin installation

Windows will not be able to detect your disk, so press Load Driver, and select virtio-iso/amd64/win11 when prompted.
After this, you will be able to see your drive, and install Windows on that drive.
After Windows is installed, you can remove the VirtIO drive, and shut the VM down for now.

Now it is time for the fun part.
Edit your virtual machine and remove the following:
Channel Spice, Display Spice, Video QXL, Sound ich* along with other stuff you will never need.

Now click Add Hardware, Select PCI Devices, and choose your GPU.
Note: There may be multiple PCI GPUs under the same GPU, add all of them.
For NVIDIA users: edit the XML section of the file and add your rom below with this code:
<rom file='/path/to/your/patched.rom'/>

Do NOT start the virtual machine yet.

It’s time to add your libvirt hooks.
clone this repo:
git clone https://gitlab.com/risingprismtv/single-gpu-passthrough.git
cd single-gpu-passthrough

edit hooks/qemu, locate & change “win10” to “win11”

Make these files executable and run it via sudo
sudo chmod +x install_hooks.sh
sudo ./install_hooks.sh

Now verify that these hooks are installed properly by locating these files
/etc/systemd/system/libvirt-nosleep@.service
/usr/local/bin/vfio-startup
/usr/local/bin/vfio-teardown
/etc/libvirt/hooks/qemu

The location of logs, if needed
win11.log → /var/log/libvirt/qemu
custom_hooks.log → /var/log/libvirt/
libvirtd.log → /var/log/libvirt/

After you made your libvirt hooks, time to edit your xml file (which is in the virtual machine)

Scroll all the way down the xml file, and delete the following:

  <graphics type="spice" autoport="yes">
    <listen type="address"/>
    <gl enable="no"/>
  </graphics>
  <audio id="1" type="none"/>
  <video>
    <model type="bochs" vram="16384" heads="1" primary="yes"/>
    <address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
  </video>
  <channel type="spicevmc">
    <target type="virtio" name="com.redhat.spice.0"/>
    <address type="virtio-serial" controller="0" bus="0" port="1"/>
  </channel>

Now scroll up and find < features >

place missing items in

  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='123456789123'/>
    </hyperv>
    <kvm>
      <hidden state='on'/>
    </kvm>
    <vmport state='off'/>
    <ioapic driver='kvm'/>

For mobile cards, it is neccesary to simulate a battery. change the first line to this:
<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">

After this, you now are able to test your virtual machine with your GPU for the first time.

There should be a black screen for about 15 seconds until you see yourself on your very low res desktop.

You will also notice that you may not be able to move your mouse or anything, you can now power off the PC via power button and proceed to add your USB devices, or even passthrough your USB controllers directly (PLEASE NOTE THAT THIS MAY BREAK YOUR VM, SO IF IT CRASHES FOR YOU, THEN REMOVE IT FROM THE VM.)

You can now install your GPU drivers, install Roblox, whatever and you should run Roblox with only about 10-20% less FPS than running natively.

Sources

Sources

I want to end off with every single source used in this post, mostly for ease of access, but also show sources that I did not link in any hyperlink

  1. Roblox Brief History
    1 - Roblox on Linux Wiki
  2. Official Roblox Support?
    1 - Statcounter (for Marketshare data)
    2 - Mixed News (for Quest unit sold numbers, may be innacurate)
    3 - Desktop usercounts (may be innacurate)
  3. How to play Roblox on Linux Today
    1 - VinegarHQ
    2 - Sober
  4. How to play Roblox in the future
    1 - Risingprism’s Single GPU Passthrough Guide
    2 - QaidVoid’s Single GPU Passthrough Guide
    3 - Arch Linux - PCI passthrough via OVMF
    4 - Coodos Single GPU passthrough guide
Updates

November 19th 2024 - Corrected some mistakes with the GPU Passthrough guide.

Thank you!

Thank you for reading & learning about this topic, I spent several days on this new updated guide (and a few months of procrastinating), I hope I got you to learn something new.

-Was this post helpful?

  • Yes
  • Somewhat yes
  • 50/50
  • Somewhat not
  • No

0 voters

Please correct any incorrect statements here and I will edit this to fix the incorrect statements.

4 Likes

Given this information, and your mention of the market share, do you believe the EoL for Win10 would have a significant impact on the market share?
Namely asking because I proactively develop a fair amount on Roblox, and have tried using various Linux ports - none of which really seem to work all that well for me - but plan on moving entirely to Linux when support for Win10 ceases, and would still like to continue developing on Roblox on my OS of choice.
I get this post is purely speculative and informative, but would still like to bounce thoughts off of someone more knowledgeable than myself in this matter.

1 Like

Yes, I do believe that the EoL for Windows 10 will cause a significant growth for Linux. Mainly because a lot of users cannot upgrade to Windows 11 because of system requirements, or just don’t like Windows 11.

However it may also make users choose other alternatives as well such as Win10 IoT LTSC, which is debloated and offers support up to 2032 because the version isn’t targetted at regular users like me and you.

People understand they need security updates if they want to stay safe, and the more Windows becomes shittier, the more people move to Linux.

So yes, the EoL for Win10 will cause a boost in Linux marketshare. However if you aren’t ready to leave Windows as a platform, there is also Windows 10 IoT LTSC.

Linux users will never make a perfect Roblox port, there’s always going to be that occasional bug or two, especially given Roblox is closed source. The only people who could make the perfect Linux port is Roblox themselves. And as dicussed in the post, that is very unlikely for the time being. But it is possible in the future.

1 Like

If sober is running an android version of roblox, wouldnt that limit games with pc support only?

To reword, wouldn’t roblox see it as a mobile device instead of a pc?

The client correctly sees that you are on a PC instead of a mobile device, afaik they don’t hardcode the platform during compilation (aka, they check if you’re on mobile or desktop at runtime, though this might be different for consoles)

Roblox automatically detects whether or not you are using a keyboard and a mouse and correctly assumes you are playing on a computer,

It works very similarely from mobile, if you have an Android phone, you can use a USB C dock to plug in a mouse and a keyboard, then launch the Roblox app and join a game which identifies your device like for example Arsenal, if you press tab to see the leaderboard, your Roblox will not say you are on a phone, but rather on a PC.

Furthermore if you first play on a touch screen, and the game says you are playing on mobile, if you plug in a keyboard and a mouse, from my experience the entire app relaunches and starts viewing you as a PC user, rather than a mobile user.

Sober is using this fact to it’s advantage and using the APK version of Roblox instead of the PC version to get Roblox to work on Linux.

I don’t have sources to back this up though, I just know based on my previous experiments on the client to see if I find any bugs.

updated some of the GPU passthrough guide to be more accurate


Segmentation fault jumpscare (yea it just does that for some reason, clean install with stuff that shouldn’t break it at all. i use arch btw)

that’s kinda weird, have you found the solution or?

linux-headers or something
idk

given the impending shut-down of Windows 10, it would be in ROBLOX’s best interest to add an official port for Linux, as many people(myself included) have seen what 11 looks like/functions and are against it, so changing to Linux is the current path.

there’s also the fact that many computers lack the hardware requirements to run 11, which could result in a major hit to overall playerbase if it’s not at all easy/intuitive to get roblox running on another OS.

I’d like to believe they’re going to add an official port, however, I’m rather skeptical of it happening anytime soon

Honestly I doubt Linux will gain a significant enough boost in userbase to warrant actually adding support for it. MacOs will probably be the one gaining more % of users compared to linux. It’s also worth noting maintaining a whole different platform for only like 5% of the userbase to use it is very expensive.

I do believe exactly what you said here, and genuinely wish they are doing a port, I am skeptical yes, but eventually they will have to do so, Linux is a growing market that will probably get at least a 2% boost when win10 loses support. And if Windows 12 is a honk of s##t like 11, I have no doubt in my mind that Linux will have 10% and be rivaling MacOS.

I agree with the fact that maintaining support is expensive, I do not however believe users are willing to spend 1k on a mac, at that point just build a PC.

People need a supported OS
if you can’t upgrade because of support you aren’t going to buy a new PC, you will switch to Linux
if you aren’t on Win11 yet, and hate it, majority of win10 users do hate it then >> Linux
If you don’t want to leave windows yet, >> Win10 IoT LTSC

And god knows if it’s going to be worth it anyway, Windows 12 could be worse than 11.

I’m hoping that Linux’s market share jumps significantly after Windows 10’s EoL so that more companies, including Roblox, take notice and reconsider supporting Linux.

I don’t expect it to be world-shattering, but it’s reasonable to think that within a year of Windows 10’s EoL, Linux could surpass a 7% market share. Many people will continue using Windows 10 until it no longer functions, but something unprecedented is likely to happen: for the first time in history, the majority of computers in the world will not have a supported Microsoft operating system. If that doesn’t boost Linux into a more recognizable market share, nothing ever will.

There’s always the usual “Year of Linux” hype whenever a new version of Windows is released, but this time feels different. Most computers today can’t run Windows 11, and many perfectly good PCs aren’t ready for the scrap heap. While many users will stick with Windows 10 for now, Linux is becoming far more user-friendly, and the tech sector appears to be pushing it more seriously this time around.

Roblox already has an abstraction system in place to handle platform differences, as it supports Windows, macOS, Android, iOS, and consoles. This flexibility means they could implement Linux support without too much difficulty if they chose to. There are also many different avenues they could take to offer some form of Linux support.

It’s also worth noting that Roblox no longer supports Windows 7 or 8, and it’s likely they’ll eventually stop supporting Windows 10 as well. More than half of the world’s computers still run Windows 10 and will need an alternative. If Roblox wants to retain those users, they will need to find a way to go where those users go.

I won’t exactly be holding my breath, but I think we are approaching the best opportunity for growth Linux will ever have. For myself, developing on Roblox is the only remaining reason for me to use Windows at all. I will most likely be running Roblox inside a VM soon as I have no intent on adopting Windows 11 as my primary OS. I think it’s a clunky pile of spyware I’d rather not have harvesting everything I ever do and selling it to companies that will certainly eventually suffer a data breach.

If it becomes too much of a pain to keep developing on Roblox without Windows, I’m more likely to move to Unity than Windows 11.

Hi, everything downloaded correctly but when I try to open Sober it just buffers endlessly
Screenshot 2024-12-19 5.32.17 PM