If something's wrong with your DST server, 80% of the time it's one of three things: your Klei token is stale, one of the shards didn't start, or a Workshop mod is fighting another mod. Let's walk through them. I'll cover the symptoms you'll actually see, how to pin down the cause from the Log Viewer sidebar item, and the specific fixes that work – no folk remedies, no "just reinstall".
If you haven't set the server up yet, start with the Getting Started guide. For a full config reference, the Server Configuration Guide goes deeper on cluster.ini and world generation.
Server Won't Start At All
The server boots, runs for a few seconds, then drops back to stopped. Almost always one of four things.
- Missing or expired
cluster_token.txt. Klei's online clusters refuse to run without a valid token. Open the File Manager, navigate toDoNotStarveTogether/Cluster_1/, and confirmcluster_token.txtexists, contains a single token string (starts withpds-), and has no stray newlines or quotes. If in doubt, regenerate one at accounts.klei.com under Games → Don't Starve Together → Game Servers → Add New Server and paste the fresh token in. - Invalid
cluster.inisyntax. A single mistyped section header ([GAMEPLY]instead of[GAMEPLAY]) will crash boot. Open Configuration Files and check each[SECTION]line is spelled correctly. The sidebar editor will flag obvious INI syntax errors, but typos in section names pass silently. - Shard port collision. If you're running caves and the master or caves shard ports don't match the plan's allocated range, the second shard fails to bind. Open the Log Viewer – look for
Could not bind socketorAddress already in use. The startup flags in Commandline Manager should reference the ports LOW.MS assigned you rather than Klei's defaults. - Corrupted save. Power loss during a snapshot write can leave a half-baked save that crashes on load. Take a fresh backup via Cloud Backup first, then either use
c_rollback(1)from the in-game console once the server's back up, or restore a known-good snapshot from Cloud Restore in the sidebar.
Whichever cause, the Log Viewer will tell you. Tail the log, hit restart, and watch the last 30 lines – the failure reason is almost always explicit.
Server Starts But Won't Show In The Browser
The process is running, CPU shows activity in Current Activity & Stats, but nobody can find you in the DST server browser. A few things to check, in order.
- Give it 5–10 minutes. Klei's master server list isn't instant. Fresh servers often take a bit to propagate, especially after a version bump.
- Token sanity check again. A token that was valid a month ago can get invalidated if you regenerated it on accounts.klei.com for a different cluster. If in doubt, generate a new one and paste it in.
cluster_namemust not be empty. An unnamed cluster still runs but won't index correctly in the browser. Set a real name in the[NETWORK]section ofcluster.ini.offline_cluster = truewill hide you completely – that's the whole job of that flag. Set it back tofalseif you want to be publicly listed.- Region mismatch. Players filtering by region won't see you if your server's listed elsewhere. Ask them to switch the browser region filter to "Any" and search by name.
If everything's correct and you still don't show after 15 minutes, drop the server IP in-game via c_connect("your.server.ip", <port>) from the console to prove the server itself is reachable. If that works, it's purely a listing propagation issue.
Players Can't Connect
The three failure shapes here each point to different causes.
Symptom: Connection rejected immediately with no loading screen. Likely cause: Token issue, or a whitelist/blocklist entry. Fix: Check blocklist.txt and whitelist.txt in Cluster_1/ – if whitelist.txt has entries, only those KU IDs get in. Also re-verify cluster_token.txt.
Symptom: Stuck on "Connecting to server…" indefinitely. Likely cause: Mod mismatch. Clients need the same Workshop mods the server has enabled, and if a mod is set as server-side but the client has an older version, the handshake hangs. Fix: Ask the player to let Steam verify their Workshop subscriptions, then try again. From the server side, check dedicated_server_mods_setup.lua in the install root and modoverrides.lua inside each shard – every enabled mod should have a matching ServerModSetup() line.
Symptom: Kicked within a few seconds of joining with a version error. Likely cause: Server's DST build is behind the client's. Fix: Run Steam Update from the sidebar to pull the latest dedicated server build, then restart. Klei ships patches often enough that a stale build is a common cause after breaks of a week or two.
Caves Not Connecting To Overworld
You'll see this in the Log Viewer on the caves shard: [Shard] Connection to master failed. Waiting to reconnect…. The caves process keeps retrying forever without actually joining the cluster. Go through these in order:
shard_enabled = truemust be set incluster.iniunder[SHARD]. If it's missing or false, the master never opens the inter-shard port.- Both
Master/server.iniandCaves/server.inineed a[SHARD]section, withis_master = truefor the master andis_master = falseplus a uniquenamefor the caves. - Cluster keys have to match. The
cluster_keyin[SHARD]acts as a shared secret – if the master has one value and the caves slave has another, the master rejects the connection without logging anything particularly helpful. - Inter-shard port (
master_port, default 10888) must be free and consistent. If you're running on a plan with tight port allocation, confirm the master_port you've set is within the range LOW.MS assigned you. Don't just copy10888blindly from older guides. - Matching game mode. Master and slave need to agree on
game_modein the cluster file. Mismatched modes is a niche failure but does show up. - Start order. Klei's own guides recommend starting slave shards before the master, though in practice the caves process will retry indefinitely and catch up when the master's ready. If the master never comes up, the caves never will.
Mods Causing Crashes Or Rollbacks
Mod issues show up three ways: the server crashes on world gen, the server rolls back a day every time a specific player joins, or a mod's features are silently missing.
The most reliable recovery process:
- Rename
modoverrides.luainMaster/tomodoverrides.lua.bak(same forCaves/). This disables every mod. - Restart. If the server now comes up cleanly, the problem is in your mod list.
- Reintroduce mods one at a time by copying their entries back. The one that reproduces the crash is the culprit.
- If a specific mod needs to be
admin_only, addclient = falseandadmin_only = trueto that mod's config block insidemodoverrides.lua. - If a mod won't load at all despite being in
dedicated_server_mods_setup.lua, verify the Workshop ID is still valid – mods get unpublished, and an unpublished ID will silently skip.
A surprisingly common one: editing modoverrides.lua through Configuration Files and introducing a syntax error (missing comma, unescaped quote). The Lua error goes to the server log but the server keeps running without the mods. Always tail the log after a mod config change.
World Corruption And Rollback Loops
DST keeps a rolling set of save snapshots (default five, controlled by max_snapshots in cluster.ini under [MISC]). If the latest save is corrupt, the next restart can trigger an auto-rollback, which sometimes keeps looping if each intermediate snapshot is also damaged.
To break out of it:
- From the in-game console as an admin:
c_rollback(3)steps back three snapshots in one go. You can go up tomax_snapshots. - If none of the snapshots are clean, head to Cloud Restore in the sidebar and pick a backup from before the corruption started. LOW.MS managed backups run on a separate schedule to Klei's snapshot system, so they're your fallback when the in-game snapshots are all toast.
- After restoring, run
c_save()in the console to force a fresh clean save at the top of the snapshot stack.
For deliberate save management, the File Manager lets you download the entire Cluster_1/ directory as a manual backup before risky changes (big mod installs, world-altering admin commands, season length swaps mid-game).
Performance: Lag, Tick Stutter, Memory Growth
Open Current Activity & Stats and watch CPU and RAM under load. DST is more CPU-bound than memory-bound – high tick rates with heavy mods hammer a single core.
- Drop
tick_rate. The default 15 is fine for most servers. Cranking it to 60 smooths combat but roughly triples CPU usage. If you're seeing stutter, drop it back to 30. - Oversized mods. Mods that add a minimap overlay or a ton of icons per tile are a known cause of both client lag and server memory growth. Disable them one at a time and see if the profile flattens.
- Prefab count. Hoarding servers where people plant hundreds of tooth traps, saplings, or pet tents eventually drags the tick rate down. Run
c_countprefabs("sapling")in the admin console to spot-check. Anything above a few thousand of a single prefab is worth investigating. - Memory creeping up over days. DST has historically had slow memory growth on long-running servers. A planned weekly restart is a cheap fix and catches any mod-induced leaks before they start affecting gameplay.
- Right-size the plan. If you've grown from 4 players to 10+ and are seeing sustained high CPU or RAM, the configurable resources on LOW.MS plans let you scale up a tier from the DST hosting page rather than juggling tick rate trade-offs.
Admin Commands Not Working
You've added your KU ID to adminlist.txt but c_save() or c_rollback() just does nothing. Almost always one of:
- Wrong ID format. It has to be a Klei KU ID (starts with
KU_), not your Steam ID or Steam profile name. Grab it from the in-game main menu under Account Info. - One ID per line, no quotes, no commas.
adminlist.txtis plain text – not a Lua table. - Server wasn't restarted after editing the file. The admin list is read at startup, so changes don't take effect until the next restart.
- Console is in Local mode. Press
Ctrlwhile the console is open to toggle to Remote mode. Local mode runs the command client-side, which does nothing on server-only commands likec_rollback(). console_enabled = falseincluster.ini's[MISC]section disables console input entirely. Flip it totrueand restart.
If commands still don't work after all that, the Web Console sidebar item in your panel gives you direct server-side command input – that bypasses any in-game admin flag issues and proves whether the command itself works.
For the full command reference and the advanced config options, the Server Configuration Guide has the complete tables.