Instructions for Heroic Games Launcher
Hi, a few weeks ago I discovered this project, and it was incredibly helpful in getting BakkesMod (BM) up and running. I installed Rocket League (RL) using the Heroic Games Launcher (HGL), and since this guide is more oriented towards Steam, I encountered some challenges that I managed to work around. Now that BM is functioning properly, I wanted to share the information I've gathered from this and other guides in the hope of helping someone else. I won't cover the installation of RL.
To the project owner: I'm not sure if this is the best way to share knowledge or if I should create a fork or a pull request, I'm not a developer. I kindly ask for your patience.
Heroic Games Launcher installation
First of all, I initially tried with the flatpak version, however, as it introduces some level of insulation, there are extra steps to take, but I am very lazy and busy so I decided to uninstall the Flatpak version and reinstall the Arch User Repository executable. For distributions different from Arch, I suggest you to visit the installation page of HGL, or to search further to get the Flatpak version working.
Wine installation and Wine path
Once installed HGL, I launched it and selected "Wine Manager" in the sidebar (1), then "WINE-GE" at the top (2) and then I installed Wine-GE-Latest (3). Once finished, from here you can also see the Wine path by clicking in the folder icon under the column "Action" (4).
A file manager will open in the path
of all wine versions. Enter the Wine-GE-latest folder, then bin and here is the wine executable.
For me, the path was ~/.config/heroic/tools/wine/Wine-GE-latest/bin/wine. I will refer to this path as <Wine_Path> from now on.
Wine prefix and its configuration
From the library section in the sidebar (1), click in the RL's settings icon (2)
then you will see the WinePrefix folder, for me it's ~/Games/Heroic/Prefixes/default/Rocket League. I will refer to this path as <WinePrefix_Path> from now on.
Scroll down in the menu and you will see a Winecfg button, click on it and a new window will open. Select Windows 10 as the Windows version.
BakkesMod installation and installation path
Download BakkesModSetup.exe from BM's site (I will suppose it's in your Downloads directory), then open a terminal and launch (replace paths before launching):
WINEFSYNC=1 WINEPREFIX="<WinePrefix_Path>" "<Wine_Path>" ~/Downloads/BakkesModSetup.exe
Follow the installation process. For me it wasn't necessary to see the whitelisting documentation, and probably that's not your case too.
During the installation, the BakkesMod.exe path should be showed, anyway it's something like
<WinePrefix_Path>/drive_c/Program\ Files/BakkesMod/BakkesMod.exe by default. I will refer to this path as <BM_Path> from now on.
BakkesMod configuration
Open a terminal and run:
cd <WinePrefix_Path>/drive_c/ProgramData
mkdir -p Epic/EpicGamesLauncher/Data/Manifests
Someone suggests to write a new file inside the Manifests folder just made, but for me it wasn't necessary as the a file .item autogenerated the first time I launched BM.
BakkesMod launch (Manual)
First of all, launch RL, then from a separate terminal (I suggest you to use a Virtual Desktop setup with at least 2 workspaces, as shown here for example: https://itsfoss.com/ubuntu-workspaces/) run:
WINEFSYNC=1 WINEPREFIX="<WinePrefix_Path>" "<Wine_Path>" <BM_Path>
A window will open. Click yes everytime it asks to do an update. If everything goes well, it won't be needed to uncheck Enable Safe Mode in BM's settings.
Update! BakkesMod launch (Automatic)
Thanks to @256shadesofgrey for his guide. Basically:
- Launch HGL from a terminal (by typing Heroic, at least on Arch). You'll see some debug messages in the terminal.
- Launch RL; in the terminal, you'll see something like this:
(22:08:38) INFO: [Legendary]: Launching Rocket League®: HEROIC_APP_NAME=Sugar HEROIC_APP_RUNNER=legendary GAMEID=umu-0 HEROIC_APP_SOURCE=epic STORE=egs STEAM_COMPAT_INSTALL_PATH=/home/<user>/Games/Heroic/rocketleague WINEFSYNC=1 LD_PRELOAD= WINEPREFIX="/home/<user>/Games/Heroic/Prefixes/default/Rocket League" WINEDLLOVERRIDES=winemenubuilder.exe=d WINE_FULLSCREEN_FSR=0 WINEESYNC=1 DXVK_ENABLE_NVAPI=1 DXVK_NVAPI_ALLOW_OTHER_DRIVERS=1 PROTON_EAC_RUNTIME=/home/<user>/.config/heroic/tools/runtimes/eac_runtime PROTON_BATTLEYE_RUNTIME=/home/<user>/.config/heroic/tools/runtimes/battleye_runtime ORIG_LD_LIBRARY_PATH= LD_LIBRARY_PATH=/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib64:/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib GST_PLUGIN_SYSTEM_PATH_1_0=/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib64/gstreamer-1.0:/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib/gstreamer-1.0 WINEDLLPATH=/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib64/wine:/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib/wine LEGENDARY_CONFIG_PATH=/home/<user>/.config/heroic/legendaryConfig/legendary /opt/Heroic/resources/app.asar.unpacked/build/bin/x64/linux/legendary launch Sugar --wine /home/<user>/.config/heroic/tools/wine/Wine-GE-latest/bin/wine --language enNow,(22:08:38) INFO: [Legendary]: Launching Rocket League®:is useless, the list of variables (i. e.VARIABLE=value) is important (I'll refer to it as <List_of_variables> from now on) and also the line/opt/Heroic/resources/app.asar.unpacked/build/bin/x64/linux/legendary launch Sugar --wine /home/<user>/.config/heroic/tools/wine/Wine-GE-latest/bin/wine --language en(I'll refer to it as <Game_launcher> from now on). - Create a new file and place it somewhere, for example I have a folder
Scriptsin the home folder. Call it something likelaunch_rocket_league.shand inside it:
#!/bin/bash
<List_of_variables> <Game_launcher> &
sleep 30 # This is necessary at least for me because otherwise RL crashes
WINEFSYNC=1 WINEPREFIX="<WinePrefix_Path>" "<Wine_Path>" <BM_Path>
For example, my launch_rocket_league.sh is:
#!/bin/bash
HEROIC_APP_NAME=Sugar HEROIC_APP_RUNNER=legendary GAMEID=umu-0 HEROIC_APP_SOURCE=epic STORE=egs STEAM_COMPAT_INSTALL_PATH=/home/<user>/Games/Heroic/rocketleague WINEFSYNC=1 LD_PRELOAD= WINEPREFIX="/home/<user>/Games/Heroic/Prefixes/default/Rocket League" WINEDLLOVERRIDES=winemenubuilder.exe=d WINE_FULLSCREEN_FSR=0 WINEESYNC=1 DXVK_ENABLE_NVAPI=1 DXVK_NVAPI_ALLOW_OTHER_DRIVERS=1 PROTON_EAC_RUNTIME=/home/<user>/.config/heroic/tools/runtimes/eac_runtime PROTON_BATTLEYE_RUNTIME=/home/<user>/.config/heroic/tools/runtimes/battleye_runtime ORIG_LD_LIBRARY_PATH= LD_LIBRARY_PATH=/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib64:/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib GST_PLUGIN_SYSTEM_PATH_1_0=/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib64/gstreamer-1.0:/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib/gstreamer-1.0 WINEDLLPATH=/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib64/wine:/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/lib/wine LEGENDARY_CONFIG_PATH=/home/<user>/.config/heroic/legendaryConfig/legendary /opt/Heroic/resources/app.asar.unpacked/build/bin/x64/linux/legendary launch Sugar --wine /home/<user>/.config/heroic/tools/wine/Wine-GE-latest/bin/wine --language en &
sleep 30
WINEFSYNC=1 WINEPREFIX="/home/<user>/Games/Heroic/Prefixes/default/Rocket League" "/home/<user>/.config/heroic/tools/wine/Wine-GE-latest/bin/wine" /home/<user>/.config/heroic/tools/wine/Wine-GE-latest/bin/wine /home/<user>/Games/Heroic/Prefixes/default/Rocket\ League/drive_c/Program\ Files/BakkesMod/BakkesMod/BakkesMod.exe
Maybe the variables definition is reduntant, but using export doesn't work for me. This is the only way I found which works.
Make sure the script is executable.
This script alone will run the game even if you don't open HGL's GUI, but we can do better.
- Open HGL, go to to the Library section and then settings (like I said in "Wine prefix and its configuration"), then advanced (1) and simply write "echo" under
Select an alternative EXE to run(2); then scroll down toSelect a script to run before the game is launchedand select the script you wrote before (3) (e.g./home/<user>/Scripts/launch_rocket_league.sh).
- Launch RL normally from HGL.
Hey! Thanks a bunch for the instructions, I found out about Heroic a couple days ago as well and was looking for ways to make BakkesMod work. Will give these a go. Cheers
Still working as of 30/09/2025.
Little side note but if you have the error "No rl instalation detected" use the method provided in the part "Update! BakkesMod launch (Automatic)", it fixed the issue for me. Also if bakkes is complaining about the mod not being up to date for me it's fine and it works anyway.
Hey there, thanks for these instructions. I was able to get Bakkesmod downloaded, however i think there may have been a bug somewhere. So i ran the "WINEFSYNC=1" command, replacing all the paths with mine, and i was stuck with the terminal not ending or doing anything. I ended up looking at the og instructions and using chmod on the bakkes setup, and then i double clicked on the setup.exe. Ran through the setup, kept install path on default, and moved on. So right now, i can open bakkesmod like normal, ofc with the mod out of date, and no RL detection. The problem is that when going to the bakkes path, it doesnt exist. I can check the path through bakkesmod by clicking on "open bakkes folder" and it pulls up a wine file system that shows bakkesmod.exe. Due to this im unable to follow either one of the bakkes launch instructions shown. If im missing something please let me know, and please be patient as im still inexperienced in linux matters. Thanks!
Hey there, thanks for these instructions. I was able to get Bakkesmod downloaded, however i think there may have been a bug somewhere.
Hi! As a general rule, if you're trying to get help, try to describe the problem in as much detail as you can, providing exact commands, terminal output, screenshots and logs wherever you possibly can and try to structure your question such that it's easy to read.
I can only try to guess as to what's the problem from the hard to read wall of text you sent. If you're trying to get help, try to structure questions so they're easy to read and understand and people will be more willing (and able) to help you.
So i ran the "WINEFSYNC=1" command, replacing all the paths with mine, and i was stuck with the terminal not ending or doing anything.
Without any further context I don't know what happened here ¯\_(ツ)_/¯
I ended up looking at the og instructions and using chmod on the bakkes setup, and then i double clicked on the setup.exe. Ran through the setup, kept install path on default, and moved on. So right now, i can open bakkesmod like normal, ofc with the mod out of date, and no RL detection.
I'm assuming that you "double clicked" on setup.exe in you file explorer. Based on that I would assume that you ran setup.exe under the default WINE_PREFIX.
You can think of prefixes as different virtual systems. You have Rocket League installed in one prefix (system) but then you probably installed BakkesMod into another prefix (system) so BakkesMod can't see Rocket League as it's running on a different system.
You have to run BakkesModSetup.exe under the same WINE_PREFIX that Rocket League is in.
The problem is that when going to the bakkes path, it doesnt exist. I can check the path through bakkesmod by clicking on "open bakkes folder" and it pulls up a wine file system that shows bakkesmod.exe.
I don't know what "bakkes path" means here, you would have to provide more context with exact commands, terminal outputs and screenshots.
If im missing something please let me know, and please be patient as im still inexperienced in linux matters. Thanks!
Lastly please don't take this the wrong way (especially the start). I'm not angry or annoyed at you for the poorly constructed question. Everyone has to start somewhere :D Feel free to ask more questions!
Explanation retry
(Sidenote this firts part is the backstory so that anyone who reads will have understanding of how im at my current status. The problem is stated after the consecutive dashes. PREEDIT: I've solved the problem. I didn't explain totally how i did, but my solution is after the 2nd set of consecutive dashes.)
Im following the Instructions for Heroic Games Launcher Provided by Valenipes.
So after following the instructions to get the file paths needed for the Bakkesmod Launch subsection of these instructions, Where i need to input:
WINEFSYNC=1 WINEPREFIX="<WinePrefix_Path>" "<Wine_Path>" <BM_Path>
My terminal ran some code and then just ended without ending. By that, i mean, a popup that said "The wine configuration in 'HeroicGames path' is being updated, and then in the terminal it ended by saying:
01c8:fixme:uiautomation:msaa_fragment_get_FragmentRoot 0000000000B9E8B8, 0000000001D9FAB0: stub!
I had to kill the terminal and create a new one, in order to continue.
Moving on, i took a look at the original Intructions by Crumbly, to see if i could glean anything. Because i was having trouble running the BakkesModSetup.exe, i followed the advice under the warning stating:
"You'll probably have to enable the executable flag for BakkesModSetup.exe.
You can do so by running chmod u+x ~/Downloads/BakkesModSetup.exe"
For some reason i decided to double click on the BakkesModSetup.exe file, and was able to install BakkesMod.
The Problem. So as of right now there's 2 problems i think. Well 3 as a result of the two.
So like on windows when i open the BakkesMod application, i can see the normal UI. There's nothing weird about it other than the "Mod is out of Date", message. Problem number One, The app is unable to locate Rocket League. Despite me using the "Manually set BakkesMod Folder" setting, under settings in the BakkesMod app, its still unable to tell when Rocket League is open.
Problem number Two, is kinda of weird. I have BakkesMod installed on my system, but it doesnt show up where it was downloaded. So when running through the BakkesModSetup.exe it prompted me for the installation path, to which i left it as the default "C:Program Files/BakkesMod".
As far as i think i understand, the C Drive should be inside the HeroicGames Rocket League Folder, (which for me is "/home/user/Games/Heroic/Prefixes/default/Rocket League/drive_c").
(This was essentially what i was trying to convey, but thanks to the advice you gave me Crumbly, i found the true BakkesMod path was actually under /home/user/.wine/drive_c/Program Files/BakkesMod.
Right now, im at the point where BakkesMod can detect Rocket League, can tell when its not injected into Rocket League DLL. And i finally Have BakkesMod working now! (Literally just figured it out while typing this.)
I guess i had to turn off safe mode in bakkesmod and it just went ahead and injected it even though Rocket League was launched first.
Small context, if i was to run BakkesMod first, which normally that's how i was told to do, Rocket League would not run, unless BakkesMod was terminated. And if i was to run Rocket League first, BakkesMod could tell that it was not injected, but would do nothing about it.
Big thanks to Crumbly for the Original guide, and the advice they gave to me using my "poorly constructed question" :D, and to Valenipes for the HGL Instructions.