10999/UDP (game) + 10998/UDP (authentication)Don't Starve Together servers require specific ports for proper operation:
| Port | Protocol | Purpose | Required |
|---|---|---|---|
| 10999 (configurable) | UDP | Game port (server) | Yes |
| 10998 (configurable) | UDP | Authentication/master server | Yes |
| 10900 (configurable) | UDP | Cave/shard server (if using caves) | Optional |
| 27016-27017 | UDP | Steam master server queries | Optional |
UFW (Ubuntu/Debian):
sudo ufw allow 10999/udp comment 'DST Game Port'
sudo ufw allow 10998/udp comment 'DST Auth Port'
sudo ufw allow 10900/udp comment 'DST Cave Port'
sudo ufw allow 27016:27017/udp comment 'DST Steam Query'
FirewallD (CentOS/RHEL):
sudo firewall-cmd --permanent --add-port=10999/udp
sudo firewall-cmd --permanent --add-port=10998/udp
sudo firewall-cmd --permanent --add-port=10900/udp
sudo firewall-cmd --permanent --add-port=27016-27017/udp
sudo firewall-cmd --reload
iptables:
iptables -A INPUT -p udp --dport 10999 -j ACCEPT
iptables -A INPUT -p udp --dport 10998 -j ACCEPT
iptables -A INPUT -p udp --dport 10900 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 27016:27017 -j ACCEPT
sudo apt-get install steamcmd # Debian/Ubuntu
sudo yum install steamcmd # CentOS/RHELsteamcmd +login anonymous +force_install_dir /home/steam/dst +app_update 343050 validate +quit~/.klei/DoNotStarveTogether/ and create cluster folderC:\steamcmd\steamcmd +login anonymous +force_install_dir C:\dst +app_update 343050 validate +quit%USERPROFILE%\Documents\Klei\DoNotStarveTogether\DST uses a cluster-based configuration system:
~/.klei/DoNotStarveTogether/MyCluster/
├── cluster.ini # Main cluster config
├── cluster_token.txt # Server token from Klei
├── Master/ # Overworld shard
│ ├── server.ini
│ ├── worldgenoverride.lua
│ └── modoverrides.lua
└── Caves/ # Cave shard (optional)
├── server.ini
├── worldgenoverride.lua
└── modoverrides.lua
[GAMEPLAY]
game_mode = survival # survival, endless, or wilderness
max_players = 16
pvp = false
pause_when_empty = true
[NETWORK]
cluster_description = My Don't Starve Together Server
cluster_name = MyDSTServer
cluster_intention = cooperative # cooperative, competitive, social, or madness
cluster_password = # Leave blank for public
[MISC]
console_enabled = true
max_snapshots = 6 # Number of save backups
[NETWORK]
server_port = 10999
[SHARD]
is_master = true
name = Master
id = 1
[STEAM]
master_server_port = 27016
authentication_port = 10998
[NETWORK]
server_port = 10900
[SHARD]
is_master = false
name = Caves
id = 2
master_ip = 127.0.0.1
master_port = 10999
[STEAM]
master_server_port = 27017
authentication_port = 10897
return {
override_enabled = true,
preset = "SURVIVAL_TOGETHER", -- or SURVIVAL_TOGETHER_CLASSIC, SURVIVAL_DEFAULT_PLUS
overrides = {
-- World Size
world_size = "default", -- small, medium, default, huge
-- Season Settings
autumn = "default", -- noseason, veryshortseason, shortseason, default, longseason, verylongseason, random
winter = "default",
spring = "default",
summer = "default",
-- Resources
carrots = "default", -- never, rare, uncommon, default, often, mostly, always, insane
berrybush = "default",
grass = "default",
saplings = "default",
trees = "default",
-- Mobs
beefaloheat = "default",
beefalo = "default",
spiders = "default",
hounds = "default",
-- Difficulty
season_start = "default", -- autumn, winter, spring, summer
day = "default", -- default, longday, longdusk, longnight, noday, nodusk, nonight, onlyday, onlydusk, onlynight
-- Boss Locations
bearger = "default",
deerclops = "default",
goosemoose = "default",
dragonfly = "default",
-- Special Settings
specialevent = "default", -- none, default, auto
touchstone = "default",
-- Custom Settings
task_set = "default", -- default, classic
}
}
return {
-- Example: Global Positions mod
["workshop-378160973"] = { enabled = true },
-- Example: Simple Health Bar
["workshop-1207269058"] = { enabled = true },
-- Mods use Workshop IDs from Steam Workshop
}
| Parameter | Description | Example |
|---|---|---|
| -console | Enable console commands | -console |
| -cluster | Specify cluster name/path | -cluster MyCluster |
| -shard | Specify which shard to run | -shard Master |
| -monitor_parent_process | Monitor parent and exit if it dies | -monitor_parent_process #### |
| -persistent_storage_root | Set save directory | -persistent_storage_root /path/to/saves |
| -conf_dir | Configuration directory | -conf_dir DoNotStarveTogether |
cd /home/steam/dst/bin
./dontstarve_dedicated_server_nullrenderer -console -cluster MyCluster -shard Master
cd /home/steam/dst/bin
./dontstarve_dedicated_server_nullrenderer -console -cluster MyCluster -shard Caves
#!/bin/bash
cd /home/steam/dst/bin
# Start Master (Overworld)
screen -dmS dst-master ./dontstarve_dedicated_server_nullrenderer -console -cluster MyCluster -shard Master
# Wait for master to initialize
sleep 10
# Start Caves
screen -dmS dst-caves ./dontstarve_dedicated_server_nullrenderer -console -cluster MyCluster -shard Caves
Issue: Server not visible in game browser.
Solutions:
cluster_token.txt contains valid token from Kleicluster_intention is set in cluster.iniIssue: Players cannot travel to caves.
Solutions:
master_ip and master_port are correct in Caves/server.iniIssue: Dedicated server crashes immediately.
Solutions:
cluster_token.txt exists and has valid tokenIssue: Mods not loading or causing crashes.
Solutions:
dedicated_server_mods_setup.lua in mods/ folderIssue: Server fails to generate world.
Solutions:
Issue: Server using excessive memory.
Solutions:
max_players if server is overloadedmax_snapshots to save disk spacePopular mods for Don't Starve Together (via Steam Workshop):