Space Engineers — SpaceEngineers-Dedicated.cfg
Мастер настройки Space Engineers один раз генерирует рабочий XML — и дальше почти все админы просто открывают его блокнотом и правят руками, потому что перезапускать графический визард ради одной цифры неудобно. Проблема в том, что файл делится на две зоны с разной логикой: верхнеуровневые теги отвечают за сеть и идентификацию сервера, а всё, что касается самого игрового мира, спрятано внутри блока SessionSettings. Перепутаете уровень вложенности — параметр тихо не применится. Разберём файл по разделам: где что лежит, как работают лимиты блоков через PCU, и почему список модов не терпит опечаток в ID Steam Workshop.
Содержание
Где лежит файл и как устроен XML
После прохождения мастера настройки (см. инструкцию по установке сервера Space Engineers) в папке инстанса появляется SpaceEngineers-Dedicated.cfg. На Windows это обычно каталог вида %AppData%\SpaceEngineersDedicated\<ИмяИнстанса>\, на арендованном сервере путь зависит от того, под каким пользователем запущен процесс — панель хостинга обычно показывает путь к инстансу прямо в файловом менеджере. Если сервер поднят через Wine на Linux, ищите тот же путь внутри WINEPREFIX, в эмулированном AppData.
Файл — обычный XML, и у него ровно два уровня, которые важно не путать:
<?xml version="1.0"?>
<MyConfigDedicated>
<SessionName>MAATRIX SE Survival</SessionName>
<WorldName>NewWorld</WorldName>
<IP>0.0.0.0</IP>
<ServerPort>27016</ServerPort>
<SteamPort>8766</SteamPort>
<Administrators>
<string>76561198000000001</string>
</Administrators>
<Mods>
<ModItem PublishedFileId="123456789" PublishedServiceName="Steam" />
</Mods>
<SessionSettings>
<MaxPlayers>16</MaxPlayers>
<GameMode>Survival</GameMode>
<OnlineMode>PUBLIC</OnlineMode>
<EnvironmentHostility>NORMAL</EnvironmentHostility>
<AutoHealing>true</AutoHealing>
<CargoShipsEnabled>true</CargoShipsEnabled>
</SessionSettings>
</MyConfigDedicated>
Верхний уровень (SessionName, IP, ServerPort, SteamPort, Administrators, Mods) — это идентификация сервера в сети и списки доступа. Всё, что касается баланса и правил самого игрового мира — режим, окружение, лимиты, множители — уходит внутрь SessionSettings. Вставите игровой параметр на верхний уровень по ошибке (скопировав кусок из чужого конфига без проверки отступов) — парсер либо проигнорирует тег, либо мир после перезапуска откатится к дефолтному значению этого параметра. Точное поведение зависит от версии игры, поэтому после правки всегда открывайте файл заново и проверяйте, что значение действительно сохранилось, а не просто откройте редактор один раз и доверьтесь глазам.
SessionSettings: режим игры и окружение
Ключевые переключатели, которые формируют характер сервера, лежат именно здесь:
| Параметр | Значения | Что делает |
|---|---|---|
GameMode | Survival / Creative | Выживание с крафтом и голодом vs творческий режим без ограничений |
OnlineMode | PUBLIC / FRIENDS / PRIVATE | Кто видит сервер в списке и может подключиться |
EnvironmentHostility | несколько уровней агрессии окружения | Частота и опасность враждебных дронов/существ вокруг |
AutoHealing | true / false | Автоматическая регенерация здоровья игрока со временем |
CargoShipsEnabled | true / false | Появление грузовых кораблей-NPC на карте |
PermanentDeath | true / false | Смерть без возможности возродиться с тем же персонажем |
ThrusterDamage | true / false | Урон от столкновений на полной тяге двигателей |
Точные названия уровней EnvironmentHostility и часть булевых флагов у Keen Software House немного меняются от патча к патчу — не переносите их вслепую из старого гайда, а сверяйтесь с тем набором, который реально сгенерировал ваш текущий мастер после установки актуальной версии сервера.
OnlineMode=PRIVATE — рабочий способ временно закрыть сервер для техобслуживания, не трогая при этом список админов и модов: игроки просто не видят сервер в браузере и не могут подключиться, даже зная IP.
Отдельно стоит PermanentDeath — многие путают его с обычной сложностью выживания, но это буквально означает, что персонаж после смерти не возрождается, а игрок начинает заново с нуля. Включайте только для узкоспециализированных хардкорных серверов и предупреждайте комьюнити заранее, это не та настройка, которую стоит менять без объявления.
Поднять сервер Space Engineers за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЛимиты блоков и PCU: защита тикрейта от гигантских гридов
Здесь у Space Engineers есть исторический нюанс: раньше лимиты считали по количеству блоков на игрока, но плоский подсчёт блоков плохо отражал реальную нагрузку — маленький реактор и огромный гравитационный генератор считались одинаково "одним блоком", хотя нагружают симуляцию по-разному. Поэтому в игре используется система PCU (Performance Cost Units) — каждому типу блока присвоен вес по стоимости симуляции, и лимитируется именно сумма этих весов, а не голое число блоков.
<SessionSettings>
<BlockLimitsEnabled>PER_FACTION</BlockLimitsEnabled>
<MaxFloatingObjects>256</MaxFloatingObjects>
</SessionSettings>
BlockLimitsEnabled принимает несколько режимов — от полного отключения лимитов до подсчёта по игроку или по фракции. Для PvP-сервера с полноценными фракциями логичнее считать лимит по фракции (PER_FACTION), чтобы альянс из пяти игроков не мог сообща обойти персональный потолок, просто разложив постройку на пятерых. Для казуального кооперативного сервера часто достаточно подсчёта по игроку.
MaxFloatingObjects — отдельный и часто недооценённый параметр: это лимит на количество "плавающих" объектов в мире (обломки после взрывов, выброшенные предметы, разрушенные части гридов), которые физика продолжает считать, даже если игроки давно про них забыли. На активном PvP-сервере после серии боёв мусор накапливается и начинает подъедать тикрейт незаметно для игроков — именно так, а не через сами постройки. Если сервер начал тормозить по мере роста мира, а видимых причин нет, проверьте именно это — подробный разбор с чек-листом есть в статье почему Space Engineers лагает при росте мира.
Точные названия полей PCU-системы (весовые коэффициенты по типам блоков, лимиты по фракциям и т.д.) отличаются в деталях между версиями игры — Keen периодически донастраивает баланс. Не полагайтесь на цифры из старых форумных постов, открывайте актуальный сгенерированный конфиг и меняйте значения относительно того, что там уже есть.
Синхронизация модов через Steam Workshop
Список модов в SpaceEngineers-Dedicated.cfg — это не пути к файлам, а ссылки на Steam Workshop:
<Mods>
<ModItem PublishedFileId="123456789" PublishedServiceName="Steam" />
<ModItem PublishedFileId="987654321" PublishedServiceName="Steam" />
</Mods>
PublishedFileId — числовой ID мода из URL страницы Workshop. Когда игрок подключается к серверу с этим списком, клиент Steam сам скачивает и синхронизирует недостающие моды — ручной раздачи файлов не требуется, вся логика на стороне Steam. Именно поэтому опечатка в ID — самая частая причина, по которой игроки "зависают на загрузке мода": Steam ищет несуществующий или удалённый с Workshop файл и не может его получить. Если мод сняли с публикации автор — сервер продолжит ссылаться на мёртвый ID, и все новые подключения будут спотыкаться об этот же мод, пока вы вручную не уберёте его из списка.
Практичнее не редактировать Mods руками, а добавлять моды через штатный мастер или сторонний менеджер (подробности — в статье установка модов для Space Engineers): это снижает риск опечатки в 9-10-значном числовом ID.
Отдельно от Workshop-синхронизации стоит SteamPort — это не игровой порт передачи данных (ServerPort), а порт запросов и матчмейкинга через Steam API. Для полноценной публичной видимости сервера в браузере серверов нужно пробросить оба порта, а не только основной игровой:
sudo ufw allow 27016/udp
sudo ufw allow 8766/udp
Администраторы и список банов
У Space Engineers нет RCON в привычном по шутерам понимании — права администратора выдаются через SteamID64 прямо в конфиге:
<Administrators>
<string>76561198000000001</string>
<string>76561198000000002</string>
</Administrators>
<Banned>
<string>76561198099999999</string>
</Banned>
Аккаунт с SteamID64 в Administrators получает доступ к встроенному игровому админ-меню — оттуда можно телепортироваться, спавнить объекты, банить и кикать игроков, редактировать часть настроек мира прямо во время сессии. Это удобно, но и рискованно: у любого, чей SteamID64 попал в этот список по ошибке (опечатка в цифре может случайно указать на чужой аккаунт), появляется полный контроль над миром. Перед сохранением сверяйте ID через профиль Steam каждого администратора, а не вписывайте по памяти.
Banned работает аналогично — список SteamID64, которым просто запрещено подключение. Это грубый, но надёжный инструмент, который стоит держать отдельно от игровых средств модерации, если у вас установлены плагины для более гибкой блокировки.
Бэкапы, автосохранение и применение правок
Автосохранение и число резервных копий тоже настраиваются рядом с игровыми параметрами:
<SessionSettings>
<MaxBackupSaves>5</MaxBackupSaves>
</SessionSettings>
MaxBackupSaves ограничивает, сколько последних автосохранений держит сам движок внутри папки мира — это встроенная защита от порчи одного сейва, но не замена полноценного бэкапа на случай, если отвалится сама VPS или диск. Держите отдельное расписание копирования папки Saves наружу — как именно организовать ротацию по крону, подробно разобрано в статье про автобэкапы игрового сервера.
Важный момент, который отличает Space Engineers от игр с RCON-командой перечитывания конфига на лету: после правки SpaceEngineers-Dedicated.cfg изменения применяются только после полного перезапуска процесса сервера. Никакой команды "hot reload" нет — остановите сервер, отредактируйте XML, убедитесь, что структура файла не сломана (лишняя незакрытая скобка тега — частая причина, по которой сервер не стартует после ручной правки), и запустите заново.
Поднять сервер Space Engineers за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Почему изменённый параметр не применился после рестарта?
Чаще всего тег попал не в тот уровень вложенности — игровые настройки должны быть внутри SessionSettings, а не на верхнем уровне рядом с IP и ServerPort. Проверьте отступы и закрывающие теги во всём файле.
Можно ли редактировать SpaceEngineers-Dedicated.cfg прямо во время работы сервера?
Файл читается только при старте процесса, живого перечитывания конфига нет. Правьте только на остановленном сервере, иначе изменения либо не применятся, либо будут перезаписаны следующим автосохранением.
Что делать, если игрок не может скачать нужный мод при подключении?
Проверьте PublishedFileId этого мода в блоке Mods — модель могли снять с публикации на Workshop, либо в конфиге опечатка в числовом ID. Уберите или замените запись, если мод больше не существует.
В чём разница между лимитом PER_PLAYER и PER_FACTION в BlockLimitsEnabled?
PER_PLAYER считает PCU каждого игрока по отдельности, PER_FACTION суммирует PCU всех построек фракции в общий лимит — актуально, чтобы группа игроков не обходила персональные лимиты за счёт совместных построек.
Обязательно ли открывать SteamPort, если сервер и так работает?
Если сервер приватный и игроки подключаются напрямую по IP, можно обойтись без него. Но для видимости в публичном браузере серверов Steam нужен именно этот порт, а не только основной игровой.