28 April 2026

Best Don't Starve Together Server Settings for Co-op Survival

Four cluster.ini and worldgenoverride presets I actually run with different DST groups – from chilled first-timers to a summer permadeath wipe. Copy, tweak, survive (or don't).

I've been running Don't Starve Together dedicated servers for years, for groups ranging from three nervous first-timers to a permanent six-person Discord that treats autumn like a tax deadline. Every group wants something different out of a DST world, and the default settings almost never land in the right place for any of them.

So rather than write yet another "here are all the cluster.ini options" post – the server configuration guide already covers that exhaustively – I want to share the four preset bundles I actually paste into new clusters. Each one is a complete cluster.ini plus a worldgenoverride.lua, tuned for a specific style of co-op.

Drop them into a fresh cluster on your DST server, regenerate the world, and you should be off. If any of the fields below look unfamiliar, the configuration guide has the exhaustive reference.

1. Relaxed group – the "my partner's friends just bought DST" preset

[GAMEPLAY]
game_mode = endless
max_players = 6
pvp = false
pause_when_empty = true
vote_enabled = true

[NETWORK]
cluster_name = Relaxed Survival
cluster_description = Chilled co-op, no wipes, bring snacks
cluster_intention = social
cluster_password =
tick_rate = 15

[MISC]
console_enabled = true
max_snapshots = 12
-- Master/worldgenoverride.lua
return {
    override_enabled = true,
    preset = "SURVIVAL_TOGETHER",
    overrides = {
        world_size = "huge",
        season_start = "autumn",
        autumn = "longseason",
        winter = "shortseason",
        spring = "default",
        summer = "shortseason",
        grass = "often",
        saplings = "often",
        flint = "often",
        berrybush = "often",
        beefalo = "often",
        hounds = "rare",
        deerclops = "rare",
        bearger = "rare",
        dragonfly = "rare",
    },
}

I ran this exact config last winter for my partner and three of her friends who'd never touched a survival game in their lives. Endless mode was non-negotiable – the first time someone dies in survival and the world resets because nobody knew to revive them, you lose the group. pause_when_empty = true means the season clock stops while everyone's at work, which matters more than people realise; it's the difference between "we had a chill weekend" and "we logged in Monday and it's already deep winter."

Bumping max_snapshots to 12 is cheap insurance. If someone accidentally burns down the base, you can roll back further without me having to explain what a snapshot is over voice chat.

2. Standard survival – the default group preset

This is what I run for my regular DST crew, five of us, weekly sessions. It's close to vanilla on purpose, because half the fun of DST is the intended difficulty curve. The tweaks are small: a slightly longer autumn so people actually get a base built, a bigger world so nobody's tripping over each other, and vote_enabled = false because I trust this group to ping me on Discord if there's a problem rather than kick each other over a misplaced fence.

[GAMEPLAY]
game_mode = survival
max_players = 8
pvp = false
pause_when_empty = false
vote_enabled = false

[NETWORK]
cluster_name = Weekly DST
cluster_description = Survival – don't be stupid, pls
cluster_intention = cooperative
cluster_password = (set one)
tick_rate = 30

[MISC]
console_enabled = true
max_snapshots = 6
return {
    override_enabled = true,
    preset = "SURVIVAL_TOGETHER",
    overrides = {
        world_size = "huge",
        season_start = "autumn",
        autumn = "longseason",
        winter = "default",
        spring = "default",
        summer = "default",
        task_set = "default",
    },
}

I push tick_rate up to 30 here because the group is spread across three countries and a smoother simulation makes dodging Shadow Creatures feel less like Russian roulette on high ping. Klei's default of 15 is fine for LAN; it's not fine when your Macedonian friend is fighting a Deerclops on a 120 ms connection. If you push higher, your node needs the CPU to keep up – something worth checking against whichever plan you're on.

One wrinkle: if you turn pause_when_empty off on a group that doesn't play daily, you will come back to winter. I've accepted this; the others have learned to keep two chests of food ready at all times. It's DST, character-building, etc.

3. Hardcore permadeath – my summer wipe preset, nobody vote-kicks the Deerclops

[GAMEPLAY]
game_mode = wilderness
max_players = 10
pvp = true
pause_when_empty = false
vote_enabled = false

[NETWORK]
cluster_name = Wipe Server - Wilderness
cluster_description = Permadeath. No votes. No mercy. Bring it.
cluster_intention = madness
tick_rate = 30

[MISC]
console_enabled = true
max_snapshots = 3
return {
    override_enabled = true,
    preset = "SURVIVAL_TOGETHER",
    overrides = {
        world_size = "default",
        season_start = "autumn",
        autumn = "shortseason",
        winter = "shortseason",
        spring = "shortseason",
        summer = "shortseason",
        grass = "rare",
        saplings = "rare",
        flint = "rare",
        rock = "default",
        rabbits = "rare",
        hounds = "often",
        deerclops = "often",
        bearger = "often",
        dragonfly = "often",
        spiders = "often",
    },
}

Wilderness is the whole point here – you die, you come back as a new character somewhere random, no ghost revival, no "give me a minute I'll run your heart back." PvP is on mostly so that when someone inevitably decides to be a bandit, the rules support it instead of forcing me to adjudicate it. vote_enabled = false because the moment someone can vote-kick the guy with the football helmet who just wrecked camp, the mode stops being interesting.

Short seasons across the board means you never get comfortable. You're barely into winter thatching before summer smoke starts rolling in. My long-term group does one Wilderness wipe every summer – usually a two-week sprint – and it's consistently the most talked-about thing we play all year. max_snapshots = 3 is deliberate; I don't want anyone asking for a rollback.

One honest caveat: I haven't pushed the per-mob knobs beyond often here because the five-tier scale (never/rare/default/often/always) behaves differently per resource in ways I still don't fully trust. always on hounds is genuinely awful in a way that stops being fun; often is already a lot. Start there, raise it if your group laughs at it.

4. Endless grind – the always-on casual server

The fourth one is what I set up for a friend who wanted a DST server to just leave running for his teenage kids and their friends to drift in and out of. No wipes, no pressure, plenty of stuff to pick up, long daytime so the new-player panic of "it's night and I have no torch" happens less. It's the closest DST gets to Minecraft-creative, while still being, y'know, DST.

game_mode = endless is the only sensible choice for a server like this. Survival's world-reset-on-total-party-kill would turn into a constant source of tears. The long day / long dusk setting via the day override gives late-afternoon more breathing room, which is when most of the group logs in after school.

[GAMEPLAY]
game_mode = endless
max_players = 16
pvp = false
pause_when_empty = false
vote_enabled = true

[NETWORK]
cluster_name = Always-On Endless
cluster_description = Drop in, build stuff, log off
cluster_intention = cooperative
tick_rate = 15

[MISC]
console_enabled = true
max_snapshots = 8

And the worldgen – notable here is pushing resources hard so that a dozen casual players aren't fighting over the last grass tuft, plus softening giants substantially so nobody gets one-shot while AFK sorting a chest:

return {
    override_enabled = true,
    preset = "SURVIVAL_DEFAULT_PLUS",
    overrides = {
        world_size = "huge",
        season_start = "autumn",
        autumn = "longseason",
        winter = "shortseason",
        spring = "longseason",
        summer = "shortseason",
        day = "longday",
        grass = "often",
        saplings = "often",
        flint = "often",
        rocks = "often",
        berrybush = "often",
        carrot = "often",
        rabbits = "often",
        beefalo = "often",
        deerclops = "rare",
        bearger = "rare",
        dragonfly = "rare",
        hounds = "rare",
    },
}

I kept pause_when_empty = false on this one precisely because the point of the server is that it's always on. If the sim paused every time the kids went to bed, the base would feel dead the next morning. Seasons ticking in the background give people something to come back to.

A note on how to actually apply these

Two things that catch out almost everyone the first time they try one of these:

  • World generation overrides only apply when a new world is generated. If you paste this into an existing cluster and restart, nothing changes. You need to either start a fresh cluster or run c_regenerateworld() from the in-game console.
  • cluster.ini changes apply on the next restart. The server won't pick them up on a hot reload.

Both are covered in more detail in the configuration guide, along with the full list of override keys and values. If something's misbehaving – shards not talking, worldgen ignoring your override file – the troubleshooting article is the place I'd start, and if you're still wiring up your first cluster, the getting started guide has the base setup.

The presets above are starting points, not laws. I've rerolled the "standard" worldgen twice this year because the group decided they wanted more beefalo and fewer tentacles. That's the whole fun of running your own cluster: you get to argue about the settings almost as much as you argue about whose turn it is to farm manure.

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