Satisfactory — GameUserSettings.ini для дедиков
Полез в GameUserSettings.ini на своём Satisfactory-сервере по привычке — так, как раньше правил конфиги ARK или Rust — и обнаружил, что половины ожидаемых параметров там просто нет, а те, что есть, ни на что не влияют? Это не баг вашей установки. У Satisfactory своя, довольно нетипичная для жанра модель конфигурации, и если не знать её логику заранее, можно часами искать несуществующую строчку. Разберём, что на самом деле лежит в этом файле, где реально настраиваются сеть и автосейв, и что можно аккуратно потрогать руками сверх стандартной веб-панели.
Содержание
- Где физически лежит файл — и почему его легко не найти
- Почему это не ARK: логика конфигурации Satisfactory
- Сетевые параметры: порты задаются не в ini, а при запуске
- Автосейв: где реально настраивается интервал
- Advanced Game Settings: продвинутые правила сессии
- Что реально можно потрогать вручную: логи и тонкая сетевая настройка
Где физически лежит файл — и почему его легко не найти
Как и большинство настроек Unreal Engine, GameUserSettings.ini живёт в подпапке Saved/Config/ рядом с исполняемым файлом сервера, но платформы ведут себя по-разному:
- Windows:
<папка установки сервера>\FactoryGame\Saved\Config\WindowsServer\GameUserSettings.ini - Linux (SteamCMD):
~/.config/Epic/FactoryGame/Saved/Config/LinuxServer/GameUserSettings.ini
На Linux это та же логика, что и с сохранениями: Unreal Engine на этой платформе выносит пользовательские данные не в папку установки, а в ~/.config/Epic/FactoryGame/Saved/, отдельно от бинарников SteamCMD. Если ставили сервер по инструкции по установке Dedicated Server Satisfactory и искали конфиг прямо в /home/steam/satisfactory-server/FactoryGame/Saved/Config/ — файла там либо не будет вовсе, либо он окажется пустым до первого реального запуска процесса, который и создаёт структуру папок при старте.
Если файла нет совсем — это нормально для только что установленного сервера, который ещё ни разу не запускался. Он появляется после первого -unattended-старта, а не сразу после app_update.
Почему это не ARK: логика конфигурации Satisfactory
Ключевой момент, который стоит понять сразу, чтобы не тратить время впустую: GameUserSettings.ini у Satisfactory — это в первую очередь стандартный файл движка Unreal Engine, а не авторский конфиг гейм-дизайнеров игры. В нём живут технические параметры вроде разрешения экрана, VSync, лимита FPS и уровня качества графики — то есть то, что относится к клиентскому рендеру. На headless-сервере, запущенном с флагом -unattended и без окна, большая часть этих строк попросту ни на что не влияет, потому что рендерить нечего.
Coffee Stain не стали делать по образцу ARK или Rust плоский человекочитаемый конфиг с игровыми множителями и правилами сессии прямо в ini-файле. Вместо этого настройки сессии — название сервера, пароли, лимит игроков, интервал автосейва, продвинутые игровые правила — управляются через HTTPS API, к которому обращается веб-интерфейс Server Manager (тот самый по адресу https://IP-сервера:7777) и хранятся вместе с данными самой сессии, а не построчно в этом ini. Поэтому если вы пришли сюда искать строку вроде AutosaveInterval=300 для ручной вставки — в свежесозданном файле её не будет, и добавление руками эффекта не даст.
Практический вывод: GameUserSettings.ini полезен для диагностики (можно посмотреть, что реально применилось) и для пары технических правок ниже, но основной «пульт управления» сервером — это веб-панель, а не текстовый редактор.
Поднять сервер Satisfactory за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверСетевые параметры: порты задаются не в ini, а при запуске
Три порта Dedicated Server Satisfactory — игровой 7777/UDP, Beacon 15000/UDP и API/веб-интерфейс 7777/TCP (HTTPS) — подробно разобраны с точки зрения проброса и файрвола в статье про установку сервера, здесь же важный нюанс именно для конфигурации: менять их через GameUserSettings.ini бессмысленно, потому что сетевой стек Satisfactory берёт эти значения из аргументов командной строки при старте процесса, а не из ini-секций.
Правильное место для нестандартных портов — строка запуска, например, в unit-файле systemd:
[Service]
ExecStart=/home/steam/satisfactory-server/FactoryServer.sh -unattended -log -Port=7778 -BeaconPort=15001 -ServerManagerPort=7778
Если держите несколько серверов Satisfactory на одной машине — у каждого обязательно должен быть свой уникальный набор из всех трёх портов, иначе процессы будут конфликтовать за биндинг, и один из серверов не поднимется вовсе или начнёт вести себя нестабильно. После смены портов не забудьте синхронно поправить правила файрвола — если ставили ufw по инструкции из статьи об установке, старые разрешённые порты стоит закрыть, а новые открыть отдельной командой.
Автосейв: где реально настраивается интервал
Интервал автосохранения и число хранимых резервных копий сейва задаются не в файле, а через веб-панель Server Manager — либо на экране создания новой игры (New Game), либо позже, в разделе настроек уже запущенной сессии. Единица измерения — секунды, но точное значение по умолчанию стоит смотреть непосредственно в интерфейсе своего сервера: дефолты между обновлениями игры иногда меняются, и полагаться на цифру «из памяти» не стоит.
Общий компромисс: слишком частый автосейв на разросшейся фабрике даёт заметные фризы в момент записи (мы подробно разбирали это в статье Satisfactory: лагает при росте мира/производства), слишком редкий — увеличивает потери прогресса при аварийном падении процесса между сохранениями. Отдельно от встроенного автосейва стоит держать и внешние бэкапы папки SaveGames/server/ по cron — рабочий скрипт с ротацией и разбор восстановления битого сейва есть в статье Satisfactory: проблема с сохранением прогресса.
Важный нюанс именно про число хранимых копий: значение отвечает только за штатную ротацию внутри самой игры и никак не связано с вашими внешними бэкапами — это два независимых механизма, и полагаться стоит на оба одновременно, а не на один вместо другого.
Advanced Game Settings: продвинутые правила сессии
В том же Server Manager, на экране создания или настройки сессии, есть отдельный блок Advanced Game Settings — там живут игровые правила, которые в других играх обычно как раз и оказываются в плоском ini-конфиге. Часть из них хорошо знакома игрокам:
- No Power — отключает требование электричества для производственных зданий.
- Set Starting Tier / Unlock All Tiers — стартовый уровень технологического древа и полное открытие всех тиров.
- Unlock All Research Schematics / Unlock Instant Alt Recipes — доступ к альтернативным рецептам без прохождения соответствующих HUB-исследований.
- No Building Cost — стройка без расхода ресурсов из инвентаря.
- Disable Arachnid Creatures — режим для игроков с арахнофобией, заменяющий облик пауков на менее пугающую модель.
Список может немного отличаться от версии к версии — сверяйтесь с актуальным набором прямо в панели своего сервера, а не с чужим скриншотом из интернета. Важный практический момент: часть этих правил фиксируется при создании мира и не переключается позже без старта новой сессии — прежде чем нажимать «Start New Game» с нестандартными правилами, убедитесь, что вся группа игроков согласна с выбором, потому что откатить конкретно этот пункт без потери прогресса обычно нельзя.
Что реально можно потрогать вручную: логи и тонкая сетевая настройка
Помимо портов, из командной строки полезно управлять и уровнем логирования — если разбираете нестабильный краш или дырявую производительность, детальный лог часто говорит больше, чем интерфейс панели:
./FactoryServer.sh -unattended -log -LogCmds="global verbose"
Это резко увеличивает объём FactoryServer.log в Saved/Logs/, поэтому включайте подробный режим точечно на время диагностики, а не постоянно — иначе рискуете снова упереться в нехватку места на диске, которая уже разбиралась как отдельная причина проблем с сохранениями.
Отдельно стоит сказать честно: в интернете можно встретить советы добавлять в Engine.ini секцию [/Script/OnlineSubsystemUtils.IpNetDriver] с параметром NetServerMaxTickRate — это стандартный для многих серверов на Unreal Engine рычаг сетевого тикрейта. Официально для Satisfactory он не задокументирован разработчиком, и эффект от него на конкретной сборке игры не гарантирован — если решите поэкспериментировать, делайте это на тестовом сервере и обязательно с бэкапом конфигов перед правкой, а не сразу на боевом мире с активным сообществом.
Поднять сервер Satisfactory за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Почему изменения в GameUserSettings.ini не применяются?
Скорее всего, вы правите строки, которые сервер вообще не читает для геймплейных параметров (сеть, автосейв, правила сессии) — эти настройки управляются через веб-панель Server Manager и командную строку, а не через плоский ini-конфиг, в отличие от ARK или Rust.
Можно ли полностью отказаться от веб-панели и настраивать сервер только файлами?
Нет, для базовых операций (создание сессии, смена пароля администратора, интервал автосейва) панель обязательна — это официально поддерживаемый способ управления сервером, а не альтернатива на выбор.
Как узнать, какие Advanced Game Settings сейчас активны на моей сессии?
Загляните в тот же раздел веб-панели, где создавали игру, — активные правила там отображаются, а точный список пунктов сверяйте по своей версии сервера, потому что он периодически дополняется новыми апдейтами.
Стоит ли менять сетевые параметры прямо в GameUserSettings.ini, если очень нужно?
Нет смысла — порты сервер берёт из аргументов командной строки при запуске. Правьте строку запуска в скрипте или unit-файле systemd, а не сам ini.
Нужно ли перезапускать сервер после смены Advanced Game Settings?
Часть правил применяется только при старте новой сессии и не переключается на лету на уже запущенном мире — если нужное правило недоступно для изменения в панели существующей сессии, значит, оно из этой категории.