Skip to content

How to Install Don't Starve Together Server Mods

Installing Don't Starve Together server mods: the two files and two folders that have to agree, per shard.

Updated September 12, 2026
Don't Starve Together

Installing a mod on a Don't Starve Together server takes two files in two different folders, and they do two different jobs. One downloads the mod. The other turns it on. Do only the first and the mod arrives on disk and never loads — which is exactly what happens to most people the first time.

Checked against Don't Starve Together dedicated server build 747465

The file contents, paths and log messages quoted below are read straight out of Klei's dedicated server (Steam app 343050), whose shipped scripts Klei invite people to read. Verified 12 September 2026. Klei publish no separate guide to server mods; the files document themselves.

File Where it lives What it does
dedicated_server_mods_setup.lua The server install's own mods folder, next to bin64 Downloads mods from the Workshop on boot
modoverrides.lua Inside each shard folder — Master/ and Caves/ Enables mods and sets their options

Note that they are nowhere near each other. dedicated_server_mods_setup.lua is part of the game installation; modoverrides.lua is part of your cluster configuration, alongside server.ini. On a hosted Don't Starve Together server both are reachable from the File Manager, and the paths below are the ones you will see there.

Step 1: tell the server what to download

Open mods/dedicated_server_mods_setup.lua. Klei ship it with instructions in the comments:

There are two functions that will install mods, ServerModSetup and ServerModCollectionSetup. Put the calls to the functions in this file and they will be executed on boot.
ServerModSetup takes a string of a specific mod's Workshop id. It will download and install the mod to your mod directory on boot.
The Workshop id can be found at the end of the url to the mod's Workshop page.

So the ID is the number after ?id= in the Workshop URL, and it goes in as a string:

ServerModSetup("350811795")
ServerModSetup("375859599")
ServerModCollectionSetup("379114180")
mods/dedicated_server_mods_setup.lua

ServerModCollectionSetup takes a collection's ID instead and pulls everything inside it. Downloads happen at startup, so a restart is what installs a mod, and each one lands in mods/workshop-<id>.

A syntax error here stops the server, it does not skip the mod

The loader prints #ERROR: Failure to load dedicated_server_mods_setup.lua: followed by #Shutting down. A stray quote or a missing bracket in this file means the server will not boot at all, so check the console after your first edit.

Step 2: turn the mods on, once per shard

Downloading a mod does not enable it. On a dedicated server the mod index starts by switching everything off — Klei's code comment says it plainly: "We assume the mods will be re-enabled by the modoverrides.lua file". That file is read from each shard's own folder, so a mod enabled only on Master is simply not running in Caves.

return {
  ["workshop-350811795"] = { enabled = true },
  ["workshop-375859599"] = {
    enabled = true,
    configuration_options = {
      language = "english",
      max_stack = 40,
    },
  },
}
Master/modoverrides.lua

The key is the literal string workshop- followed by the Workshop ID. enabled and configuration_options are the two fields Klei's own code writes, so that shape is authoritative. Copy the finished file into Caves/modoverrides.lua as well unless you deliberately want the two worlds running different mods.

There is one special key: client_mods_disabled, which takes a boolean rather than a mod table and blocks client-side mods on the server.

Getting the configuration options right

The names that go in configuration_options come from the mod itself, in its modinfo.lua under configuration_options. Use the exact name field, not the label shown in the mod's menu.

A mistyped option name fails silently

The server walks your overrides looking for a matching option name, and does nothing at all when it fails to find one — no warning, no error, and the mod quietly keeps its default. The only confirmation you get is the positive one, so watch the console for lines reading Overriding mod <name>'s option <option> with value <value>.

Values are not validated either. You can set an option to something the mod never offers, and the mod will receive it.

Reading the console

Four log lines tell you almost everything:

Line Meaning
SUCCESS: Loaded modoverrides.lua The file parsed
ERROR: Failed to run code from modoverrides.lua Valid Lua, but it did not return a table
Warning: modoverrides.lua is empty, or is failing to return a table. Nothing was enabled
applying configuration_options from modoverrides.lua to mod <name> Options reached the mod

The most common mistake behind the middle two is forgetting return at the start of the file.

Updates, and why players get kicked

Mods are fetched at boot, so an update only lands when the server restarts. A server left running for weeks will drift behind the Workshop, and DST does not treat that as cosmetic. Klei's own player-facing message:

The server is running mods with an old version. The server owner must update the mods for new players to join.

Players see that under the heading "Disconnected Due To Missing Mods". If new joiners suddenly cannot connect to an otherwise healthy server, an out-of-date mod is the first thing to check — and a scheduled restart is the cheapest prevention.

A related message covers mods that are not on the Workshop at all: "This server requires mods that are not available on the Steam Workshop. You will need to manually download the missing mods." Hand-installed mods therefore need to be hand-installed by every player too, which is why Workshop IDs are worth insisting on.

Common Questions

Where do I put mods on a Don't Starve Together server?

You do not upload them. List the Workshop IDs in mods/dedicated_server_mods_setup.lua and the server downloads them on the next boot, into mods/workshop-<id>. Then enable them in modoverrides.lua in each shard folder.

Why is my mod downloaded but not working?

Because downloading and enabling are separate. Check that modoverrides.lua exists in the shard folder, returns a table, and uses the workshop-<id> key form.

Do I need modoverrides.lua in both Master and Caves?

Each shard reads its own copy, so anything you want active underground has to be listed in Caves/modoverrides.lua too. Keeping the two files identical is the simplest way to avoid surprises.

How do I find a mod's Workshop ID?

It is the number at the end of the Workshop page URL, after ?id=. Klei's own example in the file is http://steamcommunity.com/sharedfiles/filedetails/?id=350811795.

Can I use a Steam Workshop collection?

Yes — ServerModCollectionSetup("<collection id>") downloads every mod in a collection. You still enable each one individually in modoverrides.lua.

Do server mods update automatically?

Only at startup. Restart the server to pick up Workshop updates; leaving it running with stale mods eventually blocks new players from joining.


Made with 💜 by GameServerKings

Need a Don't Starve Together server?

Deploy an instantly-provisioned Don't Starve Together server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $7.80 /month