По умолчанию консоль в DST включена.
В DST есть несколько вариантов вашего статуса в игре:
- Вы хост.
- В этом случае вы являетесь админом и можете полноценно пользоваться консолью.
- Вы гость.
- У вас нет прав и вы не можете пользоваться консолью. Есть ограниченное число команд, которые работают на клиентской стороне. Но почти вся ключевая информация обрабатывается на сервере, поэтому читерить не получится.
- Вы админ другого сервера. То есть это либо ваш выделенный сервер (с использованием вашего токена), либо чужой сервер/хост, на котором вам выдали права администратора, или же вы являетесь хостом сервера с включёнными пещерами.
- В этом случае вы также можете пользоваться консолью полноценно. Но консоль работает в двух режимах — "Локальный" и "Удалённый". В первом случае команда будет выполнено локально, словно вы гость. Во втором случае команда будет отправлена на сервер и выполнена там. Режим переключается клавишей 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 существование объекта.