Running Bannerlord Server on Linux
What you need to know before running a Bannerlord dedicated server on Linux — BattlEye limitations, the native .NET approach, and a systemd service example.
Official Support Status
TaleWorlds provides a Linux-compatible server DLL (TaleWorlds.Starter.DotNetCore.Linux.dll) but does not officially support Linux dedicated servers. More critically:
BattlEye anti-cheat blocks multiplayer connections on Wine and Proton-hosted servers. Players attempting to join a public server running under Wine will be kicked by BattlEye.
Recommendation: Use a Windows host for public multiplayer servers. Linux hosting is suitable for private servers, LAN events, or modded servers where BattlEye is disabled.
Requirements for Linux Hosting
- .NET 6.0 runtime — required for the Linux DLL.
sudo apt-get install dotnet-runtime-6.0 - The server files installed via SteamCMD (App ID
1863440). - A valid auth token (same as Windows — generated in the game client).
Startup Command
dotnet TaleWorlds.Starter.DotNetCore.Linux.dll \
_MODULES_*Native*Multiplayer* \
/dedicatedcustomserverconfigfile default.txt \
/dedicatedcustomserverauthtoken YOUR_TOKEN \
/tickrate 90 \
/dedicatedcustomserver 7210 USER 0 \
/playerhosteddedicatedserver
Run this from the server's installation directory. After launch, type start_game in the console to make the server visible.
systemd Service
To run the server as a managed systemd service:
[Unit]
Description=Mount & Blade II: Bannerlord Dedicated Server
After=network.target
[Service]
Type=simple
User=bannerlord
WorkingDirectory=/opt/bannerlord
ExecStart=/usr/bin/dotnet TaleWorlds.Starter.DotNetCore.Linux.dll \
_MODULES_*Native*Multiplayer* \
/dedicatedcustomserverconfigfile default.txt \
/dedicatedcustomserverauthtoken YOUR_TOKEN \
/tickrate 90 \
/dedicatedcustomserver 7210 USER 0 \
/playerhosteddedicatedserver
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Save to /etc/systemd/system/bannerlord.service, then:
systemctl daemon-reload
systemctl enable bannerlord
systemctl start bannerlord
Note: start_game must still be run in the console after the process starts. With systemd, attach to the process stdin or use the web admin panel to issue the command.
BattlEye on Linux
BattlEye does not have a Linux client. Players connecting from Linux game clients to any Bannerlord server may also experience issues depending on their BattlEye configuration. If running a private server and BattlEye is causing problems, check TaleWorlds documentation for the /nobattleye flag — availability depends on the current game version.
When to Use Linux Hosting
Linux hosting is appropriate when:
- Running a private server for a closed group of players who are aware of the limitations.
- Hosting a modded server with mods that replace the BattlEye-checked game modes.
- Running a development or test server where browser visibility is not required.
For a public-facing ranked or community server, use Windows.