In this post we’ll be setting up a dedicated Don’t Starve Together server with Caves on Ubuntu Server 18.04 for use with Windows, Mac and Linux clients. Sadly, neither Playstation nor Xbox players will be able to connect.
If you’re not sure what I’m talking about, maybe check out the Don’t Starve Together pages on the Klei web site.
Klei describes Don’t Starve Together as an uncompromising wilderness survival game, all I know is it’s alot of fun to play with friends.
Like playing the game, setting it up is a lot less stressful once you know what to do…
Preparation
Before we can begin setting up our game server, we need to install some dependencies:
dpkg --add-architecture i386;
apt install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 wget screen
New user
Create a new user to install all the relevant game files into – this keeps file management easy and means you can easily remove the installation at a later date if you need to.
adduser dont-starve
Switch to the new user:
su - dont-starve
SteamCMD install
Don’t Starve is downloaded and updated from the Steam platform. To do this we need to install the SteamCMD package.
First let’s make a folder for it to live in:
mkdir -p ~/steamcmd/
cd ~/steamcmd/
Download and unpack the SteamCMD package:
wget "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz"
tar -xvzf steamcmd_linux.tar.gz
We’re done with SteamCMD for now, head back to the home root:
cd ~
Get cluster token and cluster config
To configure your Don’t Starve Together server you should now head over to the Klei accounts website: https://accounts.klei.com/
At the bottom of the DST page, you can create a new server:

Once the new server has been created you’ll need to configure it. You can do this manually but it saves you alot of headaches to just use the wizard – click the `Configure` link under your new server key:

Choose some settings that make sense to you, you can always change these at a later date in your config files if you need to.
Once filled in you can download the Zip archive, extract the content, and place the folder `MyDediServer` inside ~/.klei/DoNotStarveTogether/
Startup script
To start your game server you’ll need a startup script – create a new file in your home root:
vi ~/run_dedicated_servers.sh
Drop the following into this file:
#!/bin/bash
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="MyDediServer"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"
function fail()
{
echo Error: "$@" >&2
exit 1
}
function check_for_file()
{
if [ ! -e "$1" ]; then
fail "Missing file: $1"
fi
}
cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"
check_for_file "steamcmd.sh"
check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 343050 +quit
check_for_file "$install_dir/bin"
cd "$install_dir/bin" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
"${run_shared[@]}" -shard Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" -shard Master | sed 's/^/Master: /'
Save the file and make it executable:
chmod u+x ~/run_dedicated_servers.sh
Starting your server
If you are staying in your terminal screen while you play, you can simply run the bash script directly:
~/run_dedicated_server.sh
This will update your server and start it up ready to connect. You’ll see lots of text on the screen as it starts, this is the game console. Be aware that if you close your terminal window or disconnect from SSH you will also close your running game server.
If you want to start your server without entering the console, so you can close your terminal or SSH connection, then use screen
like below – where DST is just a easily remembered name for the screen session:
screen -S DST -d -m ~/run_dedicated_servers.sh
To view the game console later, use the following command:
screen -d -r DST
Shutting down your server
From the game console you can shutdown your server using ctrl + c
if needed.