У выделенного сервера Satisfactory почти нет файла конфигурации. Вы устанавливаете его, открываете один порт, а дальше всё делается из самой игры: вы забираете сервер на вкладке Server Manager, задаёте имя и пароль администратора, создаёте или загружаете сохранение и меняете те немногие настройки, что существуют, из панели в клиенте. Такая схема приятна ровно до первой проблемы, потому что когда что-то ломается, править нечего. В этой статье - какие настройки существуют и куда они попадают на диске, где на самом деле лежат сохранения на Linux-сервере (не там, где вы подумали бы), как автосохранение порождает рывок, на который жалуются игроки, и как работают моды, когда серверу нужна собственная сборка каждого из них. Более общий разговор о том, почему сервер Satisfactory тяжелеет, чем лучше идёт игра, - в статье выделенный сервер Satisfactory и почему он тяжелеет.
Установка сервера и единственный важный порт#
Выделенный сервер - бесплатная отдельная загрузка: Steam app id 1690800, анонимный вход, лицензия на игру на машине с сервером не нужна.
$ steamcmd +force_install_dir /home/satisfactory +login anonymous \ +app_update 1690800 validate +quit$ cd /home/satisfactory$ ./FactoryServer.sh -Port=7777Для экспериментальной ветки добавьте -beta experimental перед validate. Клиент и сервер должны быть на одной ветке и в одной сборке; экспериментальный клиент не может подключиться к серверу раннего доступа, и наоборот, а сообщение об ошибке говорит об этом невнятно. Про app id и переключение веток вообще рассказано в статье SteamCMD простыми словами.
Начиная с Update 8 сервер использует один порт для всего, и он нужен на обоих протоколах:
| Порт | Протокол | Назначение |
|---|---|---|
7777 | UDP | Игровой трафик |
7777 | TCP | HTTPS API, с которым говорит Server Manager |
Это самая частая проблема при хостинге Satisfactory. Старые руководства, которые всё ещё ходят по сети, называют 15777 для запросов и 15000 для маяка; их больше нет. Вместо этого люди открывают 7777 по UDP, потому что так делают игровые серверы, а потом обнаруживают, что сервер вечно висит в Server Manager как «Offline». Управление, захват сервера, загрузка сохранений и установка модов идут по TCP на том же номере. Откройте оба. Зачем у игры вообще два канала, объясняет статья порты игрового сервера.
Захват сервера и два пароля#
Только что запущенный сервер не захвачен, и первый, кто его найдёт, может забрать его себе. Сделайте это сразу.
- Откройте Satisfactory, зайдите в Server Manager в главном меню, выберите Add Server и введите
address:7777. - Примите предупреждение о сертификате. Сервер предъявляет самоподписанный сертификат, потому что нет имени, на которое выдать настоящий; это ожидаемо и не признак перехвата.
- Сервер сообщает, что он не захвачен. Задайте имя сервера и пароль администратора. Это и есть захват.
- При желании задайте пароль клиента, который другие игроки вводят, чтобы зайти.
Два пароля выполняют разную работу. Пароль администратора даёт полный контроль над сервером: настройки, сохранения, выключение, установка модов. Пароль клиента позволяет только заходить. Любой, кто знает пароль администратора, - администратор: списка игроков и системы ролей нет, так что его получают один-два человека, которые действительно управляют сервером.
Когда сервер захвачен, вы либо выбираете Create Game - название сессии, стартовая локация и флажок Advanced Game Settings, - либо Manage Saves и загружаете существующее сохранение. Четыре стартовые локации - Grass Fields, Rocky Desert, Northern Forest и Dune Desert; они меняют, где вы приземлитесь, но не карту, и Grass Fields - самая мягкая.
Настройки сервера и куда они записываются#
Панель Settings в Server Manager короткая. Это вся конфигурация сервера, не связанная с геймплеем:
| Настройка | По умолчанию | Что делает |
|---|---|---|
| Auto Pause | вкл | Ставит мир на паузу, когда никто не подключён |
| Auto Save on Player Disconnect | вкл | Дополнительное сохранение, когда уходит последний игрок |
| Autosave Interval | 5 минут | Как часто записывается мир |
| Server Restart Time Slot | выкл | Час суток, в который сервер может сам перезапускаться |
| Send Gameplay Data | вкл | Телеметрия для Coffee Stain |
| Network Quality | medium | Частота обновлений на клиента |
Они записываются в ServerSettings.ini в папке конфигурации сервера (FactoryGame/Saved/Config/LinuxServer/ на Linux, WindowsServer на Windows), после того как вы хотя бы раз их измените. Читайте этот файл, а не доверяйте какому-либо опубликованному списку ключей, включая эту таблицу: Coffee Stain добавляет настройки между обновлениями, а файл, записанный сервером, всегда актуален.
Auto Pause - настройка, о которой стоит подумать первой. Когда она включена, завод останавливается в момент, когда отключается последний игрок, и снова идёт, когда кто-то возвращается. Обычно именно этого группа и хочет: мир на месте, когда вы входите, а ночью сервер не тратит CPU. Если хотите, чтобы производство шло, пока никого нет в сети, отключите её, но понимайте, что вы покупаете: симуляция идёт 24 часа в сутки, сохранение растёт круглосуточно, а выделенный контейнеру CPU используется постоянно, а не те три часа ночи, когда кто-то играет.
Network Quality меняет пропускную способность и CPU сервера на плавность. Повышайте, когда игроки видят рывки транспорта и других игроков, а сам завод в порядке. Понижать стоит попробовать на сервере, который уже упирается в CPU, потому что это единственная ручка, снижающая стоимость на игрока.
Лимита игроков в этой панели нет. Выделенный сервер по умолчанию рассчитан на четверых, что соответствует поддерживаемому размеру кооператива, а путь сообщества к большему числу - это Game.ini в той же папке конфигурации:
[/Script/Engine.GameSession]MaxPlayers=8Coffee Stain это не поддерживает, и оно не бесплатно. Сетевая часть Satisfactory настраивалась под четверых, а каждый дополнительный игрок, подгружающий другой угол большого завода, обходится дороже, чем следует из числа игроков. Восемь работает для большинства групп на хорошо подобранном тарифе; шестнадцать - это когда люди начинают сообщать о проблемах, которые не устраняет никакая настройка.
Advanced Game Settings#
Advanced Game Settings относятся к сохранению, а не к серверу. Вы включаете их флажком при создании игры или из меню паузы в сохранении, где они уже включены.
- Без стоимости постройки и без требований к энергии
- Режимы бога и полёта
- Сохранение инвентаря после смерти
- Открытие всех исследований, схем и уровней
- Прямая установка фазы игры
- Выдача предметов
Две вещи, которые нужно знать, прежде чем ставить флажок. Включение Advanced Game Settings навсегда помечает сохранение и отключает на нём достижения, и пути назад нет - копирование сохранения этого не очищает. И доступны они любому на сервере, кто откроет меню, а не только админу, так что на сервере с людьми, которых вы плохо знаете, «открыть все уровни» - это один скучающий клик.
Если группа проходит игру заново вместе, оставьте их выключенными. Для сервера строительства, где важен завод, а не прогрессия, включите при создании и больше об этом не думайте.
Сохранения: где они лежат и как перенести одно#
Здесь люди теряют час. Выделенный сервер на Linux хранит сохранения не внутри каталога установки. Он пишет их в домашний каталог пользователя, под которым запущен:
~/.config/Epic/FactoryGame/Saved/SaveGames/server/ Longship.sav Longship_autosave_0.sav Longship_autosave_1.sav Longship_autosave_2.sav~/.config/Epic/FactoryGame/Saved/SaveGames/blueprints/На сервере с Windows это %LOCALAPPDATA%\FactoryGame\Saved\SaveGames\server\. На клиенте ваши одиночные и кооперативные сохранения лежат в %LOCALAPPDATA%\FactoryGame\Saved\SaveGames\ в папке, названной по идентификатору вашего аккаунта в магазине.
Перенести сохранение на сервер можно двумя путями. Поддерживаемый - Manage Saves, затем Upload Save в Server Manager, что отправляет файл через HTTPS API. Это правильный ответ, и он работает, пока сохранение не станет большим и загрузка не упрётся в таймаут, что начинает случаться на зрелых заводах. Запасной путь - скопировать .sav прямо в папку server по SFTP или через файловый менеджер и перезапустить сервер, после чего оно появится в списке сохранений как любое другое. Как добраться до этого пути на панели, описано в статье SFTP и файловый менеджер.
Два правила, если делаете это вручную. Копируйте только файлы .sav и сохраняйте одно и то же имя сессии - Server Manager показывает в списке имя файла. И никогда не перезаписывайте сохранение, которое сервер сейчас использует; сначала остановите его, потому что следующее автосохранение затрёт всё, что вы туда положили.
Чертежи (blueprints) хранятся отдельно. Это пара файлов на каждый чертёж в папке blueprints, и они не едут вместе с сохранением, поэтому чертёж, созданный в одиночном мире друга, не появится на сервере, пока кто-нибудь его не скопирует.
Автосохранения, рывок и настоящие бэкапы#
Satisfactory записывает весь мир в один файл. Инкрементального сохранения нет, поэтому каждое автосохранение сериализует весь завод, а время на это растёт вместе с заводом. Через пять минут нового мира это незаметно. На трёхсотом часу это заморозка, которую игроки называют лагом, и жалуются они на неё по расписанию, потому что она происходит по расписанию.
Что действительно помогает, по порядку:
- Увеличьте интервал. Десять минут вместо пяти вдвое уменьшают, как часто это кто-то замечает. Но и цена сбоя вдвое выше, так что выберите число, а не выкручивайте его до максимума.
- Быстрое хранилище. Запись - это большая последовательная операция, и NVMe завершает её за долю времени, которое нужно вращающемуся диску. Это один из нагляднейших случаев в статье что на самом деле меняет NVMe.
- Больше памяти, если машина уходит в своп. Сервер, записывающий сохранение при превышении лимита памяти, - это другая и более тяжёлая проблема.
Не помогает удаление автосохранений ради экономии диска. Три ротирующихся файла - самая дешёвая страховка, какая у вас есть.
Но это и не бэкапы. Они лежат рядом с живым сохранением на том же диске, они ротируются, и испорченный мир исправно записывается во все три за пятнадцать минут. Настоящий бэкап - это копия там, куда сервер писать не может, снятая по расписанию и время от времени восстанавливаемая, чтобы убедиться, что это работает, - как следует это обосновано в статье бэкапы, которые действительно восстанавливаются. Делайте его перед каждым обновлением игры без исключений: сохранения Satisfactory совместимы только вперёд, и сохранение, открытое более новой сборкой, вернуть назад нельзя.
На RE:NODE слоты бэкапов входят в каждый тариф Satisfactory, они хранятся вне машины, которую защищают, а восстановление - это кнопка, а не тикет. Вкладка Schedules запускает ночной бэкап и, если хотите, ночной перезапуск по выражению cron - доводы за и против такого перезапуска для игры, растущей в памяти, есть в статье расписания перезапусков, которые помогают.
Моды через SML на выделенном сервере#
Моддинг Satisfactory работает на SML, Satisfactory Mod Loader, а моды распространяются через ficsit.app и устанавливаются на клиентах через Satisfactory Mod Manager. На выделенном сервере моды лежат в папке Mods внутри каталога FactoryGame сервера, по одной папке на мод.
Ограничение, на котором спотыкаются, - это целевые платформы сборки. Мод компилируется под каждую платформу, и мод, поставляющий только клиентскую сборку для Windows, не запустится на выделенном сервере Linux, куда бы вы ни положили файлы. Прежде чем строить набор модов, проверьте в описании каждого мода наличие серверной сборки. Mod Manager умеет ставить моды прямо на захваченный выделенный сервер по паролю администратора; он сам разбирается с целями сборки, и это гораздо надёжнее копирования папок.
Остальное подчиняется обычным правилам модифицированного сервера, а здесь они строги:
- Клиент и сервер запускают одни и те же моды одних и тех же версий. Несовпадение обычно приводит к отказу при подключении, а не к тихому ухудшению.
- SML привязан к версии игры. После обновления игры ничего не загружается, пока не обновлён SML, а затем каждый мод.
- Удаление мода, добавлявшего постройки, ломает сохранение. В мире остаются объекты, которые игра больше не может определить. Решите список модов до того, как вложите в него двести часов, и делайте бэкап перед добавлением или удалением чего-либо.
- Моды увеличивают расход памяти, особенно те, что добавляют постройки и рецепты, а у Satisfactory на зрелом заводе нет запаса.
Общая процедура для варианта в день патча - в статье что делать, когда обновление мода всё ломает.
Подбор ресурсов и диагностика#
Расход памяти Satisfactory следует за размером завода, а не за числом игроков. Ориентировочно:
| Стадия | RAM | Примечания |
|---|---|---|
| Новый мир, 2 игрока | 8 ГБ | Хватает на первые фазы |
| Середина игры, 4 игрока | 10-12 ГБ | Поезда, несколько производственных площадок |
| Зрелый завод | 12-14 ГБ | Использует всё, что вы дадите |
| С модами | Верх этого диапазона | Больше всего стоят моды на постройки |
Сервер показан как Offline в Server Manager, хотя порт открыт. Открыт, скорее всего, только UDP, а TCP на 7777 - нет. Канал управления - это HTTPS поверх TCP на том же номере порта, что и игровой UDP-трафик.
Клиент отказывается принять сертификат. Самоподписанный, это ожидаемо, примите его. Установить настоящий сертификат для IP-адреса нельзя.
«Server is not claimed» после того, как вы его захватили. Вы смотрите на другой сервер, либо в клиенте осталась устаревшая запись. Удалите её из списка и добавьте снова.
Сервер не принимает клиент той же версии. Проверьте ветку. Experimental и early access показывают похожие номера версий и не взаимодействуют.
Сохранение загружается и потом не появляется. Обычно таймаут на большом файле. Скопируйте его прямо в папку сохранений server и перезапустите.
Одно ядро CPU загружено, пока в сети никого нет. Auto Pause выключен, поэтому завод работает. Это выбор, а не неисправность, но делать его стоит осознанно.
Память растёт всю неделю, и сервер сам перезапускается. Контейнер упирается в лимит и запускается чистым, а не остаётся в свопе. На растущем заводе это сигнал перейти на тариф выше, а не что-то настраивать.
FAQ#
Сколько игроков вмещает выделенный сервер Satisfactory?
По умолчанию четыре, это поддерживаемое число. Увеличение MaxPlayers в Game.ini работает, и так делает большинство больших групп, но это не поддерживается, а сетевая часть не рассчитана на такое. Восемь - разумный запас; дальше ждите проблем, которых не решает ни одна настройка.
Продолжает ли завод работать, когда никого нет в сети?
Только если отключить Auto Pause. По умолчанию мир стоит на паузе, пока пуст, то есть ночью нет производства, а CPU не тратится, пока никто не играет. Достоинство ли это, целиком зависит от того, как играет ваша группа.
Где лежат сохранения на Linux-сервере?
В домашнем каталоге пользователя, под которым запущен сервер, по пути .config/Epic/FactoryGame/Saved/SaveGames/server/, а не внутри папки установки. Чертежи лежат в соседней папке blueprints.
Можно ли перенести одиночное сохранение на выделенный сервер?
Да. Загрузите его из Server Manager или скопируйте .sav в папку сохранений сервера и перезапустите. Формат сохранения тот же; не переезжают ваши чертежи, потому что это отдельные файлы.
Нужна ли копия игры, чтобы запустить сервер?
Нет. Выделенный сервер - это отдельная анонимная загрузка в Steam, app id 1690800, и лицензия ему не нужна. Игра нужна вам для администрирования, потому что Server Manager - часть клиента.
Почему сервер замирает на мгновение каждые несколько минут?
Это автосохранение. Весь завод сериализуется в один файл, поэтому пауза растёт вместе с сохранением. Увеличьте интервал автосохранения и убедитесь, что хранилище под ним быстрое; больше ничто это не меняет.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.