Factorio Руководство

Как исправить несовместимость модов и сохранений на сервере Factorio

Разбираем несовпадение версий Factorio и модов, настройки дополнений и восстановление фабрики без удаления сохранений.

Как исправить несовместимость модов и сохранений на сервере Factorio

После обновления появился mod mismatch? Сначала восстановите прежнее рабочее окружение, затем проверяйте новое. Сделайте копию до загрузки мира без отсутствующих модов: сохранение изменённой фабрики может усложнить восстановление даже после возврата старых ZIP.

В командах используются пути из инструкции по установке Factorio: /opt/factorio, /srv/factorio и сервис factorio. Замените их на свои, если установка устроена иначе.

Зафиксируйте состояние до ремонта#

Остановите сервис штатно, проверьте журнал и заархивируйте рабочие данные:

bash
sudo systemctl stop factorio
sudo journalctl -u factorio -n 80 --no-pager
sudo install -d -o root -g root -m 700 /var/backups/factorio
sudo tar -czf /var/backups/factorio/factorio-before-repair.tar.gz -C /srv factorio
sudo chmod 600 /var/backups/factorio/factorio-before-repair.tar.gz

Скопируйте архив за пределы VPS приватным способом. Сохраните соответствующий дистрибутив игры. Если в журнале ошибка сохранения или принудительная остановка, архив может не содержать последний прогресс. Не публикуйте его целиком: в настройках бывают токены аккаунта.

Откат восстанавливает окружение вместе с сохранением до обновления. Одна замена исполняемого файла не отменяет миграции мира.

Найдите первое расхождение#

bash
/opt/factorio/bin/x64/factorio --version
sudo journalctl -u factorio -b --no-pager

Сравните полный номер версии игры с клиентом. Читайте журнал с начала текущего запуска: последующие ошибки могут скрывать первопричину.

Первое нарушениеСледующее действие
Версии игры на клиенте и сервере различаютсяСогласуйте сборки до изменения модов
Мод не загружается при стартеПроверьте ветку игры, обязательную зависимость и включённое состояние
Мир загружен, клиент сообщает mod mismatchСравните реально загруженные версии модов и startup-настройки
Подключение завершается таймаутомПроверьте сеть и журнал, не считайте это автоматически ошибкой модов

Проверьте указанные в журнале пути config, write-data и mods. Файлы в каталоге, который сервис не читает, не изменят его набор модов.

Верните точные версии, затем настройки#

Откройте info.json проблемного мода. factorio_version задаёт ветку игры, dependencies — требования и конфликты. Поля описаны в справочнике структуры модов. Правка номера версии не адаптирует код мода.

Храните нужные ZIP, mod-list.json и mod-settings.dat вместе. Лишние архивы перенесите в резервный каталог. mod-settings.dat — бинарный файл, а не JSON. Startup-настройки должны совпадать и требуют перезапуска; настройки карты и игрока имеют другую область действия.

Для восстановления по сохранению выберите его на экране загрузки клиента и нажмите Ctrl + клик по «Синхронизировать моды с сохранением». Обычная синхронизация выбирает актуальные версии, Ctrl + клик — записанные в сохранении. При подключении к серверу синхронизируются его точные версии. ZIP модов устанавливаются без распаковки. Это поведение описано в официальном руководстве.

Подготовьте нужные файлы в клиенте, закройте его и перенесите набор в активный каталог модов при остановленном сервере. Сохраните владельца factorio:factorio. Запустите сервис и проверьте реально загруженные версии, затем предложите остальным синхронизацию.

Headless-параметр --sync-mods скачивает отсутствующие моды при наличии service-username и service-token в player-data.json. Это другие данные, чем авторизация публичного списка в server-settings.json; см. справочник команд.

Проверьте Space Age отдельно#

Linux headless включает содержимое Space Age, но бесплатная загрузка сервера не даёт DLC игрокам. Для совместной игры дополнение требуется каждому.

Для группы без DLC нужен совместимый мир с отключёнными space-age, quality, elevated-rails. Проверьте требования сторонних модов к дополнению. Не отключайте компоненты на единственной копии фабрики Space Age, чтобы проверить, сохранится ли она.

Откатывайте правильное сохранение#

Старому исполняемому файлу нужно старое сохранение. В Friday Facts 353 Wube объясняет, почему новая версия сохранения не открывается в старой игре. Держите сохранение до обновления, сборку, моды и настройки одним комплектом.

Обновляйте копию с новым именем. Миграции изменяют данные мира: после загрузки проверьте важные производственные цепочки и поезда, затем вход второго игрока.

Для отката выберите резервный файл явно через --start-server /path/to/backup.zip, а не загрузку последнего сохранения. Обновлённые файлы храните отдельно, чтобы сервис не выбрал их снова. Очень старым фабрикам могут понадобиться промежуточные версии игры.

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