MAATRIX GAMES / Блог / Моды для Factorio: установка и популярные сборки

Моды для Factorio: установка и популярные сборки

MAATRIX GAMES

Голый ванильный Factorio на сервере — это скучно уже к сотому часу: дерево технологий изучено, конвейеры отлажены, а нового ресурса на карте нет. Моды решают это за пару минут возни с папкой mods/, но у мультиплеера тут своя ловушка — Factorio жёстко сверяет список и версии модов у сервера и клиента, и если они разошлись хоть на цифру, игрока просто не пустят в игру. Разберём, как ставить моды на headless-сервер правильно, чтобы вся команда заходила с первого раза, и какие сборки реально стоят внимания. Если сервер ещё не поднят — сначала загляните в статью про установку headless-сервера Factorio, там базовая настройка server-settings.json и запуск процесса. Здесь — только про моды поверх уже работающего сервера.

Откуда брать моды: официальный портал

Единственный легитимный источник модов для Factorio — mods.factorio.com. Там каждый мод завязан на аккаунт Factorio (тот же, что и в лаунчере), и у сервера есть встроенный способ качать моды прямо через консоль игры или API портала, без ручного перетаскивания архивов.

Самый простой путь — через клиент игры на своей машине: зайти в меню Mods, найти нужный мод, поставить локально. После этого он появится в %APPDATA%\Factorio\mods (Windows) или ~/.factorio/mods (Linux). Оттуда файлы .zip и переносятся на сервер.

Второй путь — прямой API-запрос на портал, полезен, если сервер стоит без GUI и клиента под рукой нет:

curl -L "https://mods.factorio.com/api/downloads/data/mod/download/<mod-file-name>?username=<login>&token=<token>" -o mods/<mod-file-name>

Токен и логин берутся из своего профиля на mods.factorio.com (раздел My Account → там показывается token для API). Хранить токен в открытом виде в скриптах на общем сервере не стоит — вынесите в переменную окружения или отдельный файл с ограниченными правами доступа (chmod 600).

Структура папки mods на сервере

Все моды сервера лежат плоским списком в одной директории — обычно это mods/ рядом с исполняемым файлом factorio (или путь, заданный флагом --mod-directory при запуске). Каждый мод — это .zip-архив с именем вида ModName_1.2.3.zip, где версия в имени файла обязана совпадать с версией внутри архива (в info.json).

Типичная структура:

factorio/
├── bin/
│   └── x64/factorio
├── data/
├── mods/
│   ├── mod-list.json
│   ├── mod-settings.dat
│   ├── Krastorio2_2.0.1.zip
│   ├── space-exploration_0.6.130.zip
│   └── EditorExtensions_1.2.10.zip
└── saves/

Заливать архивы на сервер удобнее всего через scp:

scp Krastorio2_2.0.1.zip user@server:/path/to/factorio/mods/

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

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

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

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

Конфигурация mod-list.json

Файл mod-list.json — это реестр того, какие моды из папки mods/ реально включены. Просто закинуть архив в папку недостаточно: если его нет в mod-list.json (или он там с "enabled": false), сервер его игнорирует.

Формат простой:

{
  "mods": [
    { "name": "base", "enabled": true },
    { "name": "Krastorio2", "enabled": true },
    { "name": "space-exploration", "enabled": false },
    { "name": "EditorExtensions", "enabled": true }
  ]
}

Важный нюанс: name в mod-list.json — это внутреннее имя мода (то, что указано в info.json архива как "name"), а не имя файла и не отображаемое название в интерфейсе. Если сомневаетесь, откройте info.json внутри архива — там всё точно.

Быстрее всего сгенерировать актуальный mod-list.json не руками, а запустив сервер один раз после заливки архивов — Factorio сам допишет в файл все найденные в папке моды (по умолчанию выключенными), а дальше вы просто правите enabled вручную и перезапускаете.

Отключить вообще все моды одной командой (полезно для диагностики багов):

./factorio --mod-directory mods --disable-mod all

Синхронизация версий сервера и клиентов — главная грабля

Вот тут начинается основная головная боль всех, кто впервые ставит моды на сервер. Factorio при подключении клиента сверяет не приблизительное соответствие, а точный список модов и точные номера версий каждого. Расхождение хотя бы в одном моде (даже patch-версии вроде 2.0.1 против 2.0.2) — и клиент получает отказ на экране подключения с текстом вроде "Mod version mismatch" или "This save requires the following mods".

Что из этого следует на практике:

  • Обновляя мод на сервере, сразу разошлите игрокам ссылку на ту же версию — лучше всего прямо файлом или инструкцией "обновить через клиент Factorio, он сам подтянет актуальную с портала".
  • Держите список модов и версий сервера в отдельном текстовом файле или закреплённом сообщении в Discord/Telegram команды — это экономит часы разбирательств "почему не заходит".
  • Если используете сборку модов (modpack) — фиксируйте её версию сразу для всех: не обновляйте моды по одному вручную, а синхронизируйте разом перед сессией, иначе первые полчаса уйдут на пересборку у всех клиентов.
  • Клиент Factorio при попытке зайти на сервер с чужим набором модов обычно сам предлагает автоматически скачать недостающие/другие версии с портала — это работает, если у игрока есть доступ в интернет и валидный аккаунт, но может не сработать за корпоративным фаерволом или при устаревшем клиенте самой игры.

Отдельно: версия самой игры Factorio (например, 2.0.x) тоже должна совпадать у сервера и клиента — это не про моды, но грабля той же природы и ловит новичков не реже.

Популярные категории модов для сервера

Условно моды под сервер делятся на несколько понятных категорий — выбор зависит от того, что команда хочет получить от игры.

Расширение технологического дерева и эндгейма. Моды вроде Krastorio 2 или Space Exploration добавляют новые уровни производства, ракеты, орбитальные платформы и десятки часов контента после того, как ванильный технологический список закончился. Это тяжёлые моды, они меняют баланс ресурсов и рецептов — ставить их стоит с самого начала карты, а не на середине уже отлаженной базы.

Новые ресурсы и материалы. Моды, добавляющие новые руды, жидкости, промежуточные продукты — обычно идут в паре с расширением техдерева (тот же Krastorio 2 добавляет несколько новых ресурсов) или отдельно, если нужна конкретная механика вроде нефтепереработки другого типа.

Quality of life (QoL) — улучшенный UI и логистика. Отдельная и, пожалуй, самая безопасная категория для мультиплеера — она не ломает баланс, а просто убирает рутину:

  • улучшенные интерфейсы поиска рецептов и крафта;
  • автопланировщик чертежей (blueprint) и его библиотеки;
  • моды на подсветку недостающих ресурсов в цепочке производства;
  • расширенная статистика производства сверх встроенной.

QoL-моды почти всегда совместимы друг с другом и с крупными оверхолами вроде Krastorio 2 — конфликты у них редки, потому что они не переопределяют рецепты и сущности, а добавляют интерфейсные удобства поверх.

Сравнение по типичной нагрузке на сервер и подготовке:

КатегорияВлияние на балансНагрузка на UPS сервераКогда добавлять
Техдерево/эндгейм (Krastorio 2, Space Exploration)ВысокоеЗаметная на больших картахВ начале новой карты
Новые ресурсыСреднееНебольшаяВместе с оверхолом
QoL/UIНетМинимальнаяВ любой момент, даже на готовой карте

Обновление модов без потери сохранения

Обновить мод на живом сервере с существующим сохранением можно, но не всегда безболезненно. Порядок действий:

  1. Сделайте бэкап файла сохранения из saves/ перед любым обновлением модов — это дешевле, чем потом разбираться с битой картой.
  2. Остановите сервер.
  3. Замените .zip мода на новую версию в папке mods/, обновите номер версии в mod-list.json если требуется (обычно Factorio сам подхватывает актуальную версию по имени мода).
  4. Запустите сервер с флагом автозагрузки последнего сохранения:
./factorio --start-server-load-latest --mod-directory mods
  1. Проверьте лог на предмет ошибок миграции (Applying migration... в консоли) — крупные оверхолы вроде Space Exploration часто содержат скрипты миграции сохранения под новую версию, и если они падают с ошибкой, откатывайтесь на бэкап и версию мода, с которой карта была совместима.

Обновление major-версии тяжёлого мода (например, 1.x → 2.x) иногда вообще не поддерживает миграцию существующей карты — авторы модов честно пишут об этом в описании на портале, если это так. Стоит прочитать changelog мода перед обновлением, а не после.

Проверка совместимости модов друг с другом

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

Практичный чек-лист перед добавлением нового мода в уже работающую сборку:

  • Прочитайте раздел "Dependencies" на странице мода на mods.factorio.com — там перечислены обязательные и опциональные зависимости.
  • Проверьте страницу мода на предмет открытых issues с словами "incompatible" или "conflict" — авторы крупных модов обычно ведут список известных конфликтов.
  • Добавляйте моды на тестовом сохранении или новой карте, а не сразу на боевом сервере с активными игроками.
  • Если после добавления мода в консоли сервера (factorio-current.log) появляются ошибки Lua при загрузке — это почти всегда конфликт скриптов, а не баг конкретного мода.

Для тех, кто ставит моды впервые и хочет свериться с похожим процессом на другой игре — в блоге есть разбор установки модов через Oxide/uMod на Rust и BepInEx для Valheim — общая логика "версия сервера = версия клиента" там тоже актуальна, хоть механизм проверки и отличается от Factorio.

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

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

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

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

Можно ли играть с модами без официального аккаунта Factorio?

Технически да, если моды заливаются вручную .zip-файлами напрямую в папку mods/, а не через встроенный загрузчик клиента. Но для удобной синхронизации версий между игроками аккаунт на mods.factorio.com сильно упрощает жизнь — клиент сам предложит скачать недостающие моды при подключении к серверу.

Что делать, если сервер выдаёт "Mod version mismatch"?

Значит версия хотя бы одного мода на сервере отличается от версии у клиента. Откройте mod-list.json на сервере и сверьте версии файлов в mods/ с тем, что стоит у игрока — либо обновите клиента, либо откатите мод на сервере до совпадающей версии.

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

Жёсткого лимита нет, но каждый добавленный мод, особенно с собственной Lua-логикой на каждый тик, добавляет нагрузку на UPS сервера. Тяжёлые оверхолы вроде Space Exploration ощутимо просаживают производительность на больших картах с сотнями активных сущностей — на слабом тарифе стоит смотреть на потребление RAM и CPU после добавления сборки, а не гадать заранее.

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

Да, Factorio считывает содержимое mods/ и применяет изменения mod-list.json при старте процесса. Часть модов поддерживает горячую догрузку через RCON, но это не универсальный механизм и полагаться на него для продакшен-сервера не стоит.

Где посмотреть, какие моды сейчас реально активны на сервере?

В логе сервера при старте (factorio-current.log) выводится полный список загруженных модов с версиями — это самый надёжный способ свериться, а не полагаться на память или устаревший mod-list.json.