MAATRIX GAMES / Блог / Моды для Space Engineers: установка

Моды для Space Engineers: установка

MAATRIX GAMES

Голый ванильный мир Space Engineers быстро упирается в потолок: нет нужных блоков под конкретный стиль построек, программируемый блок приходится кодить с нуля вместо того, чтобы взять готовый скрипт, а скины кораблей всем в отряде надоели через неделю. Хорошая новость — на дедике моды ставятся не игроками по одному, а один раз сервером, и дальше клиенты просто получают их у Steam Workshop сами. Плохая новость — этот процесс завязан на XML-конфиг и на версию игры, и just add ID тут работает не всегда. Разберём по шагам, как правильно прописать моды на сервере, чтобы они действительно подхватились, а не просто лежали мёртвым грузом в списке. Если сервер ещё не поднят — сначала пошаговая инструкция по установке сервера Space Engineers, там разобран SteamCMD, мастер настройки и структура XML-конфига, на которую мы будем опираться ниже.

Три типа модов и что каждый из них меняет на сервере

В мастерской Space Engineers мод — понятие широкое, и от типа зависит, придётся ли пересоздавать мир или можно обойтись перезапуском сервера.

  • Блоки (block mods) — новые детали для кораблей и станций: реакторы, орудия, декоративные панели, целые серии от известных авторов вроде тех же расширенных ангаров или промышленных блоков. Такие моды добавляют записи в справочник построек (Toolbar/G-меню), и без них старые сохранения, где эти блоки уже стоят на грид-сетках, просто откажутся грузиться — сервер выдаст ошибку про отсутствующий контент.
  • Скрипт-моды (programmable block scripts / mod scripts) — либо готовые скрипты для программируемого блока, которые игрок сам выбирает и вставляет в PB, либо моды, которые встраивают логику прямо в игровые системы (например, автоматизация конвейеров или ИИ-поведение блоков). Первые не требуют подписки на сервере вообще — это просто код, который игрок копирует в свой блок локально. Вторые — полноценные Workshop-моды с ID, которые нужно прописывать в конфиг сервера.
  • Скины (skin mods) — перекраска брони, HUD или текстур блоков. Самые безобидные с точки зрения совместимости: почти никогда не трогают геймплейную логику и редко ломаются после патчей, но по той же причине именно их проще всего забыть отключить, когда они перестают обновляться автором.

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

Где взять Workshop ID мода

Для прописывания мода на сервере игра не использует название — только числовой Published File ID из Steam Workshop.

  1. Открываем страницу мода в Steam Workshop в браузере (steamcommunity.com/sharedfiles/filedetails/?id=...).
  2. Число после ?id= в адресной строке — это и есть искомый ID, обычно 8-10 цифр.
  3. Альтернативно — то же самое можно скопировать из клиента Steam: правая кнопка на моде в подписках → "Просмотреть в Steam" → тот же URL.

Держите список ID отдельным файлом (текстовиком с названием мода в комментарии рядом) — когда сервер растёт до 15-20 модов, вспомнить, какой ID за что отвечает, без подписи уже нереально.

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

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

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

Прописываем моды в конфиге сервера

Список активных модов хранится в том же XML-конфиге инстанса, который создаётся мастером при первой генерации мира (в статье про установку сервера он называется SpaceEngineers-Dedicated.cfg — имя файла и точное расположение секции могут немного отличаться между версиями, но структура ниже актуальна для текущих сборок). Внутри корневого <MyConfigDedicated> ищите или добавляйте блок <Mods>:

<Mods>
  <ModItem>
    <PublishedFileId>123456789</PublishedFileId>
    <PublishedServiceName>Steam</PublishedServiceName>
  </ModItem>
  <ModItem>
    <PublishedFileId>987654321</PublishedFileId>
    <PublishedServiceName>Steam</PublishedServiceName>
  </ModItem>
</Mods>

Каждый <ModItem> — один мод: PublishedFileId — тот самый ID со страницы Workshop, PublishedServiceName — почти всегда Steam (у мода, залитого через Mod.io, значение будет другим, но подавляющее большинство модов SE лежит именно в Steam Workshop).

Правила, которые часто ломают порядок работы:

  • Останавливайте сервер перед правкой конфига. Список модов читается при старте инстанса — на лету он не обновляется, а если сервер перезапишет свой конфиг поверх вашей правки во время выключения, изменения потеряются.
  • Порядок ModItem иногда имеет значение — некоторые сборки модов (например, наборы блоков, зависящие от общей библиотеки текстур) грузятся стабильнее, если мод-зависимость стоит в списке раньше зависимого от него мода. Если сервер падает на старте при новом моде — попробуйте переставить его выше.
  • Мир уже создан? Моды-блоки, добавленные постфактум, на существующие сохранения не влияют — новые детали просто появятся в справочнике построек. А вот удаление мода, чьи блоки уже стоят в мире, либо ломает загрузку сейва, либо (в некоторых версиях) заменяет отсутствующие блоки на заглушки — оба варианта неприятные, поэтому отключать мод с уже построенными объектами стоит с бэкапом под рукой.

Если вручную редактировать XML не хочется — веб-панель Xocliw's Space Engineers Dedicated Server Manager, которая уже упоминалась в статье про установку сервера, умеет добавлять моды по ID через интерфейс без прямого редактирования файла — это сторонний инструмент, но для сервера с частой ротацией модов он ощутимо экономит время на рутинных правках.

Программируемые блоки и скрипты: что нужно отдельно

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

  • Многие популярные PB-скрипты (авто-майнеры, системы управления производством, автопилоты) публикуются той же мастерской как "Script" в фильтре типов контента — их можно и нужно всё равно добавлять в <Mods>, если вы хотите, чтобы скрипт был доступен всем игрокам сразу из библиотеки блока, а не требовал ручного копипаста кода от каждого.
  • Часть сложных скриптов и модов, которые меняют базовое поведение симуляции (не просто скрипт в PB, а системный мод), исторически требовали включённого экспериментального режима мира. Ситуация с этим требованием менялась от версии к версии — перед установкой такого мода проверяйте описание страницы Workshop: автор почти всегда прямо пишет, нужен ли экспериментальный режим (Experimental Mode) в конкретной актуальной версии игры.
  • PB-скрипты потребляют ресурсы CPU сервера при выполнении — сложный скрипт с плотным циклом обновления на десятках одновременно работающих блоков заметно добавляет нагрузку на симуляцию, которая и так у Space Engineers по большей части однопоточная. Если после массового включения скриптов сервер начал подтормаживать — это первое место для проверки.

Совместимость с версией игры: главный источник проблем

Space Engineers регулярно получает крупные обновления от Keen Software House, которые меняют API модов, структуру блоков или физику. После такого патча часть модов на какое-то время просто перестаёт грузиться или начинает вести себя не так, как раньше — это не редкость, а нормальный побочный эффект активной разработки игры.

Что стоит делать по правилу, а не по факту падения сервера:

  • Перед плановым обновлением игры проверяйте страницу каждого мода в списке на дату последнего изменения и на свежие комментарии — сообщество обычно быстро пишет в комментариях "не работает после патча X.Y", это самый быстрый способ узнать заранее, а не по факту падающего сервера.
  • Держите тестовый мир (или хотя бы копию боевого сохранения) отдельно от продакшена, чтобы проверять список модов после каждого крупного обновления игры, прежде чем катить изменения на сервер, где играют люди.
  • Если мод не обновился под новую версию, а критичен для мира — временно откатывать версию сервера через SteamCMD не всегда возможно надёжно (Keen не всегда держит старые билды доступными через app_update с конкретным manifest ID), поэтому реалистичный план — либо ждать обновления мода от автора, либо временно отключать именно его, а не весь список.
  • Логи сервера при падении на старте обычно прямо называют проблемный PublishedFileId — это самая быстрая диагностика, не нужно отключать моды по одному вслепую.

Как моды попадают к игрокам и типичные сбои

Клиентам не нужно вручную подписываться на моды сервера в Steam — при подключении к серверу со списком модов в конфиге, игра сама запускает скачивание недостающих модов через Steam Workshop и только потом пускает игрока в мир. Это удобно (админу не нужно рассылать список ссылок всем в отряде), но у механизма есть слабые места:

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

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

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

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

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

Можно ли добавить мод без перезапуска сервера?

Нет, список модов читается при старте инстанса — любое изменение <Mods> требует остановки и повторного запуска сервера.

Нужно ли игрокам вручную подписываться на моды сервера в Steam?

Нет, клиент скачивает недостающие моды из списка сервера автоматически при подключении, вручную нужна разве что предварительная подписка, если автозагрузка у кого-то обрывается.

Что будет, если убрать мод, блоки которого уже стоят в мире?

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

Как понять, что мод сломался именно из-за обновления игры, а не конфига?

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

Работают ли моды с картами Mod.io, а не только Steam Workshop?

Технически конфиг поддерживает поле PublishedServiceName с другим значением, но подавляющее большинство контента для Space Engineers распространяется именно через Steam Workshop — используйте его как основной источник.