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

Переключение веток и обновление сервера Satisfactory: Early Access и Experimental

Безопасное переключение веток Early Access и Experimental на сервере Satisfactory: бэкап сохранений и чертежей, обновление SteamCMD и устранение сбоев.

Переключение веток и обновление сервера Satisfactory: Early Access и Experimental

Выделенный сервер Satisfactory на Linux поддерживает две основные ветки разработки: стабильную (Early Access) и экспериментальную (Experimental). Экспериментальная ветка позволяет администраторам тестировать свежие патчи, оптимизации движка Unreal Engine и изменения логистики до их официального релиза в основной ветке. Однако переключение между ветками связано с рисками несовместимости формата файлов сохранений и повреждения чертежей.

В этом руководстве рассмотрен безопасный регламент обновления сервера Satisfactory через SteamCMD, процесс смены ветки с созданием резервной копии и устранение типичных сбоев при загрузке фабрики.

Ветки Satisfactory и риски несовместимости сохранений#

Серверная часть Satisfactory распространяется через SteamCMD под идентификатором приложения 1690800. Основная ветка public (Early Access) содержит проверенные сборки, совместимые со стабильным клиентом игры. Ветка experimental содержит предварительные сборки, в которых структура данных мира и чертежей фабрики может изменяться.

Главное правило версионирования в Satisfactory: мир, однажды загруженный и пересохранённый в более новой экспериментальной версии, невозможно открыть в более старой стабильной ветке. Движок завершит работу с критической ошибкой сериализации (CorruptSaveException или EngineVersionMismatch).

Поэтому перед переключением на Experimental администратор обязан изолировать рабочие сохранения или спланировать работу сервера без обратного отката до момента выравнивания версий.

Резервное копирование мира и чертежей перед переключением#

Перед отправкой любых команд обновления остановите службу сервера. Работающий процесс Satisfactory держит открытые файловые дескрипторы мира и может записать повреждённый автосейв прямо во время работы SteamCMD:

bash
sudo systemctl stop satisfactory
sudo systemctl status satisfactory --no-pager

Файлы сохранений сервера Satisfactory по умолчанию располагаются в домашнем каталоге пользователя службы по пути: ~/.config/Epic/FactoryGame/Saved/SaveGames/server/

Чертежи фабрики (blueprints) хранятся в соседней подпапке Saved/SaveGames/Blueprints/. Создайте архив обеих директорий с меткой времени:

bash
BACKUP_DIR="/opt/satisfactory/backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
sudo mkdir -p "$BACKUP_DIR"

sudo tar -czf "$BACKUP_DIR/satisfactory_save_pre_update_${TIMESTAMP}.tar.gz" \
  -C /home/satisfactory/.config/Epic/FactoryGame/Saved SaveGames

Проверьте целостность созданного архива:

bash
tar -tzf "$BACKUP_DIR/satisfactory_save_pre_update_${TIMESTAMP}.tar.gz" | head -n 10

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

Обновление через SteamCMD и смена веток#

Обновление и переключение веток выполняется от имени системного пользователя satisfactory. Не запускайте SteamCMD от имени root, чтобы не нарушить права владения бинарными файлами.

Для обновления на стабильную ветку (Early Access / public) используется команда:

bash
/usr/games/steamcmd +force_install_dir /opt/satisfactory +login anonymous +app_update 1690800 validate +quit

Для переключения на экспериментальную ветку передаётся флаг -beta experimental:

bash
/usr/games/steamcmd +force_install_dir /opt/satisfactory +login anonymous +app_update 1690800 -beta experimental validate +quit

Параметр validate обязателен: он сравнивает контрольные суммы установленных файлов с манифестом Steam и докачивает повреждённые или перезаписанные библиотеки Unreal Engine.

После успешного выполнения SteamCMD вернёт статус: Success! App '1690800' fully installed.

Проверка прав доступа и запуск службы systemd#

После завершения работы SteamCMD восстановите корректного владельца всех файлов каталога установки:

bash
sudo chown -R satisfactory:satisfactory /opt/satisfactory
sudo chmod -R u=rwX,go=rX /opt/satisfactory

Запустите службу игрового сервера и проверьте журналы инициализации:

bash
sudo systemctl start satisfactory
sudo journalctl -u satisfactory -n 50 --no-pager

Убедитесь, что сервер успешно связал сетевые порты (по умолчанию UDP 7777 для игрового трафика и запросов):

bash
sudo ss -ulnp | grep 7777

Диагностика ошибок загрузки после обновления#

Если сервер завершает работу при старте, проверьте лог-файл движка в каталоге сервера:

bash
tail -n 100 /opt/satisfactory/FactoryGame/Saved/Logs/FactoryGame.log
  1. Ошибка несовместимости версии сохранения (Save header version is higher): Вы попытались запустить мир, сохранённый в Experimental, на ветке Early Access. Восстановите архив, созданный перед переключением:
bash
sudo systemctl stop satisfactory
sudo tar -xzf "$BACKUP_DIR/satisfactory_save_pre_update_${TIMESTAMP}.tar.gz" \
  -C /home/satisfactory/.config/Epic/FactoryGame/Saved/
sudo systemctl start satisfactory
  1. Ошибка прав доступа (Permission denied / FactoryGame-Linux-Shipping): Проверьте флаг исполнения на исполняемом файле сервера:
bash
ls -l /opt/satisfactory/Engine/Binaries/Linux/UnrealServer-Linux-Shipping
sudo chmod +x /opt/satisfactory/Engine/Binaries/Linux/UnrealServer-Linux-Shipping

Источники#