RE:NODE

Руководства12 мин чтения

Выделенный сервер The Front: настройка и порты

Как запустить выделенный сервер The Front: установка через SteamCMD, строка запуска, четыре порта, настройки PvP и PvE, рейты, админы, интервал сохранения, вайпы и решение проблем.

0 прочтений

Выделенный сервер The Front - это бесплатная загрузка через SteamCMD (app id 2334200) со сборками под Linux и Windows, и настраивается он почти целиком через параметры запуска: название сервера, лимит игроков, PvP или PvE, SteamID админов, интервал сохранения и десятки игровых рейтов - всё это аргументы -Key=Value в одной длинной командной строке (менеджер сервера для Windows записывает те же ключи в ServerConfig_*.ini). Ему нужны четыре UDP-порта - игровой, beacon, query и порт службы выключения, - и это тяжёлый сервер на Unreal Engine: 6 ГБ памяти - это нижняя планка для небольшой группы, а для оживлённого публичного мира нужно 10 ГБ и больше. Две настройки, которые защищают ваш мир, - короткий SaveWorldInterval и backup папки сохранений перед каждым обновлением.

Это руководство охватывает установку и запуск сервера, порты и то, почему их четыре, настройки, которые определяют, какой сервер вы держите, админов, сохранения и вайпы, а также ошибки, из-за которых люди не могут зайти.

Что такое сервер The Front#

The Front - игра на выживание со строительством баз, PvP или PvE, городами NPC и техникой, сделанная на Unreal Engine. Выделенный сервер держит один персистентный мир: каждая база, контейнер, машина и персонаж игрока хранятся на стороне сервера и сохраняются по таймеру.

Несколько вещей определяют, как с ним работать:

  • Настройки - это параметры запуска. Нет единого файла конфигурации, который вы правите, а сервер читает, как во многих играх на выживание. В Linux и в большинстве панелей каждая настройка - это аргумент командной строки; инструмент-менеджер сервера для Windows хранит их в ini и собирает строку за вас.
  • Мир живёт в пользовательской папке. Аргумент -UserDir говорит серверу, где хранить данные мира, а -ConfigServerName задаёт имя сохранения. Измените любой из них, и сервер начнёт новый мир, а старый будет лежать рядом нетронутым.
  • Античит включён по умолчанию. Античит игры (UseACE) включён, и на любом публичном сервере таким и должен оставаться.
  • Обновления требуют осторожности. Игра обновляется часто, и шаблоны хостинга от сообщества предостерегают от автоматических обновлений, потому что неудачное обновление может оставить установку сломанной. Обновляйтесь осознанно, сначала сделав backup.

Требования и потребление ресурсов#

КонфигурацияRAMCPUПримечания
2-6 друзей, PvE6-8 ГБ2 ядраРеалистичный минимум
10-20 игроков8-10 ГБ2.5-3 ядраБазы и активность NPC накапливаются
30-60 игроков, публичный PvP12-14 ГБ3-3.5 ядраПамять растёт вместе с миром
Давно работающий мир, много баз14 ГБ+3.5 ядраПланируйте перезапуски и периодические вайпы
  • Память растёт вместе с миром: каждое строение, контейнер и машина держатся в памяти. Сервер, который стартует с 5 ГБ, через месяц при том же числе игроков может занимать 10 ГБ. Следите за пиком, а не за стартом.
  • CPU - это в основном один загруженный игровой поток плюс вспомогательные. Частота процессора держит сервер, когда рейды и атаки на города NPC происходят одновременно. Как понять, какого ресурса не хватает, объясняет статья CPU или RAM для игровых серверов.
  • Диск нужен умеренный под установку, и он растёт вместе с сохранениями. NVMe сокращает подвисание при сохранении мира - именно тогда игроки и замечают медленный диск.

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

Установка и строка запуска#

bash
$ steamcmd +force_install_dir /home/thefront/server +login anonymous \    +app_update 2334200 validate +quit

В Linux бинарник сервера - ProjectWar/Binaries/Linux/TheFrontServer, и запускается он с токеном карты и длинным списком параметров:

bash
$ ./ProjectWar/Binaries/Linux/TheFrontServer ProjectWar_Start?DedicatedServer \    -server -game -log \    -ServerName="Iron Harbour PvE | EU" -ServerPassword= \    -Port=7900 -BeaconPort=7901 -QueryPort=7902 -ShutDownServicePort=7903 \    -OutIPAddress=203.0.113.10 \    -ConfigServerName=ironharbour -UserDir="/home/thefront/saves/ironharbour/" \    -QueueThreshold=40 -MaxQueueSize=20 -QueueValidTime=120 \    -ServerFightModeType=1 -IsCanSelfDamage=0 -IsCanFriendDamage=0 \    -SaveWorldInterval=300 -GreenHand=true -UseACE=true \    -ServerAdminAccounts=76561198012345678;76561198087654321

У панельного хостинга эту строку набирать не нужно. Каждое из этих значений - поле во вкладке Startup, и изменить его - значит отредактировать поле и перезапустить сервер. Про сторону загрузки рассказано в статье SteamCMD простыми словами.

Параметры, которые определяют сервер:

ПараметрЧто делает
-ServerNameНазвание в браузере серверов
-ServerPasswordПароль для входа. Пустой для публичного сервера
-ConfigServerNameИдентифицирует сохранение. Измените его - получите новый мир
-UserDirПапка с данными мира. Делайте её backup
-OutIPAddressПубличный адрес, который сообщается игрокам
-QueueThresholdФактический лимит игроков; те, кто сверх него, встают в очередь
-MaxQueueSizeСколько человек может ждать в очереди
-QueueValidTimeСколько секунд держится место игрока в очереди
-ServerFightModeType0 PvP, 1 PvE
-SaveWorldIntervalСекунды между сохранениями мира
-ServerAdminAccountsSteamID64 с правами админа через точку с запятой
-UseACEАнтичит. Оставьте true
-GreenHandЗащита новичков

Порты: почему их четыре#

ПараметрНазначениеПротокол
-PortИгровой трафикUDP
-BeaconPortРукопожатие при входеUDP
-QueryPortSteam query - браузер серверовUDP
-ShutDownServicePortИспользуется для корректной остановки сервераUDP

Значения по умолчанию в разных опубликованных шаблонах различаются - одни используют 7900-7903, другие 27015-27018, - и неважно, какие использовать, лишь бы четыре параметра совпадали с портами, реально открытыми в интернет. Задавайте их явно, а не полагайтесь на значения по умолчанию.

Классический сбой - сервер виден в браузере, но вход обрывается на экране загрузки. Это beacon-порт: query-порт ответил браузеру, но рукопожатие при входе не смогло завершиться. Сервер, который вообще не появляется, обычно упирается в query-порт. Почему игры так разделяют трафик, разбирает статья порты игровых серверов простыми словами.

-OutIPAddress важен на машинах, где сервер не может сам определить свой публичный адрес. Если браузер показывает ваш сервер с приватным или неверным адресом, впишите настоящий публичный IP.

игра + beaconquery-портслужба выключенияИгрокклиент SteamБраузер серверовSteamПанель или менеджеркорректная остановкаСервер The Frontодин мир
Для чего нужен каждый порт The Front

В RE:NODE тарифы The Front идут с тремя выделенными портами; добавьте четвёртый во вкладке Network до первого запуска, чтобы все четыре параметра указывали на порты, которые действительно ваши.

Настройки, которые определяют ваш сервер#

Помимо названия и портов, The Front открывает длинный список игровых рейтов. Почти все по умолчанию равны 1 (обычное значение), и их можно передавать как параметры точно так же, как настройки выше. Группируйте их по решениям, которые за ними стоят.

PvP или PvE и урон

НастройкаЗначенияЭффект
ServerFightModeType0 PvP, 1 PvEГлавный выбор
IsCanSelfDamage0 / 1Можно ли ранить самого себя
IsCanFriendDamage0 / 1Огонь по своим между союзниками
CHFDamagedByPlayer0 / 1Могут ли игроки повреждать базы
CHFDamagedByNpc0 / 1Могут ли NPC повреждать базы
CHFDamagedByVehicle0 / 1Может ли техника повреждать базы

PvE-сервер, который всё ещё разрешает NPC повреждать базы, сохраняет смысл в рейдах городов. PvP-сервер, который запрещает урон по базам, - это мирный сервер с лишними шагами.

Прогрессия и сбор ресурсов

НастройкаПо умолчаниюЭффект
PlayerAddExpRate1Общий множитель опыта
PlayerKillAddExpRate, PlayerFarmAddExpRate, PlayerCraftAddExpRate1Опыт по видам активности
GMCraftTimeRate1Множитель времени крафта
GMTreeGainRate, GMOreGainRate, GMBushGainRate1Добыча при сборе
GMCropVegetableGrowRatio1Скорость роста урожая
IsUnLockAllTalentAndRecipe0Открыть всё с самого начала

Рейты 2-3 подходят небольшой группе с ограниченным временем. Выше 5 прогрессия рушится, и мир "проходится" за выходные - это вполне законный выбор для сервера с коротким сезоном, но делайте его намеренно.

Базы, NPC, смерть и выживание

НастройкаПо умолчаниюЭффект
GMMaxHouseFlagNumber1Флаги баз (территорий) на игрока
GMSetGJConstructMaxNumRatio1Множитель лимитов строительных блоков
NpcRespawnRatio1Интервал возрождения NPC
WildNPCDamageRate, WildNPCHealthRate1Сложность диких NPC
GMDeathDropModeпо-разномуЧто происходит с инвентарём при смерти
GMRebirthBaseCDпо-разномуЗадержка возрождения на базе
PlayerMaxHungerRate, GMHungerDecRatio, GMWaterDecRatio1Голод и жажда

Лимиты строительства - настройка, которая сильнее всего влияет на здоровье сервера со временем. Каждый блок держится в памяти и сохраняется; сервер, который поднимает GMSetGJConstructMaxNumRatio, чтобы люди могли строить города, через месяц будет требовать больше памяти, чем тот же сервер со значениями по умолчанию. Если поднимаете, дополните это понятным расписанием вайпов.

Некоторые настройки читаются только при создании мира. Если изменение, кажется, ничего не делает, проверьте, применяется ли оно к существующим мирам, прежде чем решить, что ключ неверный, - надёжная проверка - одноразовый мир с другим -ConfigServerName.

Админы#

Админы - это SteamID64 в -ServerAdminAccounts через точку с запятой. Добавьте себя до первого запуска и перезапускайте сервер после любого изменения - список читается при старте.

code
-ServerAdminAccounts=76561198012345678;76561198087654321-IsShowGmTitle=0

Админы получают доступ к GM-инструментам игры прямо в игре - для модерации и исправления проблем вроде застрявших игроков или потерянных предметов. IsShowGmTitle определяет, видят ли другие игроки титул админа; большинство серверов сообществ выключают его, чтобы персонал мог играть как обычно. Точный набор GM-функций менялся с обновлениями игры, поэтому изучайте их на тестовом мире, а не во время инцидента.

Два правила для списков админов, которые действуют в любой игре:

  • Держите его коротким. Админские инструменты на сервере выживания могут создавать предметы и менять базы, и каждый лишний админ - это человек, который может разрушить экономику случайно или нарочно.
  • Используйте 17-значный SteamID64. Не URL профиля и не отображаемое имя. Неверный ID не вызывает ошибки.

Субпользователи и минимальные привилегии - тот же принцип применительно к панели: тому, кому нужно только перезапускать сервер, не нужен доступ к параметрам запуска, где лежит список админов.

Сохранения, бэкапы и вайпы#

Мир держится в памяти и записывается на диск каждые SaveWorldInterval секунд - по умолчанию 300 (пять минут). Всё, что завершает процесс без сохранения, теряет до одного интервала:

  • Корректная остановка сохраняет мир. Остановка через панель или службу выключения даёт серверу сначала записать мир. Дождитесь, пока он завершится сам.
  • Принудительное завершение - нет. Убийство процесса, падение хоста или остановка из-за нехватки памяти теряют всё с момента последнего сохранения.
  • Короткие интервалы стоят подвисаний. Большой мир сохраняется не мгновенно. Пять минут - разумный баланс; меньше двух минут на большом мире делают подвисание заметным.

В RE:NODE сервер, который упирается в лимит памяти, останавливается и чисто перезапускается, а не уходит в swap, - это ровно тот случай остановки без сохранения, о котором сказано выше, и ещё одна причина держать интервал сохранения коротким на большом мире и следить за графиком памяти по мере его роста.

Делать backup нужно той папки, на которую указывает -UserDir, плюс записи полного набора параметров запуска. Данные мира бесполезны без соответствующего -ConfigServerName, а ваши тщательно подобранные рейты существуют только в настройках запуска. Делайте бэкапы по расписанию, перед каждым обновлением игры и перед изменением любой настройки, которая влияет на существующие миры. А затем время от времени восстанавливайте один, чтобы убедиться, что всё работает, - почему эта половина важнее, объясняет статья бэкапы, которые действительно восстанавливаются.

Вайпы в The Front - решение сообщества, а не обязательный цикл. Обычные варианты:

  • Новый мир, те же настройки. Измените -ConfigServerName (или очистите папку сохранений) и перезапустите. Какое-то время храните старую папку на случай, если пожалеете.
  • Сезоны по расписанию. Публичные PvP-серверы часто вайпаются раз в несколько недель или месяцев с объявлением заранее.
  • Без вайпов. Нормально для небольшой PvE-группы, если следить за памятью и размером сохранения.

ClearSeverTime (в игре написано именно так) - настройка, которая записывает дату вайпа для отображения. Объявляйте вайпы заранее через WelcomeMessage и в своём Discord; общественная сторона разобрана в статье вайпы в Rust без потери игроков, и большая её часть применима к любой игре на выживание.

Публичный сервер и приватный#

Один и тот же бинарник выполняет две очень разные задачи, и важнейшие настройки меняются вместе с задачей.

Для приватного сервера для друзей цели - удобство и сохранение мира между сессиями. Задайте -ServerPassword, поднимите рейты сбора и опыта под то, сколько времени у группы на самом деле есть, подумайте о IsCanFriendDamage=0 и оставьте QueueThreshold на уровне размера группы плюс пара мест. Единственное реальное ограничение - память, и обычно хватает еженедельного перезапуска.

Для публичного сервера цели - честность и стабильность. Не выключайте античит, держите рейты близко к значениям по умолчанию или чётко указывайте их в названии сервера и ставьте QueueThreshold на то, что сервер выдерживает в пике, а не на то, что красиво смотрится в браузере. Сервер, который плавно держит 40 игроков, их сохраняет; сервер, который обещает 60 и подтормаживает на каждом рейде, их теряет. Используйте -MaxQueueSize и -QueueValidTime, чтобы игроки, вылетевшие при падении, могли вернуться, не потеряв место.

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

Решение проблем#

Сервер есть в браузере, но вход обрывается на загрузке. Beacon-порт закрыт или не совпадает. Проверьте, что -BeaconPort совпадает с открытым UDP-портом.

Сервер так и не появляется в браузере. Query-порт или -OutIPAddress, сообщающий неверный адрес.

После перезапуска все оказались на новой карте. Изменился -ConfigServerName или -UserDir. Верните старые значения; исходный мир никуда не делся.

Права админа не работают. Неверный SteamID64, разделители - не точки с запятой или сервер не перезапускался после правки.

После падения потерялся прогресс. Потеря до одного интервала сохранения ожидаема. Сократите SaveWorldInterval и проверьте график памяти на упоры в лимит.

Сервер сломался после обновления игры. Восстановите backup установки и папки сохранений, сделанный до обновления, затем дождитесь исправления или проверьте установку через SteamCMD с validate. Именно поэтому автоматические обновления здесь - плохая идея.

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

FAQ#

Как сделать сервер The Front PvE?

Задайте -ServerFightModeType=1 и перезапустите сервер. Дополните это IsCanFriendDamage=0 и решите через CHFDamagedByNpc, могут ли NPC по-прежнему повреждать базы.

Сколько игроков вмещает сервер The Front?

Лимит задаётся через -QueueThreshold, а лишние игроки ждут в очереди. Сколько сервер реально выдерживает, зависит от памяти и CPU; подбирайте ресурсы по пику зрелого мира, а не пустого.

Где хранятся сохранения сервера The Front?

Внутри папки, заданной через -UserDir, в сохранении с именем из -ConfigServerName. Делайте backup всей этой папки и записывайте оба значения вместе с бэкапом.

Как добавить админа?

Добавьте его SteamID64 в -ServerAdminAccounts, отделив от остальных точкой с запятой, и перезапустите сервер. После этого у админа будет доступ к GM-инструментам игры прямо в игре.

Стоит ли включать автоматические обновления?

Нет. Обновляйтесь осознанно: сделайте backup, обновите через SteamCMD, запустите сервер и убедитесь, что он загружает мир, прежде чем вернутся игроки. Тогда сломанное обновление - это восстановление, а не потерянный мир.

Как вайпнуть мир?

Запустите сервер с новым -ConfigServerName или переместите текущую папку сохранения в сторону и перезапустите. Храните старое сохранение несколько недель на случай, если понадобится вернуться.


Комментарии

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

0/2000