Roblox Player working on Arch Linux under Wine in June 13, 2021

Roblox on Linux (sometimes referred to as ROL) refers to playing Roblox games for the Linux operating system, involving a Linux kernel-based operating system.

Roblox Player once worked under Ubuntu, Fedora, and many other GNU/Linux Distributions and the BSD Distributions including FreeBSD using Wine, a compatibility layer that allows other operating systems to run some Windows programs. Several years ago, however, the Roblox anti-cheat started detecting Wine and would force the game to quit. As such, for years it has not been possible to run Roblox Player on Linux. But recently, a Wine patch by the user "Slappy826" (Slappy826#0001 on Discord), has got Roblox working under Wine again. The patch was shared among the Grapejuice Discord server, which contains a prebuild by Brinker for arch-based distributions. On most other distributions (notably ubuntu and/or debian), robigan has made a prebuild with the Brinker Mouse Patch included (It was built on robigan's machine with Linux Mint 20.1 which is based off of Ubuntu 20.04 and uses wine-tkg-git). Or you could compile from Wine source since the patch has been added to wine-tkg, but you must forcefully add it to the desired patches under the customization.cfg file. As of now, the patch hasn't made its way to wine-devel or wine-staging, but it is on the mailing list.[1]

Installation on Arch-based distros

  1. Download the package with the mouse fix and ntdll patch
  2. Open a terminal at the directory where the package file is
  3. Run the terminal command sudo pacman -U wine-tkg-staging-fsync-git-6.10.r0.g8a3554ad-326-x86_64.pkg.tar.zst
  4. Install a wrapper. Grapejuice is recommended as it is in the AUR.
  5. Install Roblox from the maintenance tab on Grapejuice, or a selection in Roblox Linux Wrapper
  6. Open a browser and play a game normally.

Installation on other distros

  1. Download robigan's prebuild of Wine, and extract it, no need of installing it to your system.
  2. Install a wrapper. Grapejuice is generally recommended.
  3. After installation run Grapejuice once and then close it.
  4. Edit the config file at ~/.config/brinkervii/grapejuice/user_settings.json to include the location of your Wine binary.
    {
      "show_fast_flag_warning": true,
      "wine_binary": "/yourpath/directory/here/bin",
      "last_run": 1623522452,
      "dll_overrides": "ucrtbase=n,b;api-ms-win-crt-private-l1-1-0=n,b;dxdiagn=;winemenubuilder.exe=",
      "no_daemon_mode": true,
      "release_channel": "master",
      "n_player_dialogs_remain": 0,
      "ignore_wine_version": false
    }
    
    5. Now you can launch Grapejuice and install Roblox.

Using community-made solutions like the ones fore mentioned, you can launch the Roblox Player and Roblox Studio like how you would normally on the website using a patched Wine. Roblox Studio has a gold rating in winedb.[2]

Setting up a FPS unlocker

If you wanna set up a FPS unlocker to achieve the best framerates on Roblox, you can do it with Wine!

  1. Download it at https://github.com/axstin/rbxfpsunlocker/releases/tag/v4.3.0
  2. Extract the file
  3. Open Grapejuice
  4. Go to the "Wine" section on Grapejuice, and open the Wine Explorer
  5. Go to the directory of the extracted folder (LINUX DRIVE IN WINE IS USUALLY Z:\)
  6. Once you find the .exe file, open it through the Wine Explorer. It should minimize to tray
  7. Open Roblox through the website
  8. Click/Right-click on the tray icon and set your FPS cap there. (To check your FPS use Shift+F5)

This is guaranteed to not ban you, as it doesn't inject anything into Roblox.

Bugs

Running Roblox Player using Wine is not perfect, as it has some reported issues:

  • Any form of moving the ingame camera via the mouse (eg. Right-clicking, shift lock, and first person), will freeze the mouse in place after scrolling out in first person, toggling off the shift lock by pressing shift, and right-clicking. Right-clicking has a scuffy-ish patch made by the maintainer of Grapejuice, Brinker. It's downloadable on Arch Linux at the Grapejuice Discord.
  • Recording with F12 cannot be stopped, or the frame's stuck.
  • Graphical errors on maximum settings on some GPUs
  • Intense lag for some users
  • Roblox Player maxxing out all your cores at 100% usage for some people
  • Roblox Player might not have working sound (this may be fixed by installing 32-bit audio packages, e.g. lib32-alsa-plugins, lib32-libpulse, lib32-openal on Arch)



Running Roblox Studio using Wine is also not perfect, and you can encounter the following bugs:

  • Various Unicode characters (such as emojis, for example) cause Roblox Studio to crash
  • Login authentication errors
  • Shadows flickering when using DirectX 11, unless EagerBulkExecution is turned on in the Studio settings
  • Anti-aliasing doesn't work on graphics 8 and above when using DirectX 11
  • Flickering occurs on plugin GUIs and recently updated UI elements (such as Toolbox, Game Settings and Publish to Roblox screen for example) when using OpenGL
  • Studio crashes on startup when using Vulkan

When Roblox worked using Wine pre-2015, there were bugs present, including the following:

  • The Shift or Caps Lock keys do not work when using the chat window.
  • Sometimes after joining, you may get a lag spike and can only move in one direction.
  • Roblox Studio crashes when loading a game.
  • The sound may be unbearably glitchy on a few games.
  • When moving your camera while the player is moving, your mouse will be stuck moving the camera (this can be fixed by right-clicking a few times quickly)
  • Sometimes you can see a window saying "RobloxPlayerBeta.exe has encountered a serious error and must close!" message.

History

On July 28, 2012, John Shedletsky confirmed that progress on Roblox on Linux was 95% complete. Shedletsky claimed that the problem with Linux is the poor driver support. Another blog post (since deleted) by Shedletsky claimed that they could spend months on Linux or they could work on a highly requested feature.

"We’re probably 95% of the way to a Linux port, now that we’ve all the work necessary to port Roblox to MacOS – 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. ― John Shedletsky, Responding to User Feedback v6

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. ― John Shedletsky, Feedback Loop: BLOXcast Edition"

Roblox has been tested multiple times, with success until 2015. On May 15, 2015, Roblox received a "Gold" rating in the Wine App Database[3]. As of July 22, 2015, Roblox games shut down after loading the place. According to the Roblox Linux Wrapper GitHub Issue Tracker page, Wine seemed to have networking issues, others speculated that Roblox was detecting Wine as cheating software, and others were saying that an OS lock is in place, preventing Wine from running Roblox.[4] Presumably, it was said that Roblox's anti-cheat was treating Wine as if it was an exploit.[5]

However, in June 11, 2021, a user by the name of ImSlappy826 (Slappy826#0001 on Discord) has found a patch which was one singular line. The patch implements the ZwFilterToken function, which was supposed to be implemented along NtFilterToken, into ntdll. It allowed the Roblox Player to work using Wine again. As of the time of this edit (June 13th, 2021), it's still working.





Currently, Roblox has not been officially been released for Linux, and during the RDC 2020 Q&A session, it was confirmed that there were currently no plans to bring Roblox to Linux due to its small desktop market share. Although, Arseny Kapoulkine has said that there will be plans if "Linux becomes the platform of choice for gamers".[6][7]

References

Community content is available under CC-BY-SA unless otherwise noted.