How to Install a Romestead Dedicated Server on Linux (SteamCMD + DepotDownloader)

Complete step-by-step Linux install guide for Romestead's official .NET 8 dedicated server tool using DepotDownloader — with all the gotchas.

If you want full control over your Romestead world — or you just like running things yourself — Beartwigs ships an official standalone dedicated server tool that runs on Linux. Steam app id 4763510, a cross-platform .NET 8 binary, default UDP port 8050. Here’s the actual install path that works, with no shortcuts skipped.

What You’ll Need

  • A Linux VPS or bare-metal server (Ubuntu 22.04+ recommended, Debian works equivalently)
  • Root or sudo access
  • At least 2 CPU cores, 4 GB RAM, 10 GB storage for a small group; 4+ cores and 8 GB for a full 1-8 player lobby
  • An open UDP port — default is 8050
  • Comfort with the command line

Step 1 — Install Dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl ca-certificates unzip procps libicu-dev wget screen ufw

The libicu-dev package is the one most guides miss — without it, .NET fails on startup with a cryptic globalisation error.

Step 2 — Install .NET 8 Runtime

Romestead’s dedicated server is a .NET 8 application, so you need the runtime. Microsoft’s install script is the cleanest path:

curl -sL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
chmod +x /tmp/dotnet-install.sh
sudo /tmp/dotnet-install.sh --channel 8.0 --runtime dotnet --install-dir /usr/share/dotnet
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
dotnet --version

You should see something like 8.0.421. If you don’t, the symlink didn’t take — check the install directory.

Step 3 — Get DepotDownloader

Beartwigs’ official Docker setup uses DepotDownloader (not SteamCMD) to fetch the server files. SteamCMD works too, but DepotDownloader is the path the developers themselves use, so it’s what we’ll match.

cd ~
curl -sL "https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_3.4.0/DepotDownloader-linux-x64.zip" -o dd.zip
unzip dd.zip -d ~/depotdownloader
chmod +x ~/depotdownloader/DepotDownloader
rm dd.zip

Step 4 — Download the Romestead Server Files

mkdir -p ~/romestead-server
~/depotdownloader/DepotDownloader \
    -app 4763510 \
    -dir ~/romestead-server \
    -validate

This pulls the server binaries into ~/romestead-server/. You should see Server.dll, linux64/, and a few support folders when it finishes.

Step 5 — Create config.json

Romestead reads its settings from config.json in the server root. The dedicated server tool does not generate one for you on first boot — you need to create it:

cat > ~/romestead-server/config.json <<'EOF'
{
  "AutoStartWorldName": "World",
  "AutoCreateAndLoadWorld": true,
  "AutoCreateWorldSize": 1,
  "AutoCreateWorldSeed": null,
  "Password": "",
  "Port": 8050,
  "MaxPlayers": 8,
  "EnableCheats": false
}
EOF

All eight fields are required. Set Password to something strong if you want a private server; leave empty for open access. MaxPlayers defaults to 8 because that’s where Beartwigs balances the game — push higher only on bigger hardware.

Watch out: if AutoStartWorldName is empty AND AutoCreateAndLoadWorld is true, some early-EA builds crash with “Cancelling world creation.” Always set a name even on first boot.

Step 6 — Open the Firewall

sudo ufw allow ssh
sudo ufw allow 8050/udp
sudo ufw enable

Step 7 — Create the GameAnalytics Directory

This step trips up most people. The Romestead server uses the GameAnalytics SDK, which expects a specific directory to exist before launch — and the binary doesn’t create it. Skip this and you’ll get a DirectoryNotFoundException on startup:

mkdir -p ~/.local/share/GameAnalytics

Step 8 — Launch the Server

The server needs LD_LIBRARY_PATH set to find Steam’s native libraries, and you’ll want to run it inside screen or tmux so it survives your SSH session:

cd ~/romestead-server
export LD_LIBRARY_PATH="$HOME/romestead-server:$HOME/romestead-server/linux64:$LD_LIBRARY_PATH"
screen -dmS romestead dotnet Server.dll
screen -r romestead    # to attach and watch output; Ctrl+A then D to detach

Step 9 — Send Admin Commands

Romestead accepts admin commands on stdin. If you launched via screen, just type them in the attached session:

list                                  # show connected players
say Server restart in 5 minutes!      # broadcast
kick <PlayerName>                     # disconnect a player
ban <PlayerName>                      # permanent ban
save                                  # save the world
stop                                  # save and shut down gracefully

Step 10 — Connect

From any player’s Steam-launched Romestead client, use the direct-IP join option with your server’s address: your.server.ip:8050. If you set a password, they enter it. Done.

What This Setup Doesn’t Give You

This bare-Linux install works, but you’re now on the hook for:

  • Patching whenever Beartwigs ships an update (re-run DepotDownloader manually)
  • Backing up the world save on a schedule (write a cron job, manage rotation)
  • Monitoring for crashes and restarts (systemd unit, or your own script)
  • DDoS mitigation at the network layer
  • Sizing the server correctly for Romestead’s CPU-bound simulation

That’s the price of self-hosting. If the time cost of managing all that exceeds the cost difference vs. a managed server, that’s the threshold where most people switch. Up to you.

Need a Romestead Server?

Skip the .NET runtime setup, the SteamCMD updates, and the CPU sizing math. Get a fully managed Romestead dedicated server with one-click setup, automated world backups, AMD Ryzen 9 cores, and 24/7 support — the same official Beartwigs dedicated server tool, running on hardware sized for Romestead’s actual bottleneck.

Rent a Romestead Server →
🔥 30% OFF — code XGAMEON