MAATRIX GAMES / Блог / Unturned: установка модов на сервер

Unturned: установка модов на сервер

MAATRIX GAMES

Голая PEI или Washington быстро приедаются, а в Steam Workshop для Unturned лежат тысячи карт, оружейных паков и косметических модов, которые оживляют выживание заново. Проблема в том, что установка мода на сервер устроена не так, как в большинстве других игр: нет единой кнопки "включить мод", есть отдельный файл под скачивание контента и отдельная логика для карт. Разберём по порядку, как прописать Workshop ID, не перепутать карту с обычным модом и не словить рассинхрон версий с игроками в первый же вечер. Если сервера ещё нет — сначала пройдите установку сервера Unturned через SteamCMD, там разобраны структура папок и Commands.dat. Эта статья продолжает с того момента, когда Server/Commands.dat уже существует и сервер хотя бы раз запускался и был остановлен.

Как устроены моды в Unturned: Workshop-контент, карты и плагины

Прежде чем лезть в конфиги, стоит развести три разных вещи, которые в обиходе называют одним словом "моды":

  • Контент-моды — новое оружие, скины, ретекстуры, наборы предметов. Скачиваются через Steam Workshop и подключаются автоматически движком после загрузки — отдельно "включать" их командой не нужно.
  • Карты сообщества — тоже распространяются через Workshop, но требуют дополнительно указать имя карты в Map в Commands.dat, иначе сервер продолжит грузить дефолтную официальную карту.
  • Серверные фреймворки и плагины (OpenMod, устаревающий RocketMod) — это не Workshop-моды в привычном смысле. Сам фреймворк ставится отдельным установщиком поверх дедика, а плагины под него чаще берутся с OpenMod Hub или GitHub автора, а не подпиской в Steam. Если вам нужны кастомные команды, экономика, кланы — это отдельная история, не про WorkshopDownloadConfig.json.

В этой статье фокус на первых двух — контенте и картах через официальный механизм Workshop-загрузки. Про плагины-фреймворки — отдельный разговор, здесь только оговорим, что путать их с обычными модами не стоит: попытка "прописать ID плагина OpenMod в Workshop-конфиг" ничего не даст, потому что плагины скачиваются и устанавливаются совершенно другим путём.

Находим Workshop ID и прописываем в WorkshopDownloadConfig.json

Каждый мод в Steam Workshop имеет числовой ID, который виден прямо в адресной строке страницы мода:

https://steamcommunity.com/sharedfiles/filedetails/?id=2231878120

Число после ?id= — это и есть Workshop ID, единственный идентификатор, который нужен серверу Unturned (в отличие, например, от Project Zomboid, где отдельно фигурируют Workshop ID и внутренний Mod ID — у Unturned такой путаницы нет).

За скачивание контента отвечает файл WorkshopDownloadConfig.json, который лежит рядом с папкой Server/ внутри конкретного инстанса:

u3ds/Servers/MyServer/WorkshopDownloadConfig.json

Останавливаем сервер (редактировать конфиги на живом процессе нельзя — тот же принцип, что и с Commands.dat) и открываем файл. Структура простая — массив ID:

{
  "File_IDs": [
    2231878120,
    2727579637,
    2145633889
  ]
}

Правила:

  • Каждый ID — отдельный элемент массива, через запятую, без завершающей запятой после последнего значения (иначе получите ошибку парсинга JSON при следующем запуске).
  • Порядок в массиве не влияет на приоритет загрузки контента — это просто список того, что нужно скачать, а не порядок подключения.
  • Один Workshop-элемент может содержать сразу несколько единиц контента (например, модпак-компиляция из десятка предметов) — тогда достаточно одного ID этого модпака, дробить его на составляющие не нужно.

После правки файла запускаем сервер как обычно — при старте он сам обратится к Steam и скачает перечисленные ID в служебную папку воркшоп-контента внутри u3ds.

Поднять сервер Unturned за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Карты из мастерской: скачивание и указание в Commands.dat

Карта — это тоже Workshop-элемент, и её ID добавляется в WorkshopDownloadConfig.json точно так же, как и любой другой мод. Разница начинается после скачивания: контент-моды (оружие, скины) движок подхватывает сам, а карту нужно явно назначить активной.

Порядок действий:

  1. Добавьте Workshop ID карты в File_IDs в WorkshopDownloadConfig.json, как описано выше.
  2. Запустите сервер один раз, чтобы карта скачалась — в консоли при старте должны появиться строки о загрузке Workshop-контента.
  3. Остановите сервер, откройте Server/Commands.dat и укажите точное имя карты в Map:
Map Washington_Remastered

Имя карты нужно писать ровно так, как оно указано автором на странице Workshop или в файлах карты после скачивания (папка с именем карты появится в директории уровней сервера) — опечатка в регистре или пробел лишает сервер возможности найти карту, и он молча откатится на дефолтную.

Отдельный нюанс: смена карты на уже заселённом сервере равносильна новому миру — прогресс построек и лут на старой карте не переносятся автоматически. Если планируете смену карты не на старте, а посреди сезона, предупредите игроков заранее и решите, вайпаете вы мир или держите старую карту доступной параллельно на другом порту.

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

Не полагайтесь на то, что конфиг "должен просто сработать" — после правки WorkshopDownloadConfig.json смотрите консоль сервера при запуске напрямую или лог, если сервер поднят через systemd (настройка автозапуска разобрана в статье про установку сервера):

journalctl -u unturned -f

При успешной загрузке в логе должны последовательно появиться строки о скачивании каждого File ID из конфига, а затем — подтверждение, что контент подключён. Если вместо этого видите обрыв загрузки или ошибку доступа к Steam — чаще всего дело в сетевых ограничениях VPS или временной недоступности серверов Steam, попробуйте перезапустить через несколько минут.

Частая ситуация — сервер стартует без видимых ошибок, но новый контент не отображается в игре. Тут стоит проверить:

  • Совпадает ли Workshop ID в конфиге с ID со страницы мода (опечатка на одну цифру — и качается совсем другой контент, который просто не используется);
  • Не устарел ли мод — Unturned регулярно обновляется, и мод, который автор не трогал год-два, может быть несовместим с текущей версией движка (дата последнего обновления видна на странице Workshop рядом с кнопкой подписки);
  • Была ли скачка вообще завершена — при большом объёме контента (особенно карт) первый запуск после добавления новых ID может занять заметно дольше обычного, и если у вас короткий таймаут Restart=on-failure в systemd-юните, сервис может перезапуститься раньше, чем закончится загрузка, создав петлю рестартов на ровном месте.

Если сервер вообще не поднимается после добавления модов — отдельно разобрана диагностика в статье Unturned: сервер не запускается, там как раз есть шаги для случая с битым Workshop-конфигом.

Подписка игроков и синхронизация версий клиент-сервер

Скачанный сервером контент не появляется у игроков автоматически — это отдельный шаг на стороне клиента, и именно тут теряется больше всего времени в первый день после обновления списка модов:

  1. Каждый игрок открывает страницу мода в Steam Workshop (тот же URL с тем же ID, что и в WorkshopDownloadConfig.json) и нажимает Subscribe.
  2. Steam-клиент игрока сам скачивает контент при следующем запуске Unturned — отдельно включать что-то в игровом меню, в отличие от некоторых других игр, не требуется: Unturned подключает подписанный контент автоматически при подключении к серверу с совпадающим списком модов.
  3. Если версия контента у игрока и у сервера разошлась (игрок давно не запускал Steam, и локальный кэш устарел) — подключение обычно либо отклоняется с ошибкой о несовпадении контента, либо клиент довольно долго "зависает" на этапе загрузки, пока Steam не досинхронизирует файлы в фоне.

Практический совет для сообщества: держите открытый список прямых ссылок на все Workshop-элементы сервера (карту и моды) — например, закреплённым сообщением в Discord. Это резко снижает число вопросов "почему не подключаюсь" после каждого обновления списка контента, потому что игроки могут сами подписаться на всё разом одной страницей, а не искать по частям.

Отдельно стоит помнить про автообновление модов на сервере — Steam Workshop контент у сервера обновляется сам при каждом запуске, если ID остаётся в конфиге, и это не всегда безопасно: свежая версия мода на сервере может не совпасть с тем, что ещё не успело обновиться у части игроков, особенно сразу после выхода патча к самому мода.

Типичные ошибки при установке модов

Разбор самых частых грабель, на которых спотыкаются при первой установке Workshop-контента на Unturned:

  • JSON без запятых или с лишней запятой в конце массива. WorkshopDownloadConfig.json — валидный JSON, и одна лишняя или пропущенная запятая ломает парсинг целиком, а не только для конкретного ID. Проверяйте файл через любой онлайн-валидатор JSON перед перезапуском, если редактируете вручную.
  • Правка конфига на работающем сервере. Как и с Commands.dat, изменения в WorkshopDownloadConfig.json нужно вносить только при остановленном процессе — иначе при следующем сохранении сервер может перезаписать файл своей внутренней версией и стереть правки.
  • Перепутанный ID. Скопировали не тот номер со страницы Workshop (соседняя вкладка, другой мод того же автора) — контент скачается, но это будет не то, что вы ожидали увидеть в игре.
  • Карта, добавленная в Workshop-конфиг, но не прописанная в Map. Самая частая причина "я же скачал карту, а сервер всё равно грузит PEI" — Workshop-скачивание и активация карты в Commands.dat это два разных шага, оба обязательны.
  • Несовместимость мода с текущей версией игры. Unturned регулярно получает крупные обновления, которые иногда ломают старые моды. Если после апдейта игры сервер начал вести себя странно с ранее рабочим модом — в первую очередь проверьте страницу Workshop на предмет свежих комментариев о совместимости.
  • Слишком тяжёлый таймаут автозапуска. Если моды и карты объёмные, а RestartSec в systemd-юните маленький — сервис может уйти в цикл рестартов, не успев докачать контент. Увеличьте RestartSec временно на период добавления крупных модов.

Поднять сервер Unturned за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Нужно ли что-то прописывать в Commands.dat для обычных модов (не карт)?

Нет, контент-моды (оружие, предметы, скины) подключаются автоматически после скачивания через WorkshopDownloadConfig.json — в Commands.dat отдельно указывается только карта через Map.

Сколько времени занимает скачивание модов при первом запуске?

Зависит от объёма контента и скорости связи с серверами Steam — лёгкие косметические моды качаются за секунды, крупные карты могут занять несколько минут. Точную цифру дать нельзя, ориентируйтесь на лог загрузки в консоли.

Можно ли ставить моды без Steam, скопировав файлы вручную?

Официальный путь для Unturned — именно Steam Workshop через WorkshopDownloadConfig.json, ручная раскладка файлов контента не является поддерживаемым сценарием и может не работать корректно между обновлениями игры.

Что делать, если после установки модов сервер вообще перестал запускаться?

Сначала откатите последнее изменение в WorkshopDownloadConfig.json (уберите добавленные ID), проверьте, что сервер снова стартует, а затем добавляйте моды по одному, проверяя лог после каждого — так проще найти конкретный проблемный ID.

Обязательно ли всем игрокам подписываться на одни и те же моды?

Да, если контент влияет на синхронизацию мира (новое оружие, карта) — несовпадение списка контента между сервером и клиентом блокирует или ломает подключение. Чисто косметические ретекстуры без сетевого эффекта иногда работают локально у подписавшегося игрока, но полагаться на это не стоит.