MAATRIX GAMES / Блог / Как поднять сервер Satisfactory: пошаговая инструкция

Как поднять сервер Satisfactory: пошаговая инструкция

MAATRIX GAMES

Если вы строите фабрики в Satisfactory с друзьями по сети и упёрлись в лимиты p2p-хостинга — лаги при синхронизации конвейеров, разрывы соединения у того, кто держит мир, невозможность оставить сервер работать без хозяина — пора переезжать на выделенный Dedicated Server. Это не так страшно, как кажется: Coffee Stain Studios сделали официальный серверный билд, который ставится через SteamCMD за десять минут и настраивается через обычный браузер. Ниже — весь путь от чистого VPS до работающего сервера с автозапуском.

Системные требования: сколько ресурсов реально нужно

Satisfactory — игра на Unreal Engine с тяжёлой симуляцией логистики (конвейеры, трубы, дроны, поезда), и это очень требовательно к процессору, особенно к производительности одного ядра. С ростом фабрики нагрузка растёт нелинейно: сотня сборщиков и десяток километров конвейеров грузят сервер куда сильнее, чем количество игроков само по себе.

Ориентировочные требования для старта:

ПараметрМинимумКомфортно (средняя фабрика, 4-6 игроков)
RAM6 ГБ8-12 ГБ
CPU2-4 ядра, высокая частота на поток4+ ядра
Диск15-20 ГБ SSD30+ ГБ SSD (под сейвы и бэкапы)
Сетьстабильный аплинк, низкий пинг

Ключевой момент: на поздних этапах игры (мегафабрики, десятки тысяч производственных зданий) даже мощный сервер может начать проседать по тикам именно из-за упора в один поток CPU — это особенность движка, а не признак того, что вы сделали что-то не так. Если планируете разрастаться сильно — берите тариф с запасом по CPU, а не только по RAM.

Из ОС подойдут и Linux, и Windows Server — официальный билд кроссплатформенный, различия только в скриптах запуска и путях к файлам.

Устанавливаем Dedicated Server через SteamCMD

Дальше — на примере Linux (Ubuntu/Debian), для Windows шаги те же, отличаются только команды.

Ставим зависимости и SteamCMD:

sudo apt update && sudo apt install -y lib32gcc-s1 curl
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

Запускаем установку самого сервера — app id Dedicated Server Satisfactory это 1690800 (это отдельное приложение, не путать с id клиентской игры):

./steamcmd.sh +force_install_dir /home/steam/satisfactory-server +login anonymous +app_update 1690800 validate +quit

Процесс скачает 3-4 ГБ и распакует бинарники в указанную папку. По завершении там появится скрипт FactoryServer.sh (на Windows — FactoryServer.exe).

Первый пробный запуск:

cd /home/steam/satisfactory-server
./FactoryServer.sh -unattended -log

Флаг -unattended нужен обязательно на выделенном сервере — без него процесс может подвесить консольный диалог и ждать ввода, которого никто не даст. -log включает подробный лог в файл, что полезно при первой диагностике проблем.

Если хотите сразу задать нестандартные порты (пригодится, если на одной машине крутите несколько игровых серверов), добавьте параметры:

./FactoryServer.sh -unattended -log -Port=7777 -BeaconPort=15000

Поднять сервер Satisfactory за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Порты сервера: что и зачем открывать

У Dedicated Server Satisfactory три порта, и их легко перепутать:

  • 7777/UDP — игровой порт, по нему клиенты подключаются к миру. Это то, что нужно открыть в первую очередь.
  • 15000/UDP — Beacon-порт, служебный, используется для обнаружения сервера и NAT-punchthrough. Если на машине несколько серверов Satisfactory, у каждого должен быть свой Beacon-порт.
  • 7777/TCP (HTTPS) — тот самый «отдельный API-порт» для управления: по нему работает веб-интерфейс Server Manager, через который вы настраиваете сервер, загружаете сохранения и следите за состоянием. Да, номер совпадает с игровым портом, но протокол другой (TCP вместо UDP), поэтому конфликта нет. Порт задаётся отдельным параметром -ServerManagerPort= при необходимости его сменить.

На домашнем ПК с сервером это означает проброс на роутере: UDP 7777, UDP 15000, и по желанию TCP 7777, если хотите заходить в веб-интерфейс не только из локальной сети.

На VPS с файрволом (ufw) достаточно:

sudo ufw allow 7777/udp
sudo ufw allow 15000/udp
sudo ufw allow 7777/tcp

Если арендуете сервер под Satisfactory у хостинга — уточните, открыты ли эти порты по умолчанию или нужно добавить правило в панели. На VPS от MAATRIX GAMES игровые порты для готовых образов открываются автоматически при деплое.

Настройка через веб-интерфейс Server Manager

После первого запуска идём в браузере по адресу https://IP-сервера:7777. Браузер почти наверняка ругнётся на самоподписанный сертификат — это нормально для Dedicated Server, жмём «Продолжить» / «Перейти на сайт» (формулировка зависит от браузера).

При первом входе Server Manager попросит:

  1. Задать пароль администратора — сохраните его, второго шанса восстановить через интерфейс нет, только через файлы конфигурации на сервере.
  2. Выбрать: начать новую игру или загрузить существующее сохранение.
  3. Указать базовые настройки: название сервера, видимость (Public / Friends Only / Invite Only), пароль на вход для игроков (отдельный от админского).

Если выбираете «New Game», дальше идут стандартные настройки старта — стартовая точка на карте, пресеты сложности (можно оставить по умолчанию и поменять потом через админку внутриигрового меню). Готовый мир поднимается за пару минут — прогресс виден прямо в веб-интерфейсе.

Полезная деталь: через тот же Server Manager можно на лету менять RAM-лимиты, смотреть онлайн игроков, перезапускать сервер и скачивать актуальный сейв — не обязательно лезть в консоль каждый раз.

Создание и загрузка сохранения

Есть два сценария:

Начинаете с нуля. Просто выбираете «New Game» в мастере первого запуска — сервер сам создаст файл сохранения в стандартной папке (на Linux обычно ~/.config/Epic/FactoryGame/Saved/SaveGames/server/, на Windows — %LOCALAPPDATA%\FactoryGame\Saved\SaveGames\server\).

Переносите сингловый мир на сервер. Найдите на своём ПК файл сохранения (обычно %LOCALAPPDATA%\FactoryGame\Saved\SaveGames\<SteamID>\*.sav), затем через вкладку загрузки в Server Manager выберите «Upload Save Game» и залейте файл напрямую через браузер — это самый надёжный способ, без ручного копирования по SFTP. Если веб-загрузка недоступна, можно закинуть .sav-файл вручную в папку SaveGames/server/ на сервере через SFTP/SCP и выбрать его при рестарте.

Важно: версия клиента и версия Dedicated Server должны совпадать (experimental / stable ветка). Если сервер обновился, а у части игроков старый клиент — будет ошибка несовместимости при подключении, обновите Satisfactory в Steam до той же ветки, что и сервер.

Не забывайте про регулярные бэкапы папки с сейвами — вручную по крону или средствами хостинга. Мир Satisfactory разрастается, а откатить случайно снесённую фабрику без бэкапа не получится.

Автозапуск и перезапуск при падении

Голый скрипт FactoryServer.sh в терминале умрёт при разрыве SSH-сессии. Для продакшена нужен либо systemd, либо screen/tmux как временное решение.

Вариант со screen (быстро, но не переживёт перезагрузку сервера):

screen -dmS satisfactory /home/steam/satisfactory-server/FactoryServer.sh -unattended -log -Port=7777 -BeaconPort=15000

Подключиться обратно к консоли: screen -r satisfactory.

Правильный вариант — systemd-юнит, который сам поднимет сервер после перезагрузки хоста и перезапустит при падении процесса:

[Unit]
Description=Satisfactory Dedicated Server
After=network.target

[Service]
Type=simple
User=steam
WorkingDirectory=/home/steam/satisfactory-server
ExecStart=/home/steam/satisfactory-server/FactoryServer.sh -unattended -log -Port=7777 -BeaconPort=15000
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target

Сохраните как /etc/systemd/system/satisfactory.service, затем:

sudo systemctl daemon-reload
sudo systemctl enable --now satisfactory
sudo systemctl status satisfactory

Логи в реальном времени: journalctl -u satisfactory -f. Это же полезно, когда игроки жалуются на лаги или дисконнекты — сразу видно, упирается сервер в CPU/RAM или дело в сети.

Обновление сервера и обслуживание

Satisfactory регулярно обновляется, особенно на experimental-ветке. Обновить Dedicated Server — та же команда SteamCMD, что использовалась при установке, только без validate можно быстрее, а с ним — надёжнее, если подозреваете повреждение файлов:

sudo systemctl stop satisfactory
./steamcmd.sh +force_install_dir /home/steam/satisfactory-server +login anonymous +app_update 1690800 validate +quit
sudo systemctl start satisfactory

Если хотите сидеть на stable-ветке, а не experimental, добавьте бету явно — +app_update 1690800 -beta stable validate, но учтите, что доступность конкретных веток и их названия иногда меняются студией, сверяйтесь с текущим списком веток в SteamCMD (+app_info_print 1690800 покажет доступные branch).

Перед крупным обновлением всегда делайте копию папки с сейвами — откат билда через SteamCMD штатно не предусмотрен, а сломанный после патча мир без бэкапа не восстановить.

Поднять сервер Satisfactory за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Сколько игроков потянет один сервер?

Официального жёсткого лимита у Coffee Stain нет, на практике всё упирается в CPU при росте фабрики: небольшая группа из 4-6 человек комфортно себя чувствует на 4-6 ГБ RAM и паре ядер, для более крупных постоянных групп стоит закладывать запас по мощности заранее.

Можно ли запустить сервер на Windows вместо Linux?

Да, официальный билд поддерживает оба варианта, механика та же — SteamCMD ставит FactoryServer.exe, а для автозапуска на Windows вместо systemd используется служба через nssm или планировщик заданий.

Почему друзья не видят сервер в списке серверов игры?

Чаще всего дело в непроброшенном UDP 7777/15000 либо в видимости «Invite Only» вместо «Friends Only» — также проверьте, что версия клиента совпадает с версией сервера.

Нужен ли постоянно включённый ПК, если ставить сервер локально?

Да, если не переносить сервер на VPS — при выключении хостовой машины или разрыве интернета сервер недоступен всем, в отличие от аренды на удалённой площадке с гарантированным аптаймом.

Как посмотреть, сколько ресурсов реально ест сервер?

На Linux — htop рядом с процессом FactoryServer, плюс вкладка состояния в самом Server Manager, где видно занятую память и число игроков онлайн.