Grapejuice - Easily run Roblox on Linux

What is Grapejuice?

:tada: Roblox can now run on Linux using Wine! :tada:

Roblox Studio has worked for quite a while now. Recently a patch was submitted to Wine that makes Roblox Player work as well. Make sure that if you want the Player to run, that your Wine version is at least 7.0.

Managing Roblox in Wine can be quite the hassle, but that’s where Grapejuice comes in. Grapejuice is a modern wrapper/management application that makes running Roblox through Wine easy. The goal of the project is in fact making it so that as little user interaction as possible is required.

The project is publicly available on my GitLab profile: https://gitlab.com/brinkervii/grapejuice

The program requirements and installation requirements are listed in the README file. Feel free to post critique if anything is too complicated or too vague.

What is included?

A set of protocol and file handlers: Grapejuice will install a set of protocol and file type handlers. These allow you to open games from place files or straight from the website. After installation, Roblox is directly available through your applications menu as well.

A management application: Grapejuice’s graphical frontend gives you fine-grained control over how you want to run Roblox on Linux.

Changelog

I will continue to update this post with all relevant changes

Update 8

Grapejuice has worked great for the past couple of years, but due to recent developments the project will probably be on pause for the time coming. I’ll keep the repository around for the people that still want to try run Roblox Studio. More is explained in depth in a response down in the thread.

Previous updates

Update 1

Grapejuice as it is now, is a standalone application that is installed in a local user directory and therefore does not benefit from a system package manager. The application is now versioned and has its own updater.

Update 2

I’ve made some changes that fixes an issue that previously caused new installations of Roblox Studio to hang or crash. The maintenance tab now also has a shortcut to switch Roblox Studio’s graphics mode to OpenGL because some graphics modes may seize up the application in some circumstances.

Update 3

PSA: Roblox has added a captcha popup to the Studio login screen, this makes it crash when it is run with Wine. If this happens to you, you can authenticate studio by editing one of your games from the website. You should only have to do this once.

Update 4

I had some spare time to work on the project, and I’ve personally been wanting a simple FFlag editor for a while. Messing with unreleased features can be fun. Now it is way more convenient to break Studio :slight_smile:

Update 5

Roblox Studio now refuses to run when it detects a version of DirectX that is equal to 9. Wine itself hardcodes this version to 9. So without any modifications to Wine, Studio will no longer run. I just pushed out Grapejuice version 2.3.9, which adds a workaround for this problem. The workaround basically just disables Studio’s ability to check for DirectX 9, and Studio doesn’t seem to mind. So if you are running into the issue where Roblox Studio is complaining about DirectX, please upgrade!

Update 6

Grapejuice has gotten a brand new logo courtesy of @Gibfoot! Since the Player has started working, a lot more people have been using Grapejuice. For that reason a lot of internal changes were made. The internals are now a lot simpler. A lot of debugging features have been disabled by default or have been removed.

A launcher for the beta Roblox App will now also be created when you install Grapejuice. There are some bugs with the app. The most prevalent issue is that the signin page is unable to display the captcha. You can get fast this by just letting the login fail once. The second authentication attempt will send you a 2SA code.

Update 7

The next version of Grapejuice is finally here! It took a while, but Grapejuice 4 is finally finished. This new version of Grapejuice has a completely redesigned user interface and comes with a bunch of new features!

Grapejuice can now manage multiple wineprefixes. As time went on, it became apparent that a lot of Wine fixes that work awesomely for the player, break Studio. So to ensure both applications can work properly on the same computer, Grapejuice will now manage at least two wineprefixes. You can now fully trick out the prefix for the player with all sorts of performance tweaks, while maintaining a stable Studio experience.

One of the primary performance tweaks is now semi-automated: Grapejuice will now attempt to set a rendering fast flag depending on what hardware you have in your computer. The default DirectX 11 renderer can perform very poorly running in Wine. Roblox’ Vulkan and OpenGL renderers perform way better on most hardware.

If you are running Roblox on a laptop, things might get even better! Grapejuice will now tell Wine to use the most powerful GPU it can find that’s in your computer. You will no longer have to set this manually, or suffer from poor performance because it is trying to run Roblox on an incredibly weak intergrated GPU. This feature is also exposed through the new settings interface:

Screenshot_2021-12-22_10-01-46

Nothing is perfect, and neither is Grapejuice. A new exception viewer graphical interface has been added. This window will show whenever Grapejuice runs into a problem. It will now also pop up if something goes wrong when launching Roblox from the website, so you’re no longer left hanging when something goes wrong while starting Roblox.

Historically the settings section in the Grapejuice UI was severely lacking. The new user interface now exposes most of the settings available.

Discord

I’ve set up a Discord server for people who would like to chat with others on how to get or keep Roblox working under Wine.

388 Likes

Nice job! By the way, have you tried using Player under WINE yet? I’m curious to know if a recent update in either Roblox or WINE has changed the situation for the better or worse.

13 Likes

So far, from all I know, it is currently stuck due to the anti-cheat. After I had done a bunch of work, I kept getting errors and getting kicked for “Unexpected Client Behavior.”

We are closer though.

13 Likes

This is cool. Thanks, Brinker.

I had actually managed to get Studio to work under Linux quite recently, but it wasn’t usable due to the networking not working correctly. Hopefully with this, we can be one step closer to running ROBLOX in full.

Native support would always be nicer, though.

7 Likes

From what I’ve gathered playing around, it seems that Roblox and Wine have some wonky interactions when it comes to raw/low level network sockets.

I’ve been toying around with the Wine source code recently and I might be able to patch out some of the issues when I have more time.

7 Likes

I have been researching a way to fix test server way before before you made this, but I’m not sure if this can fix:
https://github.com/roblox-linux-wrapper/roblox-linux-wrapper/issues/30#issuecomment-318925939 (last comment)

6 Likes

Interesting… Very interesting, I remember when I initially tried to run Studio on Linux (thru Wine) it didn’t work very well (namely a lot of crashes and the inability to open saved places by double-clicking on them) and the frustrations of maintaining a WINE installation. But with this? Heyy I might give it a go (I’m a long time Linux tinkerer…

But this might mean that running a full installation on Linux is very close (I wonder if Studio can run in ReactOS?) if only Linux was officially supported… Heck the client runs on Android which is guess what? Based on the Linux Kernel (yes)… Official Linux support is unlikely but yet so close…

11 Likes

It seems that that comment is absolutely right. I’ve made a custom build of Wine with that line commented out and test server works with it. I’ll try making a proper patch!

13 Likes

This is a very interesting project, and good news for those who use Linux. Even though I’m not among them, I’ll keep an eye on this! Impressive work!

Also out of curiosity, does the Roblox Player work with this too?

15 Likes

Is there a way you could package that build for debian based systems or will that be included in the project? Can you direct me to documentation which have parameters on your application if I’d like to automate and make scripts?

2 Likes

Isn’t Qt supposed to handle all that cross platform UI stuff though?

3 Likes

There are plenty of threads on the devforum discussing a native Linux port. Can we not derail this thread with that topic?

6 Likes

I am curious, do you know how well roblox would work with proton? It’s valve’s branch of wine basically, and they’re making improvements to it so games on steam work on linux, i wonder if roblox would work better on it

9 Likes

This is awesome! Also, what Elttob said, does this work with the Roblox client too? If it does, I would completely swap windows to Linux. ZorinOS in exact.

3 Likes

As I stated in the project README file, the game client does not work.

I have not tested with proton yet.

I want to mention though, I am planning to add a feature that lets you change the Wine version used.

1 Like

Are you planning to create a program for the game client any time soon? It would be great.

4 Likes

Hey! I apologize for being a bit of a noob but I’m having trouble installing this on Ubuntu. It appears to be partially related to this error since Grapejuice installs it’s own version of pip: https://github.com/pypa/pip/issues/5447

I’ve tried manually installing each package, modify requirements.txt, etc and I managed to get the Grapejuice icon to show up but it wasn’t executing so I decided to start from scratch again.

I’m not sure if there’s an easy fix for this that I’m missing but I am hoping that I can get this working. Thank you for your time and effort making this wrapper by the way :smile:

2 Likes

I’m positive that the anti-cheat problem could be bypassed. On the other hand, it’s morally questionable if such a bypass should be released, and for how long it would be functional until being patched.

3 Likes

There were indeed some problems with it installing on Ubuntu. I’ve made changes to fix this. You should be able to install the updated version.