Skip to content

Linux Environment Setup

onnesh edited this page Aug 12, 2026 · 3 revisions

Linux project setup

  1. Clone the repo to a folder of some kind, for example: ~/Documents/Repos/Bannerlord/

  2. In the same folder (not in BannerlordCoop project folder), create a new folder named compatdata, and in compatdata, create 3 subfolders: 261550_s, 261550_c1, and 261550_c2

    At this point, your folder structure should look similar to:

    Bannerlord/
    ├── BannerlordCoop/
    └── compatdata/
        ├── 261550_s/
        ├── 261550_c1/
        └── 261550_c2/
    
    
  3. Open the project in rider and go to File → Settings → Build, Execution, Deployment → Toolsets and Build. Verify the mono executable path and the MSBuild version are filled out. Using the dotnet 10 SDK MSBuild works fine, as does the latest version of mono.

  4. Go to steam, find Bannerlord, right click → Manager → Browse Local Files, and take note of the path. We'll be using this to make a symlink.

  5. Go to the BannerlordCoop project root folder, open a terminal and run:

    rm -rf ./mb2 &&
    ln -sfn "/path/to/bannerlord/from/earlier" ./mb2 &&
    dotnet restore ./source
    

    This will create the required link for the project to find TaleWorld DLLs. At this point, you should be able to build the project.

Build Configurations

We unfortunately cannot use the .NET project configurations to launch the game from Rider. Since we need the proton translation layer, we'll be invoking that to run the game instead by using a .NET Executable configuration.

Proton version 10.0-4 is known to work with the coop mod. You're free to try any version of course, but make sure you have a version of proton downloaded.

  1. In Rider, go to Run / Debug configurations → Edit configurations → Add a .NET Executable configuration → Name it ProtonCoop or similar.

  2. Go to steam → find Proton 10.0 in your library → Right click, Manage → Browse local files → Copy path to proton (a Python script) into the build configuration's Exe path and click Apply

  3. For the program arguments, it will look like this:

    waitforexitandrun ~/Documents/Repos/Bannerlord/BannerlordCoop/mb2/bin/Win64_Shipping_Client/Bannerlord.exe /singleplayer /server _MODULES_*Native*SandBoxCore*SandBox*StoryMode*Coop*_MODULES_
    

    Of course, replace ~/Documents/Repos/Bannerlord with where your project lives.

  4. Similarly, set the working directory to

    ~/Documents/Repos/Bannerlord/BannerlordCoop/mb2/bin/Win64_Shipping_Client
    

  5. We need to set the environment variables as well:

    STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/user/.local/share/Steam/
    STEAM_COMPAT_DATA_PATH=~/Documents/Repos/Bannerlord/compatdata/261550_s
    

    Again replace user, and the project path.

  6. Click Apply and duplicate the run configuration twice. Name the first one "ProtonClientDebug1" and the second "ProtonClientDebug2".

    1. In ProtonClientDebug1, replace everything after, but not including /singleplayer with: /client /platformId testclient1 _MODULES_*Native*SandBoxCore*SandBox*StoryMode*Coop*_MODULES_.
    2. Edit the environment variables to change STEAM_COMPAT_DATA_PATH. We will change 261550_s to 261550_c1

    ProtonClientDebug2 is the mostly the same, except changing testclient1 to testclient2 in the program args and 261550_c1 to 261550_c2 in the environment variables

  7. The last thing to do is verify each configuration has "Build Solution" under Before Launch options.

  8. Start the ProtonCoop and create a new save. Character/Game settings don't matter. Once you have loaded into the main map, save the game and name it (case-sensitive): MP

Yes, just the two letters. This is important as this is the save the dev server will look for to load. If it's not named correctly the game will never load into anything.

Clone this wiki locally