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

Как запустить сценарий на headless-сервере Factorio: загрузка карт, создание сейва и сохранение прогресса

Запуск пользовательских сценариев на headless-сервере Factorio: размещение файлов в каталоге scenarios/, компиляция постоянного сохранения флагом --create-save и запуск службы без сброса прогресса.

Как запустить сценарий на headless-сервере Factorio: загрузка карт, создание сейва и сохранение прогресса

Выделенные headless-серверы Factorio чаще всего запускают стандартную бесконечную генерацию процедурной карты. Однако для организации соревновательных турниров, командных режимов (PvP, Team Production), прохождения защиты базы (Wave Defense) или авторских карт сообщества требуются сценарии (Scenarios).

В этом практическом руководстве мы разберём, как устроены сценарии Factorio, почему прямой запуск через --start-server-load-scenario приводит к потере прогресса при перезагрузке, и как правильно конвертировать сценарий в постоянный архив сохранения.

Чем сценарии отличаются от стандартных сохранений Factorio#

Обычный мир Factorio хранится в виде одного сжатого ZIP-файла в папке saves/ и содержит текущее состояние фабрики, инвентарей игроков и открытых технологий.

Сценарий же представляет собой папку или архив с шаблоном игры, расположенный в каталоге scenarios/. Внутри находятся:

  • control.lua — специальная логика режима (правила начисления очков, волны врагов, события спавна).
  • description.json — метаданные сценария и описание на нескольких языках.
  • blueprint.dat или map.dat — предопределённый ландшафт и готовые постройки.

Главная ловушка: если запускать сервер напрямую флагом --start-server-load-scenario <ИмяСценария>, при каждом перезапуске службы Factorio будет генерировать мир с нулевой секунды, стирая построенные фабрики. Для постоянной многопользовательской игры сценарий необходимо один раз инициализировать в файл сохранения.

Установка файлов сценария в директорию сервера#

Создайте директорию scenarios в корневом каталоге сервера Factorio и поместите туда папку сценария:

bash
mkdir -p /opt/factorio/scenarios
ls -la /opt/factorio/scenarios/

Убедитесь, что внутри сценария (например, /opt/factorio/scenarios/wave-defense/) присутствуют файлы control.lua и blueprint.dat. Проверьте права доступа:

bash
sudo chown -R factorio:factorio /opt/factorio/scenarios

Создание сохраняемой сессии через флаг --create-save#

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

bash
sudo -u factorio /opt/factorio/bin/x64/factorio \
  --create-save "saves/wave_defense_active.zip" \
  --load-scenario "wave-defense"

Команда загрузит скрипты control.lua и карту сценария, скомпилирует их и создаст в каталоге saves/ готовый файл wave_defense_active.zip.

Запуск службы и проверка журналов выполнения сценария#

Теперь настройте запуск службы на созданный файл сохранения. Отредактируйте параметры запуска в /etc/systemd/system/factorio.service или в скрипте:

bash
sudo -u factorio /opt/factorio/bin/x64/factorio \
  --start-server "saves/wave_defense_active.zip" \
  --server-settings "data/server-settings.json"

Проверьте лог запуска сервера:

bash
tail -n 40 /opt/factorio/factorio-current.log | grep -E "Loading map|Script|Hosting"

Лог подтвердит загрузку скрипта сценария строкой Script @__wave-defense__/control.lua loaded и переход сервера в режим приёма подключений. Все последующие автосохранения будут регулярно обновлять файл wave_defense_active.zip, надёжно сохраняя построенные оборонительные линии.

Если вы хотите запускать выделенные серверы Factorio Space Age с готовой поддержкой кастомных сценариев, управлением модами в один клик и автоматическими снапшотами миров, современный хостинг серверов Factorio предоставляет производительную платформу с минимальной задержкой.

Источники#