ServerSizer

Games Don't Starve Together

Don't Starve Together server requirements

Build 25643504, 2026-10-06. Native Linux server. Steam SteamDB

Requirements

Our benchmarkKleiLOW.MSESAGAMESXGamingServer
CPU18% of one core, idleFast single core per shardHigher with caves
RAM2.2 GB idle, 3.3 GB peak4 GB vanilla 2-player, 8 GB with caves and mods, 16 GB overkill1-2 GB per shard, about 4 GB per cluster4 GB min with caves
Disk4.3 GB install
NetworkUDP 10999 and 11000UDP 10999 game per shard, UDP 10888 shard link, Steam ports 8766 and 27016About 1 Mbps for 6 players; UDP per shardUDP 10999 plus shard portsSecond shard on its own port, e.g. 11000
OSLinux, nativeUbuntu, 32 or 64-bit (2016 guide)

RAM by players

LOW.MS
4 to 8 GB
  • Recommended
  • Community
  • LOW.MS: "A 4 GB VPS will happily run a vanilla 2-player world. 8 GB is comfortable once you enable caves and add a reasonable mod list."

Memory over time

0 GB1 GB2 GB3 GB4 GB5 GB3.3 GB0 min30 min0 GB1 GB2 GB3 GB4 GB5 GB3.3 GB0 min
  • In use
  • Peak, with cache
Raw data (CSV)

Community results

Loading...

Add result
Hosting
RAM headroom
Privacy

Pending

  • 24 hours idle
  • One player for 30 minutes
  • Online cluster with token
  • Master shard alone

Ports

PortProtocolUseOur server
10999UDPGame traffic, Master shard (server_port).Open
11000UDPGame traffic, Caves shard (server_port).Open
10888UDPShard link (master_port), loopback.Local only
8766, 8767UDPSteam authentication, one per shard.Local only
27016, 27017UDPSteam master server, one per shard.Local only

Forward UDP 10999 and 11000, one per shard.

Docker setup

5 steps
  1. Download

    Free anonymous download, Steam app 343050, about 4.3 GB.

    docker volume create dst_files
    docker run --rm -v dst_files:/data steamcmd/steamcmd:latest \
      +@sSteamCmdForcePlatformType linux +force_install_dir /data \
      +login anonymous +app_info_update 1 +app_update 343050 validate +quit
  2. Image

    game_runtime as on the Palworld page, plus libcurl-gnutls.

    printf 'FROM ubuntu:24.04\nRUN apt-get update && apt-get install -y --no-install-recommends ca-certificates libcurl4t64 && rm -rf /var/lib/apt/lists/*\nUSER ubuntu\n' | docker build -t game_runtime -
    printf 'FROM game_runtime\nUSER root\nRUN apt-get update && apt-get install -y --no-install-recommends libcurl3t64-gnutls && rm -rf /var/lib/apt/lists/*\nUSER ubuntu\n' | docker build -t game_dst -
  3. Cluster files

    Offline cluster with Caves. Add cluster_token.txt and remove offline_cluster to go online.

    docker volume create dst_home
    docker run --rm -v dst_home:/h alpine sh -c '
    C=/h/.klei/DoNotStarveTogether/Cluster_1; mkdir -p $C/Master $C/Caves
    printf "[GAMEPLAY]\ngame_mode = survival\n\n[NETWORK]\ncluster_name = My server\noffline_cluster = true\n\n[MISC]\nconsole_enabled = true\n\n[SHARD]\nshard_enabled = true\nbind_ip = 127.0.0.1\nmaster_ip = 127.0.0.1\nmaster_port = 10888\ncluster_key = change-me\n" > $C/cluster.ini
    printf "[NETWORK]\nserver_port = 10999\n\n[SHARD]\nis_master = true\n" > $C/Master/server.ini
    printf "[NETWORK]\nserver_port = 11000\n\n[SHARD]\nis_master = false\nname = Caves\n\n[STEAM]\nmaster_server_port = 27017\nauthentication_port = 8767\n" > $C/Caves/server.ini
    echo "return { override_enabled = true, preset = \"SURVIVAL_TOGETHER\" }" > $C/Master/worldgenoverride.lua
    echo "return { override_enabled = true, preset = \"DST_CAVE\" }" > $C/Caves/worldgenoverride.lua
    chown -R 1000:1000 /h'
  4. Run

    Exact bench command: Caves in the background, Master in front. Add -p 10999-11000:10999-11000/udp to publish the ports.

    docker run -di --name dst --init --memory 4g -v dst_files:/dst -v dst_home:/home/ubuntu -w /dst/bin64 game_dst sh -c '
      ./dontstarve_dedicated_server_nullrenderer_x64 -console -cluster Cluster_1 -shard Caves -monitor_parent_process $$ >/dev/null 2>&1 &
      exec ./dontstarve_dedicated_server_nullrenderer_x64 -console -cluster Cluster_1 -shard Master'
  5. Ready line

    Both shards linked 17.7 seconds after container start, including world generation.

    docker logs -f dst 2>&1 | grep -m1 'Secondary Caves.*ready'

Settings

11 settings

Files: cluster.ini in ~/.klei/DoNotStarveTogether/Cluster_1, server.ini in each shard folder.

SettingWhat it does
game_mode = survivalcluster.ini [GAMEPLAY]. Also endless, wilderness.
max_players = 16cluster.ini [GAMEPLAY]. Klei default.
offline_cluster = truecluster.ini [NETWORK]. Runs without a token, not listed.
cluster_namecluster.ini [NETWORK]. Name in the server list.
cluster_passwordcluster.ini [NETWORK]. Join password.
shard_enabled = truecluster.ini [SHARD]. Needed for Caves.
master_port = 10888cluster.ini [SHARD]. Shard link.
cluster_keycluster.ini [SHARD]. Shared secret between shards.
server_portserver.ini [NETWORK]. 10999 Master, 11000 Caves.
is_masterserver.ini [SHARD]. true for Master only.
cluster_token.txtKlei account token; needed online.

Troubleshooting

6 problems
Server will not start without a cluster token
Online clusters need cluster_token.txt from the Klei account page. Offline clusters run without one.
'Setting breakpad minidump AppID' is not ready
It prints early in boot. Wait for '[Shard] Secondary Caves(...) ready!' in the Master log.
'libcurl-gnutls.so.4: cannot open shared object file'
Install libcurl3t64-gnutls (Ubuntu 24.04) or libcurl3-gnutls (older releases).
docker stop takes 60 seconds, then kills the server
The server ignores SIGTERM (exit 137, no save). Type c_shutdown(true) in the console (docker attach) to save and stop.
Caves never connect
Both shards need the same cluster_key and master_port, and different server_port and Steam ports.
No 'Sim paused' line
Normal for an offline cluster: the world keeps running with nobody online.

Method

build 25643504
ServerDon't Starve Together dedicated server, Steam build 25643504, game version 756039, downloaded 2026-10-06.
Imagegame_runtime plus libcurl3t64-gnutls, uid 1000; ~/.klei on a Docker volume.
MachineAMD Ryzen 9 5950X, Proxmox VE 9, each game server in Docker inside a dedicated LXC container. 4 GB memory limit, no swap.
Commandbin64/dontstarve_dedicated_server_nullrenderer_x64 -console -cluster Cluster_1 -shard Caves -monitor_parent_process, then the same with -shard Master

Changes from defaults

  • Offline cluster (offline_cluster = true): no Klei cluster token, so not listed online.
  • Master and Caves shards in one container; numbers cover both processes.
  • Klei defaults otherwise: survival, 16 slots.

Full method

Sources