-
-
Notifications
You must be signed in to change notification settings - Fork 88
Linux Environment Setup
-
Clone the repo to a folder of some kind, for example: ~/Documents/Repos/Bannerlord/
-
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, and261550_c2At this point, your folder structure should look similar to:
Bannerlord/ ├── BannerlordCoop/ └── compatdata/ ├── 261550_s/ ├── 261550_c1/ └── 261550_c2/ -
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.
-
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.
-
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 ./sourceThis will create the required link for the project to find TaleWorld DLLs. At this point, you should be able to build the project.
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.
-
In Rider, go to Run / Debug configurations → Edit configurations → Add a .NET Executable configuration → Name it ProtonCoop or similar.
-
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
-
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.
-
Similarly, set the working directory to
~/Documents/Repos/Bannerlord/BannerlordCoop/mb2/bin/Win64_Shipping_Client
-
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_sAgain replace user, and the project path.
-
Click Apply and duplicate the run configuration twice. Name the first one "ProtonClientDebug1" and the second "ProtonClientDebug2".
- In ProtonClientDebug1, replace everything after, but not including
/singleplayerwith:/client /platformId testclient1 _MODULES_*Native*SandBoxCore*SandBox*StoryMode*Coop*_MODULES_. - Edit the environment variables to change STEAM_COMPAT_DATA_PATH. We will change
261550_sto261550_c1
ProtonClientDebug2 is the mostly the same, except changing
testclient1totestclient2in the program args and261550_c1to261550_c2in the environment variables
- In ProtonClientDebug1, replace everything after, but not including
-
The last thing to do is verify each configuration has "Build Solution" under Before Launch options.
-
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.