Don't Starve Together Console Commands
Every c_ console command for Don't Starve Together, how remote and local mode differ, and why Master and Caves run as two separate shards that need commands issued on each.
Don't Starve Together's console is a live Lua prompt, not a fixed list of cheat codes. Commands are real function calls — c_spawn("pigman", 3) is Lua, brackets, quotes and all — which is why a mistyped command silently does nothing instead of telling you off.
Two things trip people up far more than the syntax: the difference between local and remote execution, and the fact that a Don't Starve Together server with caves is actually two separate server processes. Get either wrong and a perfectly valid command will appear to be ignored. Both are covered below.
Opening the console
Press the tilde key (~, the backtick key below Esc on a US layout) during play. You can rebind it in the controls menu.
The console is enabled by default in current builds. If the key does nothing, enable it explicitly by editing client.ini:
That file lives in Documents\Klei\DoNotStarveTogether\ on Windows and macOS, and ~/.klei/DoNotStarve/ on Linux. Press Ctrl + L to clear the console log.
Local vs remote — the distinction that breaks most commands
This is the single most common reason a command "doesn't work".
With the console open, pressing Ctrl toggles between local and remote mode. The prompt tells you which one you are in.
| Mode | Runs on | Use it for |
|---|---|---|
| Local | Your client only | Map reveals, client-side debugging |
| Remote | The server, for everyone | Practically everything — spawning, giving, god mode, saving |
If you are not the host, almost every useful command must be run in remote mode, and remote mode requires you to be an admin on that server. Run c_spawn locally on a dedicated server and you get a client-side ghost of an object that does not really exist. No error, no item.
Check the mode before you blame the command
If a command produced no error and no result, you were almost certainly in local mode. Press Ctrl and run it again.
Getting admin on a dedicated server
Admin is granted by Klei User ID, not by password. Each player has an ID in the form KU_xxxxxxxx.
A player can find their own by opening the console and running:
Add one ID per line to adminlist.txt:
The important detail is where that file goes. It belongs in the cluster root, alongside cluster.ini — not inside a shard folder:
Placed at the cluster root, it applies to both shards at once. Drop a copy into Master/ instead and it will not be read. Restart the server after editing.
Master and Caves are two separate servers
This is the part general command lists leave out, and it is the thing most likely to confuse a new server owner.
A caves-enabled Don't Starve Together cluster does not run one server process. It runs two — the dedicated server binary is launched once per shard, with -shard Master for the surface and -shard Caves for the underground. They share a cluster token, an admin list and a mod list, but they are independent processes with their own worlds and their own console context.
Consequences that actually matter:
- A remote command executes on the shard you are currently standing in. Spawn something while on the surface and it appears on the Master shard. Walk into a sinkhole and run the same command and it lands in Caves.
- Both shards must run the same mods, with the same configuration. Mismatched
modoverrides.luabetween shards causes players to fail migration between surface and caves. - Some commands cross the shard boundary and some do not — see the table below.
Commands that behave differently per shard
| Command | On Master | On Caves |
|---|---|---|
c_shutdown() |
Saves, then shuts down every shard in the cluster | Shuts down the Caves shard only |
c_regenerateworld() |
Regenerates both the surface and caves | Regenerates both |
c_regenerateshard() |
Regenerates the surface only | Regenerates the caves only |
c_save() |
Saves that shard | Saves that shard |
c_regenerateworld destroys the world immediately
There is no confirmation prompt and no undo. It wipes the surface and the caves together and generates a fresh world. If you only meant to reset the caves, you wanted
c_regenerateshard(). Take a backup first.
The Master shard is the one that manages the cluster, which is why c_shutdown() run there propagates a save-and-stop to Caves as well. Running it on Caves leaves the surface up and players on it.
Spawning and giving items
c_spawn places the object on the ground under your cursor. c_give puts it straight into your inventory. Both default to a count of 1 if you omit it.
Prefab names are the internal code names, which are usually — but not always — the lowercase name with spaces removed. Spelling one wrong fails silently, so check it rather than guessing.
Character and player commands
| Command | Effect |
|---|---|
c_godmode() |
Toggles invulnerability for your character |
c_supergodmode() |
God mode plus refills health, hunger and sanity |
c_sethealth(n) |
Sets health, n as a fraction from 0 to 1 |
c_sethunger(n) |
Sets hunger, same scale |
c_setsanity(n) |
Sets sanity, same scale |
c_freecrafting(player) |
Unlocks all recipes for a player |
c_listallplayers() |
Prints every connected player and their index |
c_move(inst) |
Moves the target to your cursor |
c_despawn(player) |
Returns a player to character select |
c_select(inst) |
Selects an entity for later commands |
The stat commands take a fraction, not a percentage — c_sethealth(0.5) is half health, and c_sethealth(50) is not what you want.
To act on someone else, list players first and index the result:
Server and world commands
| Command | Effect |
|---|---|
c_save() |
Forces an immediate save |
c_rollback(count) |
Reverts the world by count saves |
c_shutdown(save) |
Shuts down; c_shutdown(false) exits without saving |
c_announce(msg) |
Broadcasts a message to everyone |
c_countprefabs("prefab") |
Counts how many of an entity exist in the world |
c_reset() |
Reloads the world from the last save |
TheNet:Kick(userid) |
Kicks a player by Klei User ID |
TheNet:Ban(userid) |
Bans a player by Klei User ID |
c_rollback(1) steps back one save, c_rollback(2) two, and so on. How far back you can go depends on how many snapshots the cluster keeps.
FAQ
What key opens the console in Don't Starve Together?
The tilde key, ~, which is the backtick key below Esc on a US keyboard. It can be rebound in the controls menu.
Why do my console commands do nothing?
Almost always because you are in local rather than remote mode. Press Ctrl with the console open to switch to remote, and confirm you are on the server's admin list.
How do I become an admin on my own dedicated server?
Add your Klei User ID — get it with TheNet:GetUserID() — to adminlist.txt in the cluster root next to cluster.ini, then restart the server.
Do I need to run commands on both Master and Caves?
For anything world-specific, yes. A remote command applies to the shard you are standing in, so to change both the surface and the caves you run it in each. c_shutdown() on Master is the exception — it stops the whole cluster.
How do I reset only the caves?
Stand in the caves and run c_regenerateshard(). Using c_regenerateworld() would wipe the surface as well.
Does using console commands disable achievements?
No. Don't Starve Together has no achievement lockout for console use, though server owners can still restrict who is on the admin list.
Why does c_sethealth(100) not work?
Because the stat commands take a fraction between 0 and 1. Full health is c_sethealth(1).
Related guides
- Rust Console Commands — the same client-side versus server-side split, in a different game
- Starbound Admin Commands and Console Commands — another Lua-adjacent admin console
- Unturned Server Commands and Cheat Codes — server-side command reference for a comparable co-op survival server
- Icarus Console Commands — the opposite case: a survival game that ships no console at all
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 Loading /month