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

Как перенести сохранение Satisfactory на выделенный сервер

Перенесите PC-сохранение Satisfactory на выделенный сервер: выбор сессии, отдельные чертежи и проверка после рестарта.

Как перенести сохранение Satisfactory на выделенный сервер

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

Инструкция рассчитана на немодифицированную PC-версию и уже работающий выделенный сервер на Linux. В примерах используется установка из руководства для Ubuntu: служба satisfactory.service, пользователь satisfactory, HOME /home/satisfactory, каталог установки /home/satisfactory/server. Для контейнера, Windows-службы или другой учётной записи сначала определите реальные пути. Извлечение консольных сохранений и удаление модов здесь не рассматриваются.

Зафиксируйте фабрику перед переездом#

На исходной машине прекратите строительство и сделайте ручное сохранение с отдельным именем, например factory-before-move. Запишите название сессии, время игры и заметный признак состояния: подписанный контейнер у хаба с известным содержимым надёжнее впечатления «фабрика вроде знакомая». После сохранения выйдите из локальной игры. Если источник — другой выделенный сервер, согласуйте остановку игры и снимите финальную копию после ручного сохранения.

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

В Windows начните с %LOCALAPPDATA%\FactoryGame\Saved\SaveGames и найдите каталог нужной учётной записи. Документация сохранений отделяет его от расположения миров выделенного сервера. Не выбирайте первую папку с длинным идентификатором наугад. Сверьте файл со списком загрузки в игре и скопируйте его за пределы каталога, которым управляет игра.

Определите владельца данных на сервере#

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

bash
sudo systemctl cat satisfactory.service
sudo systemctl show satisfactory.service \
  -p User -p Group -p Environment -p WorkingDirectory -p ExecStart

Документация окружения systemd объясняет, почему контекст службы отличается от SSH-сеанса. Проверьте переопределение HOME и домашний каталог пользователя; если unit-файл оставляет сомнения, локально посмотрите окружение работающего процесса. Наличие домашней папки у пользователя ещё не доказывает, что запускающая обёртка использует её.

Для нашей установки миры лежат в /home/satisfactory/.config/Epic/FactoryGame/Saved/SaveGames/server. Это стандартный путь относительно домашней папки службы, а не текущего каталога команды scp. Убедитесь, что там действительно находятся известные сохранения. Если на назначении уже есть другая фабрика, сохраните её контрольную точку и постоянные данные до любых замен.

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

Сначала используйте загрузку через игру#

Запустите сервер назначения и авторизуйтесь администратором в Server Manager. Откройте Manage Saves и действие загрузки локального сохранения из руководства выделенного сервера. Выберите подготовленный файл, а не более раннее автосохранение. Эта операция проходит через работающий интерфейс управления; вручную писать в каталог запущенной игры для неё не требуется.

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

Если загрузка прерывается, сохраните исходник и проверьте сообщение об ошибке вместе с журналом сервера. Разделите недоступность управления и отказ при чтении самого мира. Для первого случая используйте проверку подключения: повторное отправление .sav не исправит firewall или несовместимую сборку.

Если нужен доступ к файлам, остановите сервер#

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

bash
sudo systemctl stop satisfactory.service
sudo systemctl show satisfactory.service \
  -p ActiveState -p SubState -p MainPID -p Result
sudo journalctl -u satisfactory.service -n 80 --no-pager

Продолжайте только при неактивной службе, отсутствии оставшегося игрового процесса и ошибок завершения. В unit-файле заранее должен быть настроен штатный способ остановки: руководство службы указывает SIGINT и отдельно предупреждает, что завершение не сохраняет мир автоматически. Принудительное завершение по тайм-ауту требует разбора, а не считается готовой контрольной точкой.

Скопируйте выбранный .sav в проверенный каталог server, пока игра остановлена. Не перезаписывайте одноимённый файл назначения без сохранения прежней версии; безопаснее использовать отдельное имя. Назначьте владельцем нового файла пользователя и группу службы, проверьте чтение и запись от этого пользователя. Для исправления одного импортированного файла не нужно менять владельца всей установки рекурсивно. Запустите службу, авторизуйтесь и выберите мир через Manage Saves.

Перенесите чертежи и проверьте результат#

В PC-версии чертежи хранятся отдельно: сохраните .sbp и соответствующие .sbpcfg. Ориентируйтесь на название сессии внутри сохранения, а не придумывайте папку по имени .sav. В нашем Linux-примере проверьте SaveGames/blueprints/<session> рядом с каталогом server. Копируйте файлы нужной сессии при остановленном сервере, отдельно сохраните одноимённые файлы назначения и восстановите владельца-службу. После переноса перезагрузите сохранение. Отсутствующий каталог может означать, что для этой сессии ещё не создан ни один чертёж.

Зайдите под ожидаемой учётной записью игрока. Проверьте метку у хаба, прогресс, инвентарь и знакомый чертёж. Новый персонаж или пропавшая библиотека — повод разобраться до продолжения строительства; не удаляйте старые данные игроков первым действием. Пароли администратора и игроков, а также автоматическую загрузку сессии настройте на назначении осознанно. Перенос мира не задаёт идентичность сервера.

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