Skip to content

Modding on a Steam Deck and Linux

Mythic edited this page Feb 7, 2023 · 7 revisions

Problems with modding on Linux

As of January 2023, there's a known bug which causes the manager to treat games relying on proton as native Linux games. This leads to the manager giving invalid usage instructions and a failure in launching the game with mods enabled.

A workaround is being tracked in #950 and a fix in #952, however for now a workaround is required for these games.

If the game you're modding does not have a native linux build or you're not using it, you might be facing this issue

Option 1: Force proton usage

The workaround in #950 implemented a way to easily force the manager to treat a game as a proton game, which is enough to fix most issues for proton games on linux.

To use this workaround, simply create an empty .forceproton file at the root of the game install directory.

Option 2: Fixing the game config

The manager relies on a game specific Steam configuration file to determine whether a game is launched through proton or run natively, and defaults to assuming a native launch. Given that the problem at hand is the failure for the manager to correctly determine a proton launch is needed, all that has to be done to fix the manager is to adjust the configuration in a way which the manager is able to understand.

This method should work as a one-time fix (for each game) and allow you to fully utilize the manager without manual steps later on.

You can make this configuration change yourself by following these steps:

Step 1: Determine the Steam App ID of the game you faced this issue with

The configuration file we need to edit uses the App ID in the file name, and as such we'll need to find out what that is. You can do so e.g. by searching for the game in SteamDB, just make sure to pick the base game installation and not a DLC/something extra!

The App ID is easily found on the game's page: image

Step 2: Locate the configuration file

By default the configuration file should be found at ~/.steam/steam/steamapps/appmanifest_{STEAM_APP_ID}.acf, just substitute ~ with your user home directory and {STEAM_APP_ID} with the App ID from Step 1.

For example, Risk of Rain 2's config file is generally found at ~/.steam/steam/steamapps/appmanifest_632360.acf, but this might differ if you have changed your Steam settings

Step 3: Edit the configuration

If you open the configuration file with a text editor, you should find a nested structure inside it along with a section called "UserConfig":

"AppState"
{
    "appid"        "632360" // This should be the App ID from Step 1
    // ... edited out ...
    "UserConfig"
    {
        "language"        "english"
    }
    // ... edited out ...
}

(the config file has more content which has been omitted in these examples)

Change the "UserConfig" section to include the following content

"AppState"
{
    // ... edited out ...
    "UserConfig"
    {
        "language"        "english"
        "platform_override_dest"        "linux"
        "platform_override_source"        "windows"
    }
    // ... edited out ...
}

Note: you don't need to change the "language" line if it's something different

Make sure to not include any odd syntax errors (such as line changes, commas, or extra braces) and save the file.

Step 4: Restart the manager

Once the game's config file has changed, the manager will need to be restarted to trigger a re-check of it. If everything was done correctly (and the problem you were having was caused by this issue in the first place), the launch modded option should now work properly!

Option 3: Partially manual mod installs (recommended for steam deck)

This method has been confirmed to work on Risk of Rain 2, ROUNDS, and Enter the Gungeon, and should work for all unity games. For this tutorial Enter the Gungeon will be used to show the steps, but the steps will be more or less the same for any other unity game.

The Steam Deck will need to be in Desktop Mode

First, you will need to download r2modman, either from the Thunderstore or the AppImage release from github Launch it and find the game you are trying to mod. IF YOU GET THIS POPUP, IGNORE IT AND CLICK CONTINUE

After that, you should be greeted with this screen Go to the online tab and install whatever mods you like, the mod manager will automatically download any dependencies required for mods you download.

The Hard Part

Once you have your mods installed, go to the settings tab, highlighted in this image: Once there, click the Browse Profile Folder option in the All tab. Your file manager should open to a screen like this

Leave the file manager open and open your steam library, and navigate to the game you are modding. To the left of the Play button, there will be a Gear icon. Click the gear icon, scroll down to Properties, and click Compatibility. Check the Box labelled "Force the use of a specific Steam Play compatibility tool", then select Proton 7.0-5 from the drop down list. Steam will have to download the Windows version of the game. Once the download is finished, go to the Local Files tab in the game properties window and select Browse. This should open the game directory in a new file manager tab.Your File manager should look like this.

Go to the File Manager tab that was opened earlier to the mod profile, and copy everything in the folder, then paste all of it in the game directory. Your game directory should now look like this

Go back to Steam and reopen the Game Properties window, and select the general tab. In the Launch Options text box, type or paste WINEDLLOVERRIDES="winhttp.dll=n,b" %command% If all steps have been done correctly, you should now be able to launch the game through Steam in Desktop Mode or Game Mode and have your mods load too.

Using WineTricks/ProtonTricks

If anyone knows how to do it this way please edit it in here

Final Notes

There are a few notable limitations of this method, mainly that r2modman does not work in Game Mode, meaning that any time a mod need to be updated, you will have to switch back to desktop mode, relaunch r2modman, download whatever updates, then copy the plugins folder from the profile into the game directory.