MelonLoader can be used on Linux in two different ways. It has native Linux support for games that include a Linux build, and it works with Windows games that run through Proton. This article provides a complete explanation of both methods and includes a full step by step installation guide for Proton, which is the most common method for Linux and Steam Deck users.
Native Linux Support
Native Linux support was added starting with MelonLoader version 0.6.0. This method applies only to Unity games that have a native Linux version. If a game ships only a Windows .exe, use Proton instead.
Key Points Of Native Support
- MelonLoader uses a bootstrap library called libversion.so instead of version.dll
- You must use LD_PRELOAD to load libversion.so
- You must add the game directory to LD_LIBRARY_PATH
- Il2Cpp games require the .NET 6 Runtime or higher installed on your Linux system
- Some Il2Cpp helper executables require execute permissions
Required Environment Variables
Steam launch option example for a native Linux Unity game:
LD_LIBRARY_PATH=”/full/path/to/game:$LD_LIBRARY_PATH” LD_PRELOAD=”libversion.so” %command%
Replace the path with your actual game directory.
Install The .NET Runtime
Il2Cpp based games need .NET 6 runtime or higher.
Examples:
Debian or Ubuntu
sudo apt install dotnet-runtime-6.0
Arch or Steam Deck
sudo pacman -S dotnet-runtime
Fix Execute Permission Problems
Some Il2Cpp tools require chmod permissions. Example:
chmod +x /path/to/game/MelonLoader/Dependencies/Il2CppAssemblyGenerator/Cpp2IL/Cpp2IL
Using MelonLoader Through Proton
The Proton method is the most common for Linux. Proton runs Windows Unity games inside a Windows like environment. Because of this you MUST use the Windows MelonLoader zip file for Proton installs.
Why Windows MelonLoader Files Are Required
- Proton loads Windows style DLL files
- A Proton prefix behaves like Windows
- Linux MelonLoader files will not work with Proton
Download Windows ZIP files from the official releases page.
Prerequisites
Before starting, install these:
- Steam installed and the game configured to use Proton
- Protontricks installed to manage Windows dependencies inside the Proton prefix
- Windows MelonLoader ZIP downloaded
Install Protontricks
Debian or Ubuntu
sudo apt install protontricks
Arch or Steam Deck
Install using Discover (Flatpak) or AUR package
yay -S protontricks
Step 1 Find Your Game App ID
You need the App ID to tell Protontricks which prefix to install dependencies into.
Methods:
Method A Check Steam Store URL
Example:
https://store.steampowered.com/app/1091500/
App ID is 1091500
Method B Search For Prefix
protontricks -s “Game Name”
Step 2 Create The Proton Prefix
Run the game once from Steam. This creates the Proton prefix folder. Do not skip this step or Protontricks will not work.
Step 3 Install Dotnet Desktop Runtime In The Proton Prefix
Most Il2Cpp games require dotnetdesktop6 inside the prefix.
Run:
protontricks [APPID] dotnetdesktop6
Replace [APPID] with the real App ID.
Follow the Windows installer popups until complete.
Step 4 Install Visual C Plus Plus Redistributables
Some games require vcrun packages.
Example:
protontricks [APPID] vcrun2022
Step 5 Install MelonLoader Manually Into The Proton Prefix
Proton prefix path example:
~/.steam/steam/steamapps/compatdata/[APPID]/pfx/drive_c/Program Files/GameFolder/
Copy These Files From MelonLoader ZIP
- The MelonLoader folder
- version.dll
Place them in the game root folder next to the game executable.
Step 6 Set The Required Steam Launch Option
This is the most important step. Without this, MelonLoader will NEVER load.
Launch Options:
WINEDLLOVERRIDES=”version=n,b” %command%
Explanation:
- version=n,b forces Proton to load the version.dll file inside the game directory
- n means native
- b means fallback to builtin if needed
Step 7 First Launch And Setup
Launch the game from Steam.
What happens:
- MelonLoader initializes inside the Proton prefix
- It creates the Mods and Plugins folders
- It may take extra time on the first boot
When everything is ready, close the game.
Step 8 Install Mods
Place mod DLL files into:
GameFolder/MelonLoader/Mods
or
GameFolder/MelonLoader/Plugins
Relaunch the game.
Troubleshooting
Below are the most common issues and their solutions.
MelonLoader Console Does Not Appear
- Confirm launch options include
WINEDLLOVERRIDES=”version=n,b” %command% - Confirm version.dll is in the correct Proton prefix game folder
Game Crashes On Startup
- Reinstall dotnetdesktop6:
protontricks [APPID] dotnetdesktop6 - Install vcrun packages if required
Mods Do Not Load
- Confirm mods are placed inside the correct Mods or Plugins folder
- Confirm mod compatibility with game version
White Screen Or Black Screen
- Wait up to one minute
- If still stuck, switch to a different Proton version
- Proton GE often fixes early visual issues
Native Linux Il2Cpp Tools No Permission
- Run chmod +x on the Cpp2IL file
Steam Deck Notes
Steam Deck uses SteamOS, which is Linux. Windows only games must use Proton.
For Steam Deck:
- Switch to Desktop Mode
- Install protontricks
- Follow the same steps listed above
- Use Proton GE for better compatibility
Native Linux Quick Checklist
- Install .NET 6 runtime
- Use libversion.so with LD_PRELOAD
- Add game folder to LD_LIBRARY_PATH
- Fix permissions on Il2Cpp tools
Proton Quick Checklist
- Install protontricks
- Run game once to generate prefix
- Install dotnetdesktop6 into prefix
- Install vcrun2022 if needed
- Extract Windows MelonLoader files into prefix
- Use launch option WINEDLLOVERRIDES=”version=n,b” %command%
Conclusion
MelonLoader works on Linux both natively and through Proton. Native Linux games require LD_PRELOAD and the .NET runtime, while Proton games require Windows MelonLoader files, Protontricks, and the required DLL override. Following the steps in this guide ensures a stable and fully functional MelonLoader installation on Linux or the Steam Deck.
Official websites
https://melonloader.pro
https://melonloader.pro/download-melonloader/
GitHub releases: https://github.com/LavaGang/MelonLoader/releases