Don't Starve вики
Advertisement
Don't Starve вики
2202
страницы

По умолчанию консоль в DST включена.

В DST есть несколько вариантов вашего статуса в игре:

  1. Вы хост.
    • В этом случае вы являетесь админом и можете полноценно пользоваться консолью.
  2. Вы гость.
    • У вас нет прав и вы не можете пользоваться консолью. Есть ограниченное число команд, которые работают на клиентской стороне. Но почти вся ключевая информация обрабатывается на сервере, поэтому читерить не получится.
  3. Вы админ другого сервера. То есть это либо ваш выделенный сервер (с использованием вашего токена), либо чужой сервер/хост, на котором вам выдали права администратора, или же вы являетесь хостом сервера с включёнными пещерами.
    • В этом случае вы также можете пользоваться консолью полноценно. Но консоль работает в двух режимах — "Локальный" и "Удалённый". В первом случае команда будет выполнено локально, словно вы гость. Во втором случае команда будет отправлена на сервер и выполнена там. Режим переключается клавишей Ctrl. "Удалённый" режим указывается слева от консоли фиолетовой надписью. При выполнении "удалённых" команд, информация выводится в лог сервера, а не в лог консоли клиента, в том числе и ошибки синтаксиса или неудачное выполнение.

В этой статье команды будут обозначатся так:
текст — сама команда.
текст — аргумент для команды.
текст — необязательный, или же опциональный аргумент для команды.
номер игрока — номер игрока в списке игроков, доступному по нажатию Tab по умолчанию, находится слева от имени игрока.

Супер режим бога[]

c_supergodmode(номер игрока)

Так же, как и c_godmode(номер игрока), делает персонажа неуязвимым, но вдобавок повышает все параметры на максимум. Выключить этот режим можно с помощью этой же самой команды. Если указать номер игрока, то команда применится не к выполняющему эту команду игроку, а к игроку под указанным номером игрока.

Если активировать режим бога в состоянии призрака, то режим не включится, но персонаж возродится с сообщением "Игрок ... был оживлён по собственной глупости".

Скорость[]

c_speedmult(множитель)

Стандартным множителем скорости является 1. Множитель 2 делает персонажа в 2 раза быстрее и т.д., а при множителе 10 или больше, персонаж легко сможет проходить сквозь стены и ходить по воде, но утонет, если у него не будет включён режим бога.

Вывести сообщение[]

c_announce(текст, интервал в секундах)

Введённый текст будет выводится в чат с интервалом, указанным в команде. Если не указан интервал, то это произойдёт только один раз. Если не указан и текст, то все выводящиеся с определённым интервалом текста перестанут выводиться.

Сохранить игру[]

c_save()

Откатить сохранения[]

c_rollback(число сохранений)

При отсутствии аргумента откатится на 1 сохранение.

Завершить работу сервера[]

c_shutdown(true/false)

Аргумент влияет на сохранение игры перед завершением работы. Если выставить false, то сохранения не будет, а если не вписывать ничего или вписать true, то игра сохранится.

Перезагрузить сервер[]

c_reset()

Игру автоматически не сохраняет.

Перегенерировать мир[]

c_regenerateworld()

Старый мир удаляется и создаётся новый. Последствия необратимы.

Перемещение игрока[]

c_move(AllPlayers[номер игрока])

Перемещает выбранного игрока на позицию под курсором.

Убить игрока[]

AllPlayers[номер игрока]:PushEvent('death')

Воскресить игрока[]

AllPlayers[номер игрока]:PushEvent('respawnfromghost')

Убить существо под курсором[]

c_sel().components.health:Kill()

Перемещение себя к игроку[]

c_goto(AllPlayers[номер игрока])

Удалить персонажа и перейти к экрану выбора персонажа[]

c_despawn(AllPlayers[номер игрока])

При этом изученные персонажем рецепты, прожитые дни и предметы из инвентаря удаляются. Если не вводить ничего, то удалится персонаж того, кто вписал эту команду.

Открытие карты[]

Без пещер:

TheWorld.minimap.MiniMap:ShowArea (0,0,0,10000)

С пещерами (данная команда работает с задержкой и может потребоваться повторный ввод):

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

Это серверная команда, и она не будет работать, если вы являетесь клиентом.

Выбрать объект под курсором[]

c_select()

Далее к этому объекту можно "обращаться" в консоли через c_sel(), чтобы его изменять. Как пример:

c_sel().components.health.currenthealth = 1

Эта команда изменяет текущее здоровье выбранного объекта на 1.

Удалить объект под курсором[]

Обе команды идентичны по функционалу.

ConsoleWorldEntityUnderMouse():Remove() 
c_select():Remove()

Посчитать количество объектов в мире[]

c_announce(c_countprefabs("prefab"))

Вместо prefab нужно подставить необходимую заготовку, которая есть в статье каждого предмета в графе "Команда призыва".
При выполнении команды в чат выведется количество данных объектов.
Пример:

c_announce(c_countprefabs("walrus_camp"))

Эта команда выведет в чат количество иглу в мире.

Исключить пользователя из списка объектов для атаки[]

c_makeinvisible()

Игрока не смогут атаковать другие игроки.

Все рецепты и бесплатное создание всем игрокам[]

for number=1,#AllPlayers do AllPlayers[number].components.builder:GiveAllRecipes() end

Все рецепты и бесплатное создание вам:

c_freecrafting() или ​AllPlayers[1].components.builder:GiveAllRecipes()​

Пропустить день[]

TheWorld:PushEvent("ms_nextcycle")

Пропустить фазу дня[]

TheWorld:PushEvent("ms_nextphase")

Пропустить время[]

c_skip(количество дней)

Если не указать количество дней, то пропустится один день. Вместе с изменением счётчика дней также промотаются различные таймеры существ и уменьшаться характеристики игрока (-75 сытости за каждый день без предметов, изменяющих скорость голодания, как пример).

Установить время для каждого сезона[]

TheWorld:PushEvent("ms_setseasonclocksegs", {summer={day=x,dusk=y,night=z}, winter={day=x,dusk=y,night=z}, spring={day=x,dusk=y,night=z}, autumn={day=x,dusk=y,night=z}})

Вместо x, y и z нужно подставить необходимое число. Сумма чисел одного сезона должна быть равна 16
Пример:

TheWorld:PushEvent("ms_setseasonclocksegs", {summer={day=0,dusk=1,night=15}, winter={day=0,dusk=1,night=15}, spring={day=0,dusk=1,night=15}, autumn={day=0,dusk=1,night=15}})

Эта команда убирает день, делает короткий вечер и долгую ночь.

Начать сезон[]

TheWorld:PushEvent("ms_setseason", "сезон")

Имя сезона нужно вводить с маленькой буквы на английском языке. Как пример:

TheWorld:PushEvent("ms_setseason", "autumn")

Эта команда включит осень.

Включить/выключить дождь[]

TheWorld:PushEvent("ms_forceprecipitation", false/true)

false = выключить, true или отсутствие аргумента — включить.

Призвать колонну из поющих раковин[]

c_shellsfromtable()

Если пройти вдоль этой колонны, то сыграет музыка из главного меню.

Призвать метеорит(ы)[]

c_spawn("shadowmeteor", количество метеоритов)

При отсутствии аргумента призывается только один.

Удар молнии[]

TheWorld:PushEvent("ms_sendlightningstrike", ConsoleWorldPosition())

При наличии громоотвода бьёт в него.

Полное открытие скрапбука[]

TheScrapbookPartitions:DebugUnlockEverything()

Полностью открывает описание предметов, еды, монстров и гигантов.

Вывод префаба объекта под курсором[]

c_announce(c_select().prefab)

Выводит в чат префаб объекта под курсором в виде текста. Может помочь узнать префаб объекта для дальнейшего призыва этого объекта, если его префаб не указан на вики.

Внимание: возможен удар по персонажу.

Перенос объекта или существа в другое место[]

Наводим курсор мыши на объект и вводим консольную команду:

x = c_select()

Затем, выбираем курсором мыши желаемое место и подтверждаем выбор следующей командой:

c_move(c_pos(), x)

Поставить игровой мир на паузу[]

SetServerPaused(значение)

Для того, чтобы поставить паузу, подставляем значение true, для того, чтобы снять - false.

Узнать свои координаты в игре[]

c_announce(c_pos(ThePlayer))

Узнать координаты другого игрока[]

Получаем список игроков и присвоенные им в игре номера командой:

c_listplayers()

Результат команды будет выведен в консоль.

Затем, вводим следующую команду, используя полученный номер:

c_announce(c_pos(AllPlayers[номер]))

Узнать координаты всех объектов, существ, боссов по их наименованию[]

c_list("префаб")

Выведет результаты в окно консоли. Полученные координаты можно использовать как для самостоятельной навигации, так и ввести в плагин Waypoint. (укажет стрелкой и флажком на карте)

Переместить себя на указанные координаты[]

c_teleport(x, y, z, ThePlayer)

Переместить объект на указанные координаты[]

c_teleport(x, y, z, c_find("префаб"))

Стереть все объекты на сервере[]

c_emptyworld()

Эта команда удобна на тестовом сервере, где можно пощупать предметы и боссов. Никаких лишних деревьев, боссов, пчёл, лягушек и пауков.

Использовать с осторожностью, потому что эта команда способна уничтожить ваш игровой мир. Если вы таки наступили на эти грабли - используйте команду c_rollback(), чтобы откатиться.

Удалить все объекты, соответствующие префабу[]

c_removeall("префаб")

Получить указатель на местоположение ближайшего объекта[]

inst = c_find("префаб")
inst:AddComponent("hudindicatable")
inst.components.hudindicatable:SetShouldTrackFunction(function() if ThePlayer:IsNear(inst, 20) then inst.components.hudindicatable:UnRegisterWithWorldComponent() end return true end )

Включить подсветку под игроком[]

ThePlayer.Light:Enable(true)

Задать радиус подсветки под игроком[]

ThePlayer.Light:SetRadius(10)

Забиндить команду на кнопку[]

TheInput:AddKeyDownHandler(<клавиша>, function() <команды> end)

Примеры:

TheInput:AddKeyDownHandler(KEY_F1, function() c_spawn("shadowmeteor") end)

Эта команда по нажатию клавиши F1 призовёт метеор.

TheInput:AddKeyDownHandler(KEY_K, function() local d = c_select() if d then d:Remove() end end)

А эта команда по нажатию клавиши "К" будет удалять объект под курсором. Перечень названий клавиш можно найти в папке игры DST\data\databundles\scripts.zip\constants.lua

Важно! Команды не должны завершаться ошибкой, иначе по нажатию клавиши игра завершится аварийно. Например, нельзя просто выполнить c_select():Remove(), для удаления объекта, потому что если объекта не будет - игра сгенерирует ошибку, из-за невозможности удалить то, чего нет. В примере выше показано, как такие ситуации можно преодолевать: проверять с помощью команды if ... then ... end существование объекта.

Advertisement