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

Что происходит с чертежами при переносе сервера Factorio: общая библиотека и сохранение схем

Перенос общих чертежей при миграции сервера Factorio: различия между blueprint-storage.dat и чертежами игры в save.zip, экспорт схем и проверка совместимости модификаций.

Что происходит с чертежами при переносе сервера Factorio: общая библиотека и сохранение схем

Перенос мультиплеерного сервера Factorio на новый хостинг или обновление существующего игрового мира часто сопровождается неприятным сюрпризом для участников инженерной команды: после подключения к новому серверу личные книги чертежей оказываются на месте, но общие схемы фабрик, балансировщиков и железнодорожных развязок бесследно исчезают из совместного доступа. Игроки начинают винить сбой миграции файлов сохранения или рассинхронизацию облачных данных Steam.

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

Разделение чертежей: личная библиотека клиента против файлов карты#

В игре Factorio библиотека чертежей (вызываемая по клавише B) строго разделена на две вкладки с независимыми жизненными циклами:

  1. «Мои чертежи» (My Blueprints) — локальная библиотека игрока. Она сохраняется на клиентском компьютере в бинарном файле blueprint-storage.dat внутри домашней папки игры (~/.factorio/ в Linux или %APPDATA%\Factorio в Windows). Эти чертежи не передаются на сервер автоматически и не видны другим участникам сессии.
  2. «Чертежи игры» (Game Blueprints) — общее командное хранилище. Эти схемы сохраняются непосредственно внутри архива мира (.zip) на сервере и синхронизируются со всеми подключенными клиентами в реальном времени.

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

bash
cp ~/.factorio/blueprint-storage.dat ~/.factorio/blueprint-storage.dat.bak
ls -lh ~/.factorio/blueprint-storage.dat*

Файл blueprint-storage.dat использует сжатый бинарный формат сериализации Factorio, поэтому его прямое редактирование текстовыми редакторами не допускается.

Фиксация чертежей в архиве мира перед миграцией#

Если администратор или игроки размещали схемы исключительно в своей вкладке «Мои чертежи», при переносе архива сохранения на новый сервер другие участники потеряют к ним доступ, если автора чертежа нет в сети. Чтобы общие промышленные схемы пережили миграцию и остались доступны любому инженеру сервера, их необходимо перетащить во вкладку «Чертежи игры» до выгрузки мира.

После того как схемы перемещены в «Чертежи игры» и игра сохранена, они упаковываются сервером внутрь бинарного заголовка level.dat в архиве сохранения. Убедиться в целостности архива сохранения можно без его распаковки:

bash
unzip -l /opt/factorio/saves/megabase-multiplayer.zip | grep -E "level\.dat|blueprint"

Наличие level.dat подтверждает присутствие метаданных карты, в которые встроен реестр общих чертежей мира.

Экспорт сохранения и синхронизация модификаций#

На выделенном сервере Factorio создание резервной копии требует временной остановки службы. Если экспортировать файл сохранения во время активной записи тика или автосохранения, архив может оказаться повреждённым.

Служба останавливается, после чего архив сохранения и каталог установленных модификаций архивируются в единый тарбол:

bash
systemctl stop factorio.service
tar -czvf /opt/factorio/backups/factorio-save-export-$(date +%F).tar.gz /opt/factorio/saves/megabase-multiplayer.zip /opt/factorio/mods/

Перенос каталога mods/ одновременно с сейвом критически важен. Если чертежи содержали сигналы, комбинаторы или здания из модификаций (например, Space Exploration или Bob's/Angel's), загрузка чертежа на сервере с отсутствующими или несовпадающими версиями модов приведёт к появлению красных предупреждений «Неизвестная сущность» (Unknown entity) и невозможности размещения постройки строительными роботами.

Перед запуском проверяется соответствие манифестов модификаций между исходным и целевым окружением:

bash
diff -u /opt/factorio-source/mods/mod-list.json /opt/factorio-target/mods/mod-list.json

Нулевой вывод команды diff гарантирует полную идентичность списков включенных модов.

Развёртывание на новом хосте, права доступа и верификация#

После копирования архива мира на новый выделенный сервер файлы размещаются в каталоге saves/. Демон Factorio обычно работает от имени отдельного непривилегированного пользователя factorio, поэтому перед запуском необходимо назначить корректные права владения:

bash
chown -R factorio:factorio /opt/factorio/saves/
systemctl start factorio.service
systemctl status factorio.service --no-pager

После старта сервера любой подключившийся игрок должен открыть меню чертежей (B) и переключиться на вкладку «Чертежи игры». Все опубликованные ранее книги и чертежи будут доступны для копирования в личную библиотеку или непосредственного размещения манипуляторами и строительными дронами.

Для стабильной работы крупных промышленных баз и быстрой синхронизации командных чертежей разверните проект на надёжном игровом хостинге с высокой скоростью дискового ввода-вывода и защитой от потери данных.

Источники#