Icarus: установка модов на сервер
Голый сервер Icarus работает стабильно, но быстро упирается в вопрос «а можно добавить пару QoL-модов для друзей». С этим тут не всё так очевидно, как с Steam Workshop у ARK или Rust — у Icarus своя модовая система на базе mod.io, и у выделенного сервера в ней есть отдельные нюансы, которых нет при обычной игре с друзьями по сети. Разберём по шагам: откуда брать рабочие моды, как прописать их в конфиге сервера, что с порядком загрузки нескольких модов и почему сервер иногда молча игнорирует мод вместо явной ошибки.
Содержание
Где искать проверенные моды для Icarus
Официальная и практически единственная надёжная площадка для модов Icarus — mod.io (icarus.mod.io или раздел модов в лаунчере самой игры). RocketWerkz интегрировали mod.io как встроенную систему пользовательского контента, и именно оттуда игра и сервер ожидают получать моды — с проверкой совместимости версии и без необходимости вручную распаковывать архивы игрокам.
Почему стоит держаться именно mod.io, а не файлообменников с готовыми паками:
- на mod.io у каждого мода видна дата последнего обновления и отметка, под какую версию игры он собирался — это первое, на что смотреть перед установкой на прод-сервер;
- сторонние сборки с форумов и файлообменников нередко представляют собой старый .pak, который автор давно забросил — после ближайшего патча Icarus такой мод либо не загрузится, либо, хуже, вызовет краш при старте прожекта;
- официальная интеграция означает, что у клиентов есть встроенный in-game браузер модов с подпиской в один клик — важно, если играете большой компанией и не хотите вручную рассылать архивы через Discord.
Перед установкой любого мода на боевой сервер с активными игроками — тестируйте его сначала на локальной копии или тестовом прожекте. Один битый .pak способен уронить сервер при загрузке мира, а разбираться, какой из пяти одновременно поставленных модов виноват, куда дольше, чем проверить их по одному заранее.
Как устроена модовая система: pak-файлы и структура папок
Icarus построена на Unreal Engine, и, как у большинства UE-игр с моддингом, конечный формат мода — это .pak-архив (иногда в комплекте с отдельным .ucas/.utoc для более новых сборок движка). Сам mod.io для Icarus работает как раздатчик этих pak-файлов: и клиент, и сервер обращаются к mod.io по идентификатору мода и скачивают нужную версию автоматически, без ручного копирования архивов по FTP — это отличает Icarus от, скажем, Valheim с BepInEx, где моды раскладываются вручную по папке plugins.
На сервере скачанные моды ложатся в подпапку рядом с исполняемым файлом:
Icarus/Mods/<ModID>/
Вручную туда лезть обычно не нужно — сервер сам создаёт папку и кладёт файл при первом запросе мода. Но это полезное место для диагностики: если после рестарта сервера папка конкретного ModID пустая или её вообще нет — значит скачивание не удалось (чаще всего из-за проблем с исходящим доступом к mod.io с хоста, см. раздел про ошибки ниже).
Управляющий конфиг у Icarus один и тот же, что и для остальных серверных настроек — ServerSettings.ini, лежит по пути Icarus/Saved/Config/WindowsServer/ServerSettings.ini, секция [/script/icarus.dedicatedserversettings]. Именно в неё добавляется список модов, которые сервер должен подгрузить при старте.
Поднять сервер Icarus за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверДобавляем Mod ID в конфиг сервера
Первый шаг — получить сам идентификатор мода. На странице мода на mod.io есть кнопка вида «Copy Mod ID» (или ID виден прямо в адресе страницы) — скопируйте числовой идентификатор, он и есть то, что нужно серверу, а не название мода текстом.
Дальше открываем ServerSettings.ini и добавляем (или дополняем, если поле уже есть) список модов в секции дед-сервера:
[/script/icarus.dedicatedserversettings]
ModIDs=1234567,2345678,3456789
Несколько важных моментов по синтаксису:
- значения перечисляются через запятую без пробелов — лишний пробел после запятой в INI-парсере Unreal иногда приводит к тому, что следующий ID не распознаётся;
- точное имя поля и синтаксис списка в разное время патчей у Icarus слегка менялись вместе с обновлением серверного репозитория — если после рестарта моды не подтягиваются, а опечаток в ID нет, свежий пример корректного
ServerSettings.iniстоит сверить с официальным репозиторием RocketWerkzIcarusDedicatedServerна GitHub — там держат актуальный шаблон под текущую версию игры; - после правки конфига сервер нужно перезапустить полностью, а не просто перезагрузить прожект через RCON — список модов читается именно при старте процесса.
sudo systemctl restart icarus
Если сервер не запущен через systemd, а поднимается вручную или через Proton-обёртку — просто завершите процесс и стартуйте заново тем же способом, что и обычно.
Порядок загрузки и конфликты между модами
Порядок ID в строке ModIDs= — это и есть порядок загрузки. Для большинства «контентных» модов (новые рецепты, предметы, косметика) порядок не критичен, потому что они добавляют новые записи, а не переписывают существующие. Проблемы начинаются, когда два мода патчат один и тот же ассет — например, оба меняют баланс одного и того же станка или один и тот же строительный набор. В таком случае обычно побеждает мод, загруженный последним в списке, но это не железное правило для всех типов правок, а поведение системы патчинга ассетов Unreal — на практике надёжнее не полагаться на «кто последний, тот и прав», а не ставить одновременно два мода, которые прямо конфликтуют по описанию на mod.io.
Практический порядок действий при подозрении на конфликт:
- Уберите из
ModIDs=все моды, кроме одного подозреваемого, перезапустите сервер. - Если проблема исчезла — добавляйте моды по одному обратно, перезапуская сервер после каждого, пока проблема не вернётся.
- Нашли виновника — смотрите на странице мода на mod.io раздел совместимости или комментарии: часто там уже описан конкретный конфликт с популярными другими модами.
Для крупных модпаков (десяток и больше модов сразу) этот процесс объективно долгий — закладывайте на тестовую обкатку модпака отдельный день перед тем, как выкатывать его на сервер с живыми игроками.
Синхронизация версий между сервером и клиентами
Это главная причина жалоб «не могу зайти на модовый сервер друга» в любой моддинг-экосистеме, и Icarus не исключение. Поскольку и сервер, и клиент тянут моды с mod.io по одному и тому же ID, при подключении игра обычно сама предлагает докачать недостающие или отличающиеся по версии моды — но полагаться на это вслепую не стоит, особенно если у мода вышло обновление буквально накануне игровой сессии.
Что стоит делать администратору сервера, чтобы не ловить рассинхрон:
- Не обновляйте моды спонтанно перед игровой сессией. Если сервер держит определённую версию мода (например, специально не обновлялись из-за свежего бага у автора), а клиент получит новую версию сам — начнётся рассинхрон данных, вплоть до невозможности подключиться.
- Сообщайте игрокам список ID и версий, которые сейчас стоят на сервере — простой текстовый список в закреплённом сообщении Discord экономит массу времени на «а у меня почему-то не заходит».
- После любого обновления сервера (
app_updateчерез SteamCMD) проверяйте, не обновились ли заодно и сами моды — это разбирали подробнее в статье про автообновление модов на сервере: та же логика применима и к Icarus, разница только в том, откуда тянутся файлы.
Проверка загрузки и типичные ошибки при активации
После рестарта смотрите лог сервера — он лежит там же, где и обычно у Icarus:
tail -n 200 Icarus/Saved/Logs/IcarusServer.log
grep -iE "mod|pak" Icarus/Saved/Logs/IcarusServer.log
При успешной загрузке в логе должны появиться строки о скачивании и монтировании pak-файла по каждому ID из списка. Если строк про конкретный ID нет вообще — сервер даже не пытался его скачать, и почти всегда дело в опечатке в ModIDs= или в лишнем пробеле.
Частые ошибки при активации и что с ними делать:
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| Мод не появляется в логе вообще | Опечатка в ID или неверный синтаксис поля ModIDs= | Сверьте ID на странице mod.io посимвольно, уберите пробелы после запятых |
Папка Mods/<ModID>/ пустая после рестарта | Сервер не смог скачать pak с mod.io | Проверьте исходящий доступ хоста к mod.io (файрвол/прокси), повторите рестарт |
| Сервер падает при загрузке мира после добавления мода | Мод собран под другую версию игры или конфликтует с другим модом | Временно уберите мод из списка, проверьте раздел совместимости на mod.io, см. также диагностику краша при загрузке мира |
| Игроки не могут зайти после обновления мода | Рассинхрон версии клиент/сервер | Зафиксируйте версию мода на сервере, сообщите игрокам конкретный ID и не обновляйте спонтанно |
| Сервер стал заметно медленнее грузиться и чаще подтормаживать | Слишком много одновременно активных модов на не самом мощном хосте | Отключите часть модов по очереди, ориентируйтесь на общий разбор в статье про лаги при разросшейся базе |
Если сервер вообще перестал стартовать после добавления модов, а не только не грузит мир — начните с общей диагностики запуска в статье «Icarus: сервер не запускается», там разобраны шаги, актуальные независимо от того, стоят на сервере моды или нет.
Поднять сервер Icarus за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Нужен ли отдельный аккаунт mod.io для владельца сервера?
Для скачивания публичных модов по ID — нет, отдельная авторизация сервера на mod.io не требуется, скачивание идёт анонимно по идентификатору. Учётка нужна только если вы сами публикуете мод как автор.
Можно ли поставить мод, которого нет на mod.io, из стороннего источника?
Технически можно попытаться подложить .pak вручную в папку Icarus/Mods/, но официальная модовая система Icarus рассчитана на работу через mod.io с проверкой версии — при ручной подкладке файла вы теряете автоматическую синхронизацию с клиентами и берёте на себя всю ответственность за совместимость. Для стабильного сервера с живыми игроками лучше держаться исключительно mod.io.
Сколько модов реально можно поставить без потери производительности?
Точного числа никто не назовёт — зависит от того, что именно делают конкретные моды (косметика почти не влияет, моды с новой логикой скриптов заметнее нагружают сервер) и от мощности хоста. Ориентируйтесь на постепенное добавление с проверкой стабильности после каждого мода, а не на попытку сразу поставить крупный модпак.
Что делать, если после обновления самой игры Icarus все моды разом перестали грузиться?
Это нормально для игры в активной разработке — крупный патч меняет структуру ассетов, и старые pak-файлы могут стать несовместимыми, пока авторы модов не выпустят обновление. Проверьте даты обновления модов на mod.io относительно даты патча игры и подождите, если авторы ещё не успели пересобрать мод под новую версию.
Обязательно ли использовать одинаковый порядок ID у всех игроков?
Нет, порядок в ModIDs= задаётся только на сервере и определяет порядок загрузки на его стороне — у клиента отдельного параметра порядка нет, игра просто скачивает и монтирует то, что требует сервер.