19 April 2026

Don't Starve Together Server Troubleshooting

A practical troubleshooting reference for Don't Starve Together dedicated servers on LOW.MS, covering token issues, caves shard failures, mod conflicts, world rollbacks, and performance tuning.

Brauchst du einen Dont Starve Together-Server?Pläne ansehen

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.

  1. Missing or expired cluster_token.txt. Klei's online clusters refuse to run without a valid token. Open the File Manager, navigate to DoNotStarveTogether/Cluster_1/, and confirm cluster_token.txt exists, contains a single token string (starts with pds-), 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.
  2. Invalid cluster.ini syntax. 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.
  3. 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 socket or Address already in use. The startup flags in Commandline Manager should reference the ports LOW.MS assigned you rather than Klei's defaults.
  4. 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_name must not be empty. An unnamed cluster still runs but won't index correctly in the browser. Set a real name in the [NETWORK] section of cluster.ini.
  • offline_cluster = true will hide you completely – that's the whole job of that flag. Set it back to false if 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 = true must be set in cluster.ini under [SHARD]. If it's missing or false, the master never opens the inter-shard port.
  • Both Master/server.ini and Caves/server.ini need a [SHARD] section, with is_master = true for the master and is_master = false plus a unique name for the caves.
  • Cluster keys have to match. The cluster_key in [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 copy 10888 blindly from older guides.
  • Matching game mode. Master and slave need to agree on game_mode in 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:

  1. Rename modoverrides.lua in Master/ to modoverrides.lua.bak (same for Caves/). This disables every mod.
  2. Restart. If the server now comes up cleanly, the problem is in your mod list.
  3. Reintroduce mods one at a time by copying their entries back. The one that reproduces the crash is the culprit.
  4. If a specific mod needs to be admin_only, add client = false and admin_only = true to that mod's config block inside modoverrides.lua.
  5. 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 to max_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.txt is 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 Ctrl while the console is open to toggle to Remote mode. Local mode runs the command client-side, which does nothing on server-only commands like c_rollback().
  • console_enabled = false in cluster.ini's [MISC] section disables console input entirely. Flip it to true and 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.

Join our Discord to chat with our staff and community!
Join Discord