Los comandos de consola en Don't Starve Together pueden arreglar problemas, probar builds, administrar servers o saltarte una rutina cuando The Constant se está poniendo especialmente grosero. Úsalos con cuidado, sobre todo en mundos multiplayer donde importan el acceso de admin y el contexto del server.

La consola está habilitada por defecto. Presiona la tecla tilde (~) para abrirla dentro del juego. Algunos comandos pueden fallar en multiplayer online a menos que seas el administrador del server.
Si la consola no se abre, busca el archivo `settings.ini` dentro de la carpeta `DoNotStarveTogether` del sistema. Busca `console_enabled` y cámbialo a `true` si actualmente está en `false`. Sal del juego antes de guardar el archivo, o puede que el cambio no se aplique. Evita cambiar settings no relacionados a menos que sepas qué hacen, porque una config rota puede hacer que el juego se comporte tan mal que requiera una reinstalación limpia.
Muchos comandos usan placeholders como `prefab`, `amount`, `number` o `value`. Reemplaza esos placeholders con el item objetivo, el índice del jugador o el ajuste numérico antes de ejecutar el comando. Por ejemplo, los comandos de prefab necesitan el nombre interno del prefab en vez del nombre mostrado. Los comandos de jugador que usan `AllPlayers[number]` funcionan mejor después de imprimir primero la lista de jugadores, ya que el número es lo que identifica al objetivo.
Los comandos también pueden comportarse de forma distinta según si se ejecutan localmente, de forma remota o desde una consola de server dedicado. Los comandos fuente de abajo señalan esos casos cuando importan. Si un comando afecta a todos los jugadores, elimina entidades, regenera un mundo o cambia el acceso al server, trátalo como una herramienta de admin y no como un atajo de conveniencia. Un error de dedo en un comando de spawn es molesto. Un error de dedo en un comando de rollback o despawn es la forma en que una noche tranquila se convierte en papeleo.
Antes de probar comandos de mundo riesgosos, fuerza un guardado o usa un mundo no esencial. Varios comandos pueden provocar un crash del juego, congelar la simulación, borrar inventario o eliminar objetos permanentemente. El enfoque más seguro es probar un comando a la vez, confirmar el resultado y evitar acumular cambios no relacionados en la misma sesión.
- Spawn prefab: `c_spawn("prefab",amount)` hace spawn de un mob, item, blueprint u otro prefab bajo el cursor del mouse.
- Give item: `c_give("prefab",amount)` coloca el prefab en el inventario del jugador. Solo funciona con items que pueden aparecer en una backpack.
- Go adventuring: `c_goadventuring()` da al jugador un set inicial de items.
- Scenario: `c_doscenario(scenario)` aplica y ejecuta un escenario en el elemento seleccionado.
- Set Health: `c_sethealth(percent)` establece Health a un porcentaje decimal.
- Set Sanity: `c_setsanity(percent)` establece Sanity a un porcentaje decimal.
- Set Hunger: `c_sethunger(percent)` establece Hunger a un porcentaje decimal.
- Set Moisture: `c_setmoisture(percent)` establece Wetness a un porcentaje decimal.
- Set Temperature: `c_settemperature(degrees)` establece la temperatura del jugador.
- God Mode: `c_godmode()` evita la pérdida de Sanity, Hunger y Health por ataques, revive al jugador al morir y se desactiva al ingresarlo de nuevo. Las stats no se pueden cambiar mientras está activo.
- Super God Mode: `c_supergodmode()` habilita god mode y llena todas las stats al máximo.
- Maintain Health: `c_maintainhealth(ThePlayer)` mantiene Health regenerándose. Usa `c_cancelmaintasks(ThePlayer)` para detenerlo.
- Maintain Sanity: `c_maintainsanity(ThePlayer)` mantiene Sanity regenerándose. Usa `c_cancelmaintasks(ThePlayer)` para detenerlo.
- Maintain Hunger: `c_maintainhunger(ThePlayer)` mantiene Hunger regenerándose. Usa `c_cancelmaintasks(ThePlayer)` para detenerlo.
- Maintain Temperature: `c_maintaintemperature(ThePlayer)` mantiene Temperature regenerándose. Usa `c_cancelmaintasks(ThePlayer)` para detenerlo.
- Maintain Moisture: `c_maintainmoisture(ThePlayer)` mantiene Moisture regenerándose. Usa `c_cancelmaintasks(ThePlayer)` para detenerlo.
- Maintain All: `c_maintainall(ThePlayer)` mantiene todas las stats regenerándose. Usa `c_cancelmaintasks(ThePlayer)` para detenerlo.
- Mob Invisibility: `c_makeinvisible()` hace que los mobs hostiles ignoren al jugador, aunque puede no funcionar siempre.
- Running Speed: `c_speedmult(multiplier)` cambia la velocidad de movimiento. El valor predeterminado es 1, 2 es el doble de velocidad y el máximo es 12.
- Action Prediction: `ThePlayer:EnableMovementPrediction(enable)` alterna la predicción de movimiento. Deshabilitarla puede cambiar el rubberbanding por movimiento entrecortado, lo cual puede ayudar en algunas situaciones de combate.
- Creative Mode: `c_freecrafting()` permite crafting gratis. Ingrésalo de nuevo para desactivar el efecto.
- Give All Recipes: `GetPlayer().components.builder:GiveAllRecipes()` desbloquea todas las recetas de crafting para el jugador.
- Maximum Health: `ThePlayer.components.health:SetMaxHealth(value)` cambia el Health máximo del jugador.
- Maximum Sanity: `ThePlayer.components.sanity:SetMax(value)` cambia el Sanity máximo del jugador.
- Maximum Hunger: `ThePlayer.components.hunger:SetMax(value)` cambia el Hunger máximo del jugador.
- Pause Hunger: `ThePlayer.components.hunger:Pause(true)` evita morir de hambre.
- Damage Multiplier: `ThePlayer.components.combat.damagemultiplier=(value)` cambia el daño que produce el jugador.
- Werebeaver Transformation: `c_setbeaverness(percentage)` transforma a Woodie en Werebeaver con 1 y lo regresa a la normalidad con 0.
- List Players: `c_listallplayers()` imprime los jugadores en el server. Puede no funcionar siempre.
- Get Player: `AllPlayers[number]` apunta a un jugador específico después de identificar su número con `c_listallplayers()`.
- Command All Players: `for k,v in pairs(AllPlayers) do command end` aplica otro comando a todos los jugadores. Por ejemplo, `for k,v in pairs (AllPlayers) do c_move(v) end` mueve a todos los jugadores a la posición del mouse.
- Teleport Player to You: `c_move(AllPlayers[number])` mueve a ese jugador a la posición del mouse.
- Kill Player: `AllPlayers[number]:PushEvent('death')` mata al jugador seleccionado.
- Resurrect Player: `AllPlayers[number]:PushEvent('respawnfromghost')` revive al jugador seleccionado.
- Give Creative Mode to Player: `AllPlayers[number].components.builder:GiveAllRecipes()` otorga todas las recetas a ese jugador.
- Teleport to Player: `c_goto(AllPlayers[number])` te mueve al jugador seleccionado.
- Drop Player Inventory: `AllPlayers[number].components.inventory:DropEverything()` tira todo lo que hay en el inventario de ese jugador.
- Despawn Player Character: `c_despawn(AllPlayers[number])` envía a otro jugador de vuelta a la selección de personaje. Esto elimina el inventario de ese jugador, así que úsalo como si fuera una ballesta cargada.
- Teleport to Prefab: `c_gonext("prefab")` teletransporta al jugador al prefab coincidente más cercano.
- Delete Item Under Mouse: `ConsoleWorldEntityUnderMouse():Remove()` o `c_select():Remove()` elimina el elemento bajo el cursor. Usa el segundo comando en servers dedicados.
- Delete All of a Prefab: `for k,v in pairs(Ents) do if v.prefab == "prefab" then v:Remove() end end` elimina globalmente todos los prefab coincidentes.
- Reveal Map for Self: Usa `minimap = TheSim:FindFirstEntityWithTag("minimap")`, `TheWorld.minimap.MiniMap:ShowArea (0,0,0,10000)` y el loop de revelado `for x=-1600,1600,35 do for y=-1600,1600,35 do ThePlayer.player_classified.MapExplorer:RevealArea(x,0,y) end end` para revelar el mapa localmente.
- Reveal Map for All Players: `for k,v in pairs(AllPlayers) do for x=-1600,1600,35 do for y=-1600,1600,35 do v.player_classified.MapExplorer:RevealArea(x,0,y) end end end` revela el mapa para todos desde ejecución remota.
- Skip Time Units: `LongUpdate(X)` salta X unidades de tiempo y ejecuta la función LongUpdate en los objetos del mundo.
- Speed Up Simulation: `c_speedup()` acelera el tiempo en el mundo actual y puede activar eventos.
- Set Simulation Time: `TheSim:SetTimeScale(X)` cambia la velocidad de simulación. Poner X en 0 pausa el juego y deshabilita la consola, lo que impide reanudarlo normalmente.
- Skip Time: `TheWorld.net.components.clock:OnUpdate(1630x)` salta el número de días establecido por x. Valores grandes pueden congelar el juego.
- Skip Days: `c_skip(num)` salta el número especificado de días.
- Next Day Cycle: `TheWorld:PushEvent("ms_nextcycle")` avanza al siguiente día del ciclo del mundo.
- Next Phase: `TheWorld:PushEvent("ms_nextphase")` salta la fase actual del ciclo de día.
- Set Phase: `TheWorld:PushEvent("ms_setphase",PHASE NAME)` cambia la fase a `day`, `dusk` o `night`.
- Set Segments: `TheWorld:PushEvent("ms_setclocksegs", {day=x,dusk=y,night=z})` cambia los segmentos de day, dusk y night. El total no puede exceder 16 y se reinicia al día siguiente. Por ejemplo, `{day=14,dusk=1,night=1}` crea un día muy largo.
- Next Nightmare Cycle: `TheWorld:PushEvent("ms_nextnightmarecycle")` salta al siguiente Nightmare Cycle.
- Next Nightmare Phase: `TheWorld:PushEvent("ms_nextnightmarephase")` salta la fase actual de Nightmare Cycle.
- Set Nightmare Phase: `TheWorld:PushEvent("ms_setnightmarephase",PHASE NAME)` la cambia a `calm`, `warn`, `wild` o `dawn`.
- Set Nightmare Segments: `TheWorld:PushEvent("ms_setnightmaresegs", {calm=A,warn=B,wild=C,dawn=D})` establece segmentos de Nightmare y no reinicia el siguiente ciclo. El valor predeterminado es `{calm=12,warn=3,wild=5,dawn=2}`.
- Lock Nightmare Phase: `TheWorld:PushEvent("ms_locknightmarephase",PHASE NAME)` bloquea la fase en `calm`, `warn`, `wild` o `dawn`.
- Unlock Nightmare Phase: `TheWorld:PushEvent("ms_locknightmarephase")` detiene el bloqueo.
- Set Season Segments: `TheWorld:PushEvent("ms_setseasonclocksegs", {summer={day=sx,dusk=sy,night=sz}, winter={day=wx,dusk=wy,night=wz}})` establece permanentemente los segmentos de temporada. Los totales de segmento por encima de 16 causan errores.
- Set Season Length: `TheWorld:PushEvent("ms_setseasonlength", {season="summer", length=15})` cambia la duración de la temporada.
- Start Season: `TheWorld:PushEvent("ms_setseason", "{season}")` inicia `winter`, `spring`, `summer` o `autumn`.
- Start Rain: `TheWorld:PushEvent("ms_forceprecipitation")` inicia la lluvia.
- Stop Rain: `TheWorld:PushEvent("ms_forceprecipitation", false)` detiene la lluvia, incluida Frog Rain.
- Lightning Strike: `TheWorld:PushEvent("ms_sendlightningstrike", ConsoleWorldPosition())` golpea la posición del cursor, a menos que un lightning rod cercano lo redirija.
- Meteor Strike: `c_spawn("shadowmeteor", 1)` llama un meteoro en la posición del cursor. Puede provocar un crash del juego.
- Activate Events: `for k, v in pairs(SPECIAL_EVENTS) do if v ~= SPECIAL_EVENTS.NONE then local tech = TECH[k] if tech ~= nil then tech.SCIENCE = 0 end end end function IsSpecialEventActive(event) return true end` activa todos los eventos a la vez, a menos que los eventos de generación de mundo estén configurados en Auto.
- Measure Distance: `print(math.sqrt(ThePlayer:GetDistanceSqToInst(ConsoleWorldEntityUnderMouse())))` imprime la distancia al objeto bajo el cursor en el log de la consola, visto con Ctrl + L por defecto.
Varios comandos en esta lista son variaciones de la misma idea. `c_spawn` crea algo en el mundo, mientras que `c_give` intenta colocar un item directamente en el inventario del jugador. `c_gonext` busca el prefab coincidente más cercano y mueve al jugador ahí, mientras que `c_find` localiza un item existente para comandos posteriores, como teletransportarlo.
Los comandos de jugador normalmente apuntan a `ThePlayer` para la persona que ejecuta el comando o a `AllPlayers[number]` para una persona específica en el server. Los comandos de mundo normalmente apuntan a `TheWorld`, `TheSim` o a entidades bajo el cursor del mouse. Saber qué objeto afecta un comando es la diferencia entre ajustar tu propio personaje e involucrar accidentalmente a todos los demás.
Cuando los comandos mencionen un porcentaje decimal, usa valores como 1 para completo, 0.5 para la mitad y 0 para vacío. Cuando un comando pida un nombre de fase o temporada, usa los nombres exactos listados con el comando. Pequeñas diferencias de formato pueden impedir que el comando funcione.
- Kick or Ban: `TheNet:Kick(userid)` o `TheNet:Ban(userid)` elimina o banea a un jugador.
- Temporary Ban: `TheNet:BanForTime(userid,time_in_seconds)` banea a un jugador por una duración establecida.
- Connect to Server: `c_connect("IP address", port, "password")` conecta a un server por IP, port y contraseña.
- Reload World: `c_reset()` recarga sin guardar y puede provocar un crash del juego si se usa como client.
- Regenerate World: `c_regenerateworld()` regenera items en un mundo.
- Regenerate Shard: `c_regenerateshard()` regenera items en un shard.
- Save Server: `c_save()` fuerza un autosave.
- Shut Down Server: `c_shutdown( true / false)` guarda cuando es true y sale sin guardar cuando es false.
- Roll Back Server: `c_rollback(count)` revierte el server por el número especificado de guardados.
- Allow New Connections: `TheNet:SetAllowIncomingConnections( true / false )` permite unirse cuando es true y bloquea nuevas uniones cuando es false.
- Server Announcement: `c_announce("announcement")` publica un anuncio desde la consola del server dedicado, útil antes de apagados o reinicios.
- Stop Vote: `c_stopvote()` detiene la votación activa.
- Max Inspiration Points: `TheSkillTree:AddSkillXP(10000, "{character name}")` da a un personaje el máximo de puntos de Inspiration posible.
- Ancient Fuelweaver Status: `TheGenericKV:SetKV("fuelweaver_killed", "1")` marca al personaje actual como si hubiera matado a Ancient Fuelweaver.
- Celestial Champion Status: `TheGenericKV:SetKV("celestialchampion_killed", "1")` marca al personaje actual como si hubiera matado a Celestial Champion.
- Change Length, Width, and Height: `c_select().Transform:SetScale(x, y, z)` cambia las dimensiones visibles de un mob o jugador. Otros jugadores no verán el efecto.
- Clear Morgue: `ErasePersistentString("morgue")` limpia la morgue después de cerrar y volver a abrir el juego.
- Count Prefab and Say It: `ThePlayer.components.talker:Say(tostring(c_countprefabs("prefab")))` devuelve el conteo total como diálogo del personaje cuando se usa de forma remota.
- Count Prefab: `c_countprefabs("prefab")` cuenta prefabs en el área local activa cuando es local, o en el mundo cuando es remoto. Los resultados en server dedicado se imprimen en la consola del server.
- Spawn Wormholes: `worm1 = c_spawn("wormhole")` y luego `worm2 = c_spawn("wormhole")` crea Wormholes o Cave Entrances en el cursor.
- Connect Wormholes: `worm1.components.teleporter.targetTeleporter = worm2` y `worm2.components.teleporter.targetTeleporter = worm1` conecta ambos extremos.
- Spawn Domesticated Beefalo: `function spawn_beef(tendency) local beef = c_spawn("beefalo"); beef.components.hunger:DoDelta(400); beef.components.domesticatable:DeltaTendency(tendency, 1); beef:SetTendency(); beef.components.domesticatable.domestication = 1; beef.components.domesticatable:BecomeDomesticated(); end` hace spawn de un Beefalo domesticado cerca.
- Teleport Item to Player: `c_find("item").Transform:SetPosition(AllPlayers[1]:GetPosition():Get())` mueve el item coincidente más cercano al jugador.
- Change Player Size: `ThePlayer.Transform:SetScale(number,number,number)` cambia el tamaño del jugador.
- Change Prefab Size: `c_select().Transform:SetScale(number,number,number)` cambia el tamaño del prefab seleccionado.
- Change Player Color or Transparency: `c_select().Transform:SetScale(number,number,number)` cambia el color o la transparencia del jugador.
- Change Prefab Color or Transparency: `ThePlayer.AnimState:SetMultColour(number,number,number,number)` cambia el color o la transparencia del prefab seleccionado.
- Make Prefab Pick-Up-Able: `c_select():AddComponent("inventoryitem")` hace que el prefab seleccionado se pueda recoger. Comúnmente provoca un crash del juego cuando los mods están habilitados.
- Change Character Body Parts: `for k,v in pairs(Ents) do if v.AnimState and v.AnimState:GetBuild() == "character'sname" then v.AnimState:OverrideSymbol("bodypart", "enothercharacter'sname","bodypart") end end` intercambia un cuerpo, cara, mano u otra parte. Ejemplos de nombres de personaje incluyen `webber`, `Wilson` y `wx78`.
- Unlock Scrapbook: `TheScrapbookPartitions:DebugUnlockEverything()` desbloquea todas las entradas de Scrapbook.
Usa los comandos con responsabilidad en servers dedicados, especialmente los comandos que afectan a otros jugadores o sobrescriben el estado del mundo. Si administras un mundo de Don't Starve Together mediante HolyHosting, limita los comandos de admin a operadores de confianza y guarda antes de probar cambios de mundo riesgosos.