Console/Don't Starve Together Commands

The Command Console is enabled by default. If for whatever reason it is not, you first need to do some tweaking in your settings.ini of your save. This can be found in the "DoNotStarveTogether" folder, located in the following paths : Windows, Mac: \Klei\DoNotStarveTogether\settings.ini Linux:        ~/.klei/DoNotStarve/settings.ini

Locate the settings.ini and open it with Notepad or other text editors. Locate the  section, and make sure you are having   under it. If it appears to be, change and save it.

Then to open the console while in game by pressing "~" by default on English keyboards. This can be changed at any time in the controls menu.

Notes:
 * You have to re-enter almost every command after loading a world.
 * Lua supports variable numbers of arguments to functions, so if, for example, you only want to spawn one of a prefab, you can leave out the "amount": "c_spawn('beefalo')".
 * If you are not the host (or it's a dedicated server that you're an admin for), most commands need to be run remotely. Pressing ctrl with the console open switches to remote command mode. A few commands (such as revealing the map) are still done locally.

Many Don't Starve Commands are still available in DST, so you can also read it.

Simple commands
c_spawn("prefab", #)
 * Spawn prefab

Improved DebugSpawn("prefab"), spawns amount of selected "prefab" under the mouse cursor. c_give("prefab", amount)
 * Give Item

''Spawns amount of selected "prefab" in your inventory. Only works with Backpacks and Items that can be stored in the inventory.'' c_doscenario(scenario)
 * Scenario (Not tested)

Apply a scenario script to the selection and run it. c_sethea​lth(percent)
 * Health

''Sets your health to selected percentage. Note: Use fractional numbers 0.90 = 90%.'' c_setsanit​y(percent)
 * Sanity

''Sets your sanity to selected percentage. Note: Use fractional numbers 0.90 = 90%.'' c_sethunger(pe​rcent)
 * Hunger

''Sets your hunger to selected percentage. Note: Use fractional numbers 0.90 = 90%.'' c_setmoisture(pe​rcent)
 * Moisture

''Sets your wetness to selected percentage. Note: Use fractional numbers 0.90 = 90%.'' c_settemperature(pe​rcent)
 * Temperature

''Sets your temperature to selected percentage. Note: Use fractional numbers 0.90 = 90%.'' c_godmode ''It won't drain Sanity, Hunger or Health when attacked anymore. You cannot change your stats with commands while in godmode. If you are dead, revives you(Reviving via c_godmode doesn't put you in godmode once revived). ''To deactivate God Mode use the command again. c_supergodmode ''Same as God Mode but also sets all your stats to full, even when turning it off. Similar to c_godmode, it revives you as well(Reviving via c_supergodmode doesn't put you in godmode once revived).''To deactivate God Mode use the command again. c_speedmult(multiplier) ''Standard bonus runspeed is 1. 2 makes you twice as fast and with 20 or more you can easily walk through walls and "over" water.''
 * God Mode
 * Super God Mode
 * Set bonus running speed

There's many other commands, but they're hard to use and not very useful.

Player commands
Note: Most of them will not work if you are a client and not an admin sending a remote control ( switching to remote mode with Ctrl ).

ThePlayer:EnableMovementPrediction(enable) ''Enabled by default, setting it to "false" will exchange rubberbanding for choppiness, but is often helpful for combat. This only does anything if executed by a client, hosts do not have prediction.''
 * Action Prediction

ThePlayer.components.builder:GiveAllRecipes You can craft everything.
 * Creative mode

​ThePlayer.components.health:SetMaxHealth(value) Change the Maximum Health of your character
 * Maximum health

ThePlayer.components.sanity:SetMax(value) Change the Maximum Sanity of your character
 * Maximum sanity

ThePlayer.components.hunger:SetMax(value) Change the Maximum Hunger of your character
 * Maximum hunger

ThePlayer.components.hunger:Pause(true) Your character won't starve anymore.
 * Pause hunger

ThePlayer.components.beaverness:SetPercent(1) Turn Woodie into the Werebeaver.
 * Werebeaver

Other Player Commands
'''Note: Many of the following commands that are normally applied to your player, such as c_godmode or c_sethealth(1), can be applied to other players by using c_select(AllPlayers[number]) first. So you will have the need for a playerlist to get the player numbers:''' c_listallplayers AllPlayers[number] ''AllPlayers[1] will get ThePlayer if you are the host. Other players should have numbers as shown on the scoreboard (In certain situations, the number may be wrong. You can be more precise by using c_listallplayers first to see the username and character for each player number.. Most of ThePlayer commands can be used with AllPlayers[number] instead of ThePlayer.''
 * List all players with username and player number.
 * Get a certain player

for k,v in pairs(AllPlayers) do command end ''Replace command with another command, using "v" instead of AllPlayers[number]. For example, "for k,v in pairs(AllPlayers) do c_move(v) end" will move all players to the mouse position.''
 * Apply a command to all players

c_move(AllPlayers[number]) Moves the player to the cursor position.
 * Move another player

AllPlayers[number]:PushEvent('death') Kills the player.
 * Kill a player

AllPlayers[number]:PushEvent('respawnfromghost') Resurrects the player.
 * Resurrect a player

c_goto(AllPlayers[number]) Teleports you to to the player corresponding to the player number from c_listallplayers. AllPlayers[number].components.inventory:DropEverything Teleports you to to the player corresponding to the player number from c_listallplayers. c_despawn(AllPlayers[number]) This will delete their items, so it is recommended that you kill them first to drop their items, or let then DropEverthing as shown above.
 * Teleport to a player
 * Drop a player's inventory items
 * Despawn a player's character (returns to selection screen for repicking)

As of June 25, 2016, a new set of commands are introduced to call players. You can call a player by their player name instead of player number UserToPlayer('PlayerName'). For example, to kill a player called 'PlayerA' with player number 5, instead of doing: AllPlayers[5]:PushEvent('death') This requires you to first run c_listallplayers and figure out player number.

you can simply do this: UserToPlayer('PlayerA'):PushEvent('death')

World commands
c_gonext("prefab") ''After pressing enter, it teleports you to the first numerical instance of the named prefab. If multiple iterations of the prefab exist, a list of the entity numbers will be displayed in the console log, and each subsequent execution of the same command will transport the player from entity to entity in the order they were generated in the world.''
 * Teleport to Prefab

TheInput:GetWorldEntityUnderMouse:Remove c_select c_sel:Remove ''After pressing enter, it deletes the item under your mouse. Use the second command on dedicated servers, the first command will not work.''
 * Delete Item Under Mouse

minimap = TheSim:FindFirstEntityWithTag("mini­map") TheWorld.minimap.MiniMap:ShowArea (0,0,0,10000) This is a local-only command and will not work if you are a client.
 * Reveal Map

​TheWorld:PushEvent("ms_nextcycle") TheWorld.net.components.clock:OnUpdate(16*30*x) ''Skips x days. Change x to skip more days or parts of days (e.g. 16*30*4.5 to skip 4.5 days)'' WARNING: Too big values may freeze the game. (Depending on computer speed)
 * Skip day
 * Skip time

LongUpdate(X) Skips X time units and performs the "LongUpdate" function on world objects
 * Skip time units and update

Note: There are 30 time units per segment. To skip a whole day one can either use LongUpdate(480) or use multiplicative values such as LongUpdate(X*16*30) or LongUpdate(X*TUNING.TOTAL_DAY_TIME), with X=days to skip.

TheWorld:PushEvent("ms_nextphase") Skips the current phase.
 * Skip phase

TheWorld:PushEvent("ms_setclocksegs", {day=x,dusk=y,night=z}) ''Sets amount of segments. Errors if x + y + z adds up to over 16. Note that this will get reset the next day.''
 * Set segments

Example: TheWorld:PushEvent("ms_setclocksegs", {day=14,dusk=1,night=1}) Very long day, very short dusk and night (one segment for dusk and one for night)

​TheWorld:PushEvent("ms_setseasonclocksegs", {summer={day=sx,dusk=sy,night=sz}, winter={day=wx,dusk=wy,night=wz}}) ''Sets amount of segments. Errors if x + y + z adds up to over 16. Unlike setclocksegs, this is permanent.''
 * Set season segments

Example: TheWorld:PushEvent("ms_setseasonclocksegs", {summer={day=14,dusk=1,night=1}, winter={day=13,dusk=1,night=2}}) Very long day, very short dusk and night (one segment for dusk and one for night), with a slightly longer night in winter.

TheWorld:PushEvent("ms_setseasonlength", {season="summer", length=15}) Sets the lengths of the seasons.
 * Set season lengths

TheWorld:PushEvent("ms_setseason", "summer") Start summer
 * Start Summer

TheWorld:PushEvent("ms_setseason", "winter") Start winter
 * Start Winter

When the RoG DLC is added, the additional commands will likely be TheWorld:PushEvent("ms_setseason", "spring")​ and TheWorld:PushEvent("ms_setseason", "autumn")​

TheWorld:PushEvent("ms_forceprecipitation") Start rain.
 * Start Rain

TheWorld:PushEvent("ms_forceprecipitation", false) ''Stop rain. This also includes Frog Rain.''
 * Stop Rain

TheWorld:PushEvent("ms_sendlightningstrike", TheInput:GetWorldPosition) ''Lightning strike on mouse cursor. Will hit lightning rod instead if there is one near''
 * Do Lightning Strike

c_spawn("shadowmeteor", 1) ''Meteor strike on mouse cursor. Spawns different kind of rocks randomly.''
 * Meteor Strike

print(math.sqrt(ThePlayer:GetDistanceSqToInst(TheInput:GetWorldEntityUnderMouse))) Prints the distance between player and object under mouse to the console log (displayed with Ctrl + L by default).
 * Measure Distance

Network/Server Commands
TheNet:Kick(userid) TheNet:Ban(userid) ''Note that this can be accomplished more easily through the scoreboard. The userid can be obtained from the AllPlayers table. Once you've found the number of the player you want to kick (as shown above in the Other Player Commands section), you can use AllPlayers[#].userid. ''
 * Kick/Ban a player

Example:

c_listallplayers [1] (KU_aabbccdd) Player1 

[2] (KU_AABBCCDD) Player2 

if Player2 is going to be banned from the server, console command can be written as

TheNet:Ban(AllPlayers[2].userid)

or

TheNet:Ban("KU_AABBCCDD") TheNet:BanForTime( userid, time_in_seconds ) ''Player can be banned for a short period of time. userid stands for the KU id of the player to be banned. Once it is obtained it can be put in this format:''
 * Temporarily Ban a player

TheNet:BanForTime( "KU_aabbccdd", 120).

''This will ban the player with specified KU id for 120 seconds. This command should be entered to both servers if server has multi-level option (caves and overworld).''

c_connect("IP address", port, "password") ''If connecting conventionally doesn't work, it is possible to connect directly to an IP address. By default, the port is 10999. If there is no password, you can leave that part out: c_connect("10.0.0.8", 10999)''
 * Connect to a server

c_reset ''Reloads the world without saving. This command may crash your game if you are a client (unless you send it as a remote command).''
 * Reload the world

c_regenerateworld Deletes the current world(Including Caves if ) and generates a new one.
 * Regenerate the world

c_save Forces the server to save immediately (servers normally autosave whenever night finishes).
 * Save the server

c_shutdown( true / false) ''true will save the game, false will exit without saving. c_shutdown is the same as c_shutdown(true).''
 * Shut down the server

c_rollback(count) ''Rolls back a server by the given number of saves. c_rollback will roll it back by one, while c_rollback(3) will roll it back three.''
 * Roll back the server

TheNet:SetAllowIncomingConnections( true / false ) ''Setting it to true is the default behavior (people can join). Setting it to false prevents anyone from joining.''
 * Enable/Disable new player joining

c_announce("announcement") This allows you to announce server shutdowns/restarts so players do not just get disconnected without warning.
 * Make a server announcement (for dedicated server console)

Miscellaneous Commands
ErasePersistentString("morgue") ''Clears the morgue. Requires closing and reopening the game for changes to be seen.'' c_countprefabs("prefab") On dedicated servers the result is printed on the server console
 * Clear the morgue
 * Count the number of something in the world
 * Spawn Wormhole
 * 1) Sadly no one line command, follow steps instead.
 * 2) Spawn wormhole 1 using this command: worm1 = c_spawn("wormhole")
 * 3) Spawn wormhole 2 using this command: worm2 = c_spawn("wormhole")
 * 4) Create connections forth: worm1.components.teleporter.targetTeleporter = worm2
 * 5) And back: worm2.components.teleporter.targetTeleporter = worm1
 * 6) DONE!