На ванильном выделенном сервере команда devcommands ничего не даёт, даже если ваш ID есть в adminlist.txt. Набор читов - god, fly, spawn, goto, killall и остальные - блокируется на выделенных серверах самой игрой. Server Devcommands от JereKuusela - мод, который снимает эту блокировку для админов и только для админов. Коротко: установите его на ПК каждого админа, впишите ID админов в adminlist.txt, а если нужны дополнительные возможности - поставьте мод и на сервер. Это выполнение команд на самом сервере, журнал того, кто что вводил, и возможность запрещать отдельные команды. Обычным игрокам ничего не нужно.
В этой статье разберём, что именно меняет мод, где его нужно устанавливать, файл конфигурации, алиасы и бинды, дополнительные команды и то, как не дать доверенному админу случайно испортить общий мир. Что делают отдельные чит-команды, описано в статье Valheim devcommands: разбор команд, а у синтаксиса spawn есть отдельное руководство. Здесь речь о самом моде и о том, что вокруг него.
Что делает Server Devcommands#
На Thunderstore мод называется JereKuusela-Server_devcommands. На момент написания актуальна версия 1.115, единственная зависимость - BepInExPack для Valheim. Мод обновляется после каждого крупного обновления Valheim, и это важно: инструмент админа, который ломается в день патча, оказывается недоступен именно тогда, когда что-то пошло не так.
Что он меняет, простыми словами:
- `devcommands` работает на выделенном сервере для любого игрока, прошедшего проверку на админа, то есть чей ID есть в
adminlist.txtсервера. Остальным по-прежнему отказывают. - Консоль открывается без параметра запуска `-console`, а чит-команды работают и в окне чата, с автодополнением параметров.
- Несколько команд в одной строке, разделённых
;, и новые команды на основе старых черезalias. - Бинды клавиш с модификаторами и колёсиком мыши вместо ванильной системы
bind. - Улучшенные режимы:
god, который ещё и убирает расход выносливости, отбрасывание и оглушение;ghost, способный скрывать вас от игроков;fly, позволяющий проходить сквозь стены. - Новые команды для телепортации игроков, рассылки сообщений, поиска объектов, отмены спавна и выполнения команд на самом сервере.
- Журнал: если мод стоит и у админа, и на сервере, каждая команда админа записывается в лог сервера.
Права админа мод никому не выдаёт. Ворота по-прежнему - список админов, и мод его проверяет. Он также не добавляет RCON или веб-консоль: команды по-прежнему вводятся в игре подключённым игроком.
Где его нужно устанавливать#
Здесь многие путаются. Server Devcommands - в первую очередь клиентский мод. Консоль, бинды, алиасы и чит-команды работают в игре админа. Копия на сервере необязательна и добавляет конкретный набор возможностей.
| Где установлен | Что вы получаете |
|---|---|
| Только на ПК админа | devcommands с проверкой на админа, алиасы, бинды, команды в чате, улучшенные режимы |
| На ПК админа и на сервере | Всё перечисленное, плюс команды server, журнал команд, find, отключённые команды, отключённые события и глобальные ключи, приватные позиции игроков, видимые админам |
| Только на сервере | Ничего полезного - ни у кого нет клиентской половины, чтобы вводить команды |
| У обычных игроков | Не нужен. Они могут заходить с ним и без него |
Поскольку игроки без мода могут заходить, Server Devcommands не вызывает кики из-за несовпадения версий, как моды с контентом. Он не использует проверку версий при подключении. Значит, и ничто не мешает админу сидеть на старой копии: если команда ведёт себя по-разному у двух админов, сначала сравните версии.
На клиенте проще всего поставить мод через менеджер модов (r2modman или Thunderstore Mod Manager): найдите "Server devcommands" и установите его в тот профиль, с которым вы играете в Valheim. Если у вашей группы общий профиль, добавьте мод туда; как это сделать, описано в статье профили r2modman для группы. Вручную: в архиве один плагин, положите его в BepInEx/plugins в папке игры.
На сервере сначала должен быть установлен BepInEx: сам пакет, стартовый скрипт start_server_bepinex.sh на Linux и подтверждённый первый запуск, после которого создана папка BepInEx/plugins. Полная инструкция есть в статье моды Valheim с BepInEx на сервере. Затем загрузите тот же файл плагина в папку BepInEx/plugins сервера по SFTP или через файловый менеджер и перезапустите сервер. В логе должна появиться строка о загрузке:
[Info : BepInEx] Loading [ServerDevcommands 1.115.0]Если этой строки нет, значит, BepInEx вообще не запущен - проверьте команду запуска, прежде чем разбираться с модом.
Как пройти проверку на админа#
Проверка использует собственный adminlist.txt сервера, по одному ID в строке. На сервере только для Steam это 17-значный SteamID64. На сервере с кроссплеем ID содержат префикс платформы, а мод принимает и ID в стиле PlayFab:
// Steam-only server76561198012345678// Crossplay serverSteam_76561198012345678Подходит тот формат, который сервер выводит в лог при подключении игрока, поэтому копируйте его оттуда, а не с какого-нибудь сайта. Все три файла списков подробно описаны в статье adminlist, bannedlist и permittedlist.
Если включён auto_devcommands (по умолчанию так и есть), мод сам выполняет devcommands, когда вы заходите на сервер, где проходите проверку. В консоли вы увидите сообщение о том, что читы включены. Если его нет:
- Убедитесь, что ваш ID есть в
adminlist.txtв каталоге сохранений сервера, а не в копии где-то в другом месте. Сервер перечитывает файл, но для надёжности зайдите заново. - Введите
devcommandsсами и прочитайте ответ. Отказ означает, что проверка не пройдена; полное отсутствие ответа - что мод не загружен на вашем клиенте. - Убедитесь, что вы играете на ПК. Игроки на Xbox не могут устанавливать моды, поэтому на сервере с кроссплеем всем этим могут пользоваться только админы с ПК.
Файл конфигурации и dev_config#
Настройки хранятся в BepInEx/config/server_devcommands.cfg, который создаётся при первом запуске. Копия админа управляет клиентским поведением, копия сервера - серверными возможностями. Менять настройки можно тремя способами: отредактировать файл, воспользоваться модом Configuration Manager в игре или применить собственную команду мода:
dev_config auto_god 1dev_config auto_flyserver dev_config disable_events 1dev_config [name] [value] задаёт значение; если значение опущено, параметр переключается, 0 выключает, 1 включает. С приставкой server команда меняет копию на сервере, для чего мод должен стоять и на сервере.
Настройки, к которым вы с наибольшей вероятностью обратитесь:
| Настройка | По умолчанию | Что делает |
|---|---|---|
auto_devcommands | true | Выполняет devcommands при входе, если вы админ |
auto_god, auto_ghost, auto_fly, auto_nocost, auto_debugmode | false | Автоматически включают соответствующий режим |
god_no_stamina, god_no_knockback, god_no_stagger | true | Что ещё убирает god |
ghost_invisibility | false | Скрывает админа в режиме ghost от других игроков |
fly_no_clip | false | Полёт сквозь ландшафт и постройки |
access_private_chests | true | Админ может открывать приватные сундуки других игроков |
access_warded_areas | true | Админ может строить и взаимодействовать внутри зон варда |
max_undo_steps | 50 | Сколько действий помнит undo |
disable_events | false | На сервере: отключает случайные набеги |
server_chat | false | На сервере: позволяет серверу отправлять сообщения в чат |
command_log_format | см. ниже | Формат серверного журнала команд; пустое значение отключает его |
Два пункта требуют пояснения. access_private_chests и access_warded_areas по умолчанию включены - это нужно админу, который наводит порядок после грифинга, - но это также значит, что админ может обчистить чью угодно базу, а вард этого не заметит. Если ваши админы одновременно обычные игроки в том же мире, вопрос доверия стоит один раз обсудить вслух. Что защищают варды, когда админ не вмешивается, описано в статье варды и грифинг.
server_chat добавляет на сервер фиктивного клиента, чтобы сам сервер мог писать в чат. В документации мода отмечен побочный эффект: с боссов выпадает лишний предмет, потому что игра считает фиктивного клиента игроком при расчёте добычи. Не включайте этот параметр без реальной необходимости.
Алиасы, несколько команд и бинды#
Три возможности превращают консоль из ящика с читами в инструмент админа.
Несколько команд. Всё, что разделено ;, выполняется по порядку. wait добавляет паузу в миллисекундах:
god; ghost; flybroadcast center Restart in 5 minutes; wait 240000; broadcast center Restart in 1 minuteАлиасы. alias [name] [command] создаёт новую команду. Маркер подстановки, по умолчанию $$ (настройка substitution), заменяется тем, что вы введёте после имени алиаса:
alias admin god; ghost; fly; nocostalias say broadcast center $$alias heal dmg $$ -1000После этого admin включает весь набор, а say Raid at the main base выводит сообщение в центре каждого экрана. Алиасы сохраняются в собственном конфиге админа, поэтому они следуют за админом, а не за сервером.
Бинды. Мод заменяет ванильный bind версией с поддержкой клавиш-модификаторов: bind [key,modifier1,modifier2] [command]. Именно версия с модификаторами делает бинды безопасными: одиночную клавишу легко случайно нажать посреди боя, а сочетание клавиши с leftalt - нет.
bind keypad1,leftalt adminbind keypad2,leftalt calm 30bind keypad3,leftalt removedropsЕсть и бинды на колёсико мыши, они включаются параметром mouse_wheel_bind_key, по умолчанию равным none.
Дополнительные команды, о которых стоит знать#
Мод добавляет или расширяет длинный список команд; help в игре выводит всё, что есть в вашей версии, с описаниями. Вот те, что оправдывают своё место на общем сервере.
| Команда | Что делает |
|---|---|
playerlist | Игроки онлайн с их ID, персонажами и позициями |
tp [players] [x,z,y or player] | Телепортирует игроков по имени, ID или маске |
goto [x,z,y], goto [name], goto last | Телепортирует вас к координатам, к игроку или обратно |
pos [player] | Позиция игрока |
broadcast [center/side] [message] | Сообщение всем игрокам |
message [players] [center/side] [message] | Сообщение отдельным игрокам |
calm [radius] | Успокаивает разъярённых существ поблизости (по умолчанию 20) |
repair [radius] | Чинит ближайшие постройки (по умолчанию 20) |
dmg [players] [amount] | Наносит урон игрокам; отрицательное значение лечит |
inventory [clear/refill/repair/upgrade] | Управление вашим собственным инвентарём |
find [id] [limit] | Находит объекты по ID и отмечает их на карте (нужна копия на сервере) |
search_id [term] | Поиск по ID объектов, полезно перед spawn |
undo / redo | Отменяет или возвращает недавние действия, например спавн |
event [event] [x] [z] | Запускает событие в указанном месте |
move_spawn [x,z,y] | Переносит стандартную точку появления в мире |
resetdungeon | Сбрасывает ближайший лагерь или подземелье - удаляет всё внутри |
seed | Выводит сид мира |
server [command] | Выполняет команду на самом сервере |
find отвечает на больше всего обращений в поддержку. find Cart ставит метку на каждую телегу в мире, так вы найдёте ту, которую кто-то бросил в болоте. Второй по полезности - undo: ошибочно набранный spawn Troll 50 отменяется тремя нажатиями клавиш вместо боя.
resetdungeon и move_spawn - команды противоположного рода: набрать легко, откатить трудно. Используйте их только после резервной копии.
Как ограничить команды на групповом сервере#
Если мод установлен на сервере, вы можете запретить отдельные команды для всех админов, кроме нескольких названных root-пользователей. Эта возможность делает Server Devcommands пригодным для сервера с несколькими админами разного темперамента.
- Отключённые команды.
disable_commandхранит список команд, которые могут выполнять только root-пользователи. Пример из документации мода:server dev_config disable_command event, который не даёт админам запускать набеги вручную. - Root-пользователи. Список SteamID через запятую в
server_devcommands.cfgна сервере, в разделе консоли. Root-пользователи могут выполнять отключённые команды. Задать его черезdev_configнамеренно нельзя - файл нужно править на сервере, чтобы админ не мог повысить себя из игры. - Отключённые глобальные ключи.
server dev_config disable_global_key [keys]не даёт убийствам боссов устанавливать названные ключи. Без аргументов команда выводит уже отключённые. Что открывает каждый ключ, объясняет статья глобальные ключи и setkey. - Отключённые события.
server dev_config disable_events 1полностью отключает случайные набеги. Для более тонкой настройки обычно лучше подходит ванильный модификатор мираraids- см. набеги и события на серверах.
Разумная схема для группы с одним владельцем и двумя помощниками: владелец - единственный root-пользователь; в список отключённых на сервере входят команды, которые нельзя отменить или которые меняют весь мир, - resetdungeon, move_spawn, killall, resetkeys, removekey, setkey, exploremap, resetmap, - а у помощников остаются tp, goto, calm, repair, kick и broadcast.
server dev_config disable_command resetdungeonserver dev_config disable_command move_spawnПосле этого откройте server_devcommands.cfg на сервере и посмотрите, что сохранила ваша версия: добавил ли второй вызов команду в список или заменил его, - и при необходимости поправьте список там.
Журнал команд#
Когда мод стоит и у админа, и на сервере, каждая команда записывается в консоль и лог сервера в формате из command_log_format:
{player_id}/{character_name} ({pos_x:F0}, {pos_z:F0}, {pos_y:F0}): {command}Так получаются строки вроде Steam_76561198012345678/Astrid (512, -1340, 31): spawn Wolf 4. Это единственная запись о том, кто что заспавнил, и первое, что нужно читать, когда база оказывается забита троллями. На панелях хостинга она пролетает в консоли вместе со всем остальным; в RE:NODE у живой консоли есть командная строка и история, а файлы логов лежат в файловом менеджере в корне сервера, так что по ним можно искать задним числом (консоль и файлы в руководстве по панели).
Учтите, что журнал фиксирует только команды админов, у которых тоже стоит мод, - а поскольку именно мод даёт им читы, это все, кто имеет значение. Если задать command_log_format пустым, журнал отключится. Веских причин для этого почти не бывает.
Устранение неполадок#
`devcommands` отвечает, что это не разрешено. Проверка на админа не пройдена. ID в adminlist.txt не совпадает с тем, что сервер пишет в лог о вас: чаще всего это отсутствующий префикс платформы на сервере с кроссплеем или лишний пробел.
Ничего не происходит, когда я ввожу команду. Мод не загружен на вашем клиенте. Запускайте игру кнопкой "Start modded" в менеджере модов, а не через Steam, иначе BepInEx вообще не загружается.
Команды `server` возвращают ошибку. На сервере нет мода или не работает BepInEx сервера. Проверьте в стартовом логе строку о загрузке.
`find` ничего не находит на сервере. Нужна копия на сервере; без неё клиент видит только зоны, загруженные вокруг вас.
Команда работает у одного админа, а у другого нет. Разные версии мода, либо один из них root-пользователь, а второй упирается в список отключённых команд.
Всё сломалось после патча Valheim. Дождитесь обновления мода, затем обновите клиентские и серверную копии вместе. Общий порядок действий описан в статье что делать, когда обновление мода всё ломает.
FAQ#
Нужно ли всем игрокам устанавливать Server Devcommands?
Нет. Он нужен на ПК только тем админам, которые хотят пользоваться командами. Игроки без него заходят как обычно и не получают кик, потому что мод не сверяет версии между клиентами и сервером.
Можно ли использовать его на сервере с кроссплеем?
Да, для админов с ПК. Игроки на Xbox не могут устанавливать моды, поэтому команд у них не будет, но они всё равно могут заходить на сервер с модом, так как для остальных он не обязателен на клиенте.
Безопасно ли оставлять его на давно идущем мире?
Сама установка ничего в мире не меняет. Другое дело, что с ним делают админы: неосторожные killall или resetdungeon не отменить. Делайте резервную копию перед любой сессией с большим объёмом админской работы и используйте список отключённых команд для помощников.
Работает ли он вместе с World Edit Commands и другими модами JereKuusela?
Да. Другие моды JereKuusela, такие как World Edit Commands и Infinity Hammer, написаны так, чтобы работать рядом с ним, а их команды можно использовать в алиасах и биндах, как любые другие. Устанавливайте каждый на те стороны, которые указаны на его странице: правила у них не одинаковые.
Почему с босса иногда выпадает два трофея?
На некоторых серверах причина в включённом server_chat: фиктивный чат-клиент учитывается как игрок при расчёте добычи с босса. Если вы этого не хотели, отключите его командой server dev_config server_chat 0.


