Barotrauma: установка модов на сервер
Экипаж наигрался в ванильную кампанию и просит новые подлодки, монстров или overhaul на баланс реакторов — а вы открываете Steam Workshop по Barotrauma и упираетесь в вопрос: сервер-то у вас без графического Steam-клиента, поднят через SteamCMD, как ему вообще скормить моды, на которые подписался в браузере Workshop? Разберём весь путь — от подписки до рабочего списка контент-пакетов на сервере — и честно пройдёмся по граблям, из-за которых экипаж чаще всего вылетает на экране загрузки.
Содержание
Как устроены моды в Barotrauma и почему сервер — не то же самое, что клиент
В Barotrauma нет отдельного модлоадера вроде Forge или BepInEx — вся модификация игры идёт через встроенный механизм Content Packages. Ванильный контент — это тоже content package, просто системный, а любой мод из Steam Workshop — ещё один content package со своим набором файлов: новыми предметами, картами, звуками, локализацией, иногда — правками через Lua (если у вас установлен Lua For Barotrauma).
Ключевой момент, который путает почти всех новичков: сервер и каждый клиент должны использовать идентичный набор активных content package одной и той же версии. Это не рекомендация ради удобства, а жёсткая проверка при подключении — Barotrauma сверяет хэши пакетов, и если у игрока не совпадает список модов с сервером (лишний, отсутствующий или мод другой версии), клиент просто не сможет зайти. Отсюда и главная задача этой статьи: не просто скачать мод, а добиться, чтобы сервер и все игроки видели одинаковый список.
Второй момент: dedicated-сервер, поднятый через SteamCMD (см. инструкцию по установке сервера Barotrauma), — это не полноценный Steam-клиент с браузером Workshop. У него нет кнопки "Subscribe". Все моды на сервер попадают либо через отдельную загрузку конкретных Workshop-айтемов той же SteamCMD, либо копированием файлов с машины, где Barotrauma стоит как обычная игра с активным Steam-клиентом.
Подписка на моды и получение файлов
Есть два рабочих способа затащить мод на сервер — выбирайте по ситуации.
Способ 1 — через клиент с обычным Steam. Самый надёжный вариант для новичка. На своём компьютере, где установлена полная версия Barotrauma:
- Открываете Workshop-страницу мода в Steam и нажимаете «Подписаться».
- Steam скачивает мод в папку
steamapps/workshop/content/602960/<ID_мода>/(602960 — App ID основной игры Barotrauma в Steam, именно под ним регистрируются Workshop-айтемы, а не под ID серверного инструмента). - Заходите в саму игру, открываете вкладку Mods в главном меню — Barotrauma подтягивает подписанные Workshop-моды в локальный список и позволяет включить их одним кликом.
- После включения в игре мод физически лежит в папке Workshop-контента — её и нужно перенести на сервер (например, через
scpилиrsync).
Способ 2 — напрямую через SteamCMD на самом сервере, без графического клиента:
cd ~/steamcmd
./steamcmd.sh +login anonymous +workshop_download_item 602960 <ID_мода> +quit
Мод скачается в ~/steamcmd/steamapps/workshop/content/602960/<ID_мода>/. ID мода берётся из URL Workshop-страницы — это цифры после ?id=. Способ удобен для автоматизации (можно скриптом прогнать список ID подряд), но у него есть нюанс: некоторые моды с закрытой видимостью или требующие принятия лицензионного соглашения через SteamCMD anonymous не скачиваются — тогда остаётся только способ 1.
Для модов, требующих Lua-скриптинг (расширенные overhaul-моды часто на нём завязаны), дополнительно понадобится Lua For Barotrauma — это отдельный клиент-серверный фреймворк, его ставят и на сервер, и клиентам так же, как обычный мод, но с дополнительным шагом настройки автозапуска Lua-рантайма — сверяйтесь с актуальной инструкцией конкретно этого фреймворка на его Workshop-странице, там нюансы версий меняются чаще, чем в основной игре.
Поднять сервер Barotrauma за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверПодключение мода к серверу через content package
Скачанные файлы мода сами по себе сервер не активируют — нужно прописать их в списке активных content package. Здесь у Barotrauma есть версионная особенность, о которой стоит знать заранее: в разных билдах игры список активных пакетов хранится по-разному — то отдельным файлом selectedcontentpackages.txt рядом с исполняемым файлом, то напрямую внутри serversettings.xml в блоке с перечислением пакетов. Какой вариант у вас — определяется тем, что реально сгенерировалось после первого запуска сервера, поэтому первый шаг — заглянуть в рабочую папку сервера и посмотреть, что там есть.
Если у вас отдельный selectedcontentpackages.txt, он выглядит как список путей или имён пакетов, по одному на строку:
Vanilla
Mods/ExampleSubmarinePack/filelist.xml
Mods/BetterCreatures/filelist.xml
Каждый мод хранит свой манифест в файле filelist.xml внутри собственной папки — именно на него и должна ссылаться строка в списке, а не на папку целиком.
Если конфигурация современнее и список зашит в serversettings.xml, там будет блок наподобие:
<ContentPackages>
<RegularPackages>
<Package path="Data/ContentPackages/Vanilla 1.x.x.xml" />
<Package path="Mods/ExampleSubmarinePack/filelist.xml" />
</RegularPackages>
</ContentPackages>
Проще всего не редактировать эти файлы вслепую, а поступить так: на клиентской машине (там, где мод уже включён и работает) зайти в меню Mods, собрать нужный набор, запустить локальный тестовый хостинг — игра сама сформирует корректный список активных пакетов с правильными путями и хэшами. Дальше остаётся скопировать получившийся файл (или соответствующий блок) на боевой сервер, заменив дефолтный. Это надёжнее, чем вручную вписывать пути и рисковать опечаткой в имени файла.
После правки конфигурации сервер обязательно нужно перезапустить:
sudo systemctl restart barotrauma
Порядок загрузки и конфликты модов
Порядок пакетов в списке — не косметика, а рабочий параметр. Content package, который переопределяет ресурсы (например, заменяет текстуру или баланс существующего предмета вместо добавления нового), должен идти после пакета, чьи файлы он переопределяет — иначе применится не то, что вы ожидаете, или Barotrauma выдаст предупреждение о конфликте ресурсов при старте.
Типичные конфликты, с которыми реально сталкиваются:
- Два мода правят один и тот же файл (например, оба меняют баланс реакторов) — последний в списке победит, первый эффективно проигнорируется без явной ошибки. Если поведение мода "не работает", в первую очередь проверяйте порядок, а не сам мод.
- Overhaul-мод конфликтует с мелким QoL-модом — крупные сборки часто переписывают большую часть игровых файлов, и мелкий мод на конкретный предмет просто перетирается. Решение — искать версию мелкого мода, адаптированную под конкретный overhaul, если автор её выпускал, либо смириться с потерей одного из двух.
- Подлодки (submarine mods) не конфликтуют по содержимому, но при большом количестве загруженных подлодок увеличивают время старта сервера и объём данных, которые качает клиент при первом подключении — держите в уме, что "лишние" неиспользуемые подлодки в списке модов — это чистый оверхед без пользы.
Проверить, что порядок и набор в принципе валидны, проще всего локальным тестовым запуском сервера перед тем, как выкатывать изменения на боевую машину — падение на старте лучше поймать самому, чем при живом экипаже.
Синхронизация версий клиент-сервер
Это самое частое обращение в поддержку у любого хостинга игровых серверов: "мод стоит и там, и там, а зайти не могу". Причины почти всегда одни и те же:
- Версия мода на клиенте новее серверной — автор Workshop-мода выпустил обновление, у игрока Steam подтянул его автоматически, а на сервере лежит старая версия, скачанная раньше. Хэш пакета не совпадает — подключение отклоняется.
- На сервере лишний мод, которого нет у клиента, или наоборот — даже безобидный косметический мод, если он оформлен как content package (а не как чисто клиентская правка вне игры), должен быть у всех.
- Разный порядок пакетов при формально одинаковом наборе — в некоторых версиях Barotrauma порядок тоже участвует в проверке хэша итогового набора, так что "тот же список, но в другом порядке" тоже может считаться расхождением.
Практическое правило: держите единый источник истины. Либо сервер — эталон, и все клиенты подписываются строго на те же версии модов, что стоят на сервере (проще всего — раздать экипажу прямые ссылки на нужные версии в Steam Workshop), либо заведите фиксированный процесс обновления: любое изменение списка модов сначала тестируется, потом одновременно выкатывается и на сервер, и объявляется экипажу. Стихийное "я обновил себе, чтобы попробовать новую фичу" одним игроком без предупреждения остальных — самая частая причина внезапных "не могу зайти" в дискорде сообщества.
Если моды пропадают с рассинхроном сами по себе после обновлений игры — почитайте также про автообновление модов на сервере: там разбирается, почему слепое авто-обновление часто и создаёт эту проблему, а не решает её.
Частые ошибки и как их читать
Большинство проблем с модами в Barotrauma видны прямо в логе сервера или в сообщении об ошибке у клиента при попытке подключения.
- "Content package X could not be found" — у клиента нет мода, который прописан в списке сервера. Скиньте игроку ссылку на Workshop-страницу нужной версии.
- "Content package version does not match" (или похожее сообщение о несовпадении хэша) — версии не совпадают, см. раздел про синхронизацию выше. Проверьте дату последнего обновления мода на Workshop-странице против даты, когда вы качали его на сервер.
- Сервер падает сразу после старта, лог обрывается на строке о загрузке content packages — почти всегда битый или неполный
filelist.xmlмода (обрыв при копировании, недокачанный Workshop-айтем) либо путь вselectedcontentpackages.txt/serversettings.xml, указывающий на несуществующий файл. Если раньше сервер не падал, а после добавления мода начал — это первое, что стоит проверить. Общий чек-лист диагностики падений — в статье сервер Barotrauma не запускается. - Краш конкретно при загрузке кампании, а не при старте сервера — обычно не проблема установки мода, а конфликт мода с уже существующим
.save-файлом кампании (мод добавили посреди прохождения, а сохранение ссылается на объекты, которых больше нет). Подробный разбор — в статье про краш сервера при загрузке кампании: там же способ восстановления из бэкапа, если откатить список модов не вариант. - Мод вроде включён, но эффекта не видно в игре — почти всегда порядок загрузки (см. выше) или мод, который правит только клиентскую часть (интерфейс, звук) и физически не должен ничего менять на сервере — такие моды в принципе не обязаны попадать в список серверных content package, если не трогают синхронизируемые данные.
Поднять сервер Barotrauma за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Можно ли поставить моды на сервер без полного Steam-клиента, только через SteamCMD?
Да, командой workshop_download_item с App ID 602960 и ID нужного мода — но часть модов с ограничениями видимости или сторонним лицензионным соглашением так скачать не получится, тогда нужен способ через клиент с подпиской и переносом файлов.
Нужно ли всем игрокам ставить моды в том же порядке, что на сервере?
Порядок задаёт список сервера при подключении — клиенту достаточно иметь те же версии тех же content package; порядок применения контролирует сервер, а не локальная сборка у игрока.
Что будет, если у одного игрока лишний мод, которого нет на сервере?
Клиент не сможет подключиться — Barotrauma требует точного совпадения набора активных content package, лишний пакет так же блокирует вход, как и отсутствующий.
Как обновить уже установленный мод на сервере до новой версии?
Перекачайте content package заново тем же способом, каким ставили (workshop_download_item или через клиент), замените файлы в папке мода на сервере, перезапустите сервис — и обязательно синхронно попросите экипаж обновить у себя ту же версию.
Ломает ли обновление самой игры Barotrauma список модов?
Может — крупные обновления иногда меняют формат filelist.xml или структуру contentpackages, из-за чего старые моды перестают грузиться до выхода совместимой версии от автора мода; после апдейта игры стоит первым делом проверить лог сервера на ошибки загрузки content package, прежде чем подозревать что-то другое.