RE:NODE

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

Выделенный сервер V Rising: настройки, сохранения, порты и админы

Как держать выделенный сервер V Rising: ServerHostSettings.json и ServerGameSettings.json с объяснениями, порты 9876-9877, админы, окна PvP, сохранения и копии.

0 прочтений

Выделенный сервер V Rising - это бесплатное приложение под Windows (приложение Steam 1829350), которое настраивается двумя JSON-файлами. В ServerHostSettings.json описано, что представляет собой сервер, - имя, порты, пароль, лимит игроков, имя сохранения, автосохранение, RCON. В ServerGameSettings.json - как играется игра: PvP или PvE, правила рейдов на замки, размер клана, рейты лута и крафта, длина суток. Сервер слушает UDP 9876 для игры и 9877 для Steam query, вмещает по умолчанию до 40 игроков и хранит мир в виде пронумерованных автосохранений в папке, которую вы задаёте через -persistentDataPath. Администраторы - это SteamID в adminlist.txt. Всё, что ниже, - подробности: какую копию файлов сервер на самом деле читает, что делает каждая настройка и как не потерять замок.

Как работают серверы V Rising#

В мир V Rising можно играть одному, хостить его приватно из игры или держать на выделенном сервере. Выделенный сервер держит мир - замки, слуг, территорию, прогресс - запущенным и доступным, даже когда никого нет в сети, и в V Rising это важнее, чем в большинстве игр на выживание, потому что замки разрушаются, когда в их сердцах заканчивается эссенция крови. Выключенный сервер нельзя зарейдить, но замок, хозяин которого не заходил неделю, на работающем сервере всё равно разрушается.

Факты, которые определяют всю остальную настройку:

  • Исполняемый файл сервера есть только под Windows. Stunlock поставляют VRisingServer.exe. На Linux он работает под Wine или Proton. Общий подход описан в статье Wine и Proton для серверов только под Windows.
  • Персонажи живут на сервере. В отличие от Valheim или Enshrouded, персонаж V Rising принадлежит сохранению одного сервера. На каждом новом сервере игрок начинает с нуля.
  • У каждого файла настроек две копии. Значения по умолчанию в установке и активные копии в вашей папке данных. Правка не той копии - самая частая ошибка при настройке, о ней дальше.

Требования#

Сервер V Rising умеренный. Память растёт с числом замков и слуг сильнее, чем с числом игроков.

СерверRAMCPUДиск
1-10 игроков, PvE4-6 GB2 ядра15 GB
10-25 игроков6-8 GB2-3 ядра20 GB
25-40 игроков, много замков8-12 GB3-4 ядра25 GB

При работе под Wine добавьте немного памяти. ServerFps в настройках хоста (по умолчанию 30) задаёт, сколько кадров симуляции в секунду сервер пытается выполнять; оставьте значение по умолчанию. Его повышение стоит CPU прямо пропорционально и редко улучшает что-то заметное игрокам. Почему, объясняется в статье что на самом деле значит tick rate.

Установка и persistent data path#

bash
$ steamcmd +@sSteamCmdForcePlatformType windows \    +force_install_dir /home/vrising/server \    +login anonymous +app_update 1829350 validate +quit

Сервер всегда следует запускать с persistent data path - папкой, в которой он хранит сохранения и активные копии своих настроек:

code
VRisingServer.exe -persistentDataPath .\save-data -serverName "Longship Vampires" -saveName "world1" -logFile ".\logs\VRisingServer.log"

Без -persistentDataPath сервер использует папку глубоко в профиле пользователя Windows, которую трудно найти, трудно копировать и которая теряется, если профиль пользователя меняется. Задайте путь один раз и больше его не меняйте: если поменять его позже, сервер будет смотреть в пустую папку и начнёт новый мир.

Файлы настроек существуют в двух местах:

РасположениеРоль
VRisingServer_Data/StreamingAssets/Settings/Значения по умолчанию, поставляемые с сервером. Перезаписываются при обновлении
<persistentDataPath>/Settings/Ваши копии. Если они есть, сервер отдаёт предпочтение им

Скопируйте ServerHostSettings.json и ServerGameSettings.json из StreamingAssets/Settings/ установки в <persistentDataPath>/Settings/ и правьте только эти копии. Правки файлов в папке установки пропадут при следующем обновлении сервера. Аргументы запуска вроде -serverName и -saveName переопределяют соответствующие настройки хоста - это удобно в панели, где они являются полями на вкладке Startup, и сбивает с толку, если забыть, что они там есть.

ServerHostSettings.json#

save-data/Settings/ServerHostSettings.json
{  "Name": "Longship Vampires",  "Description": "PvE, relaxed rates, EU evenings",  "Port": 9876,  "QueryPort": 9877,  "MaxConnectedUsers": 40,  "MaxConnectedAdmins": 4,  "ServerFps": 30,  "SaveName": "world1",  "Password": "",  "Secure": true,  "ListOnSteam": true,  "ListOnEOS": true,  "AutoSaveCount": 20,  "AutoSaveInterval": 120,  "CompressSaveFiles": true,  "GameSettingsPreset": "",  "AdminOnlyDebugEvents": true,  "DisableDebugEvents": false,  "Rcon": { "Enabled": false, "Port": 25575, "Password": "" }}
КлючЧто делает
Name, DescriptionПоказываются в списке серверов
Port, QueryPortИгровой порт и query-порт, оба UDP
MaxConnectedUsersЛимит игроков
MaxConnectedAdminsДополнительные слоты, которыми администраторы могут пользоваться на заполненном сервере
SaveNameИмя папки мира внутри каталога сохранений
PasswordПароль для входа; пусто - без пароля
SecureВключает VAC
ListOnSteam, ListOnEOSПоказывать сервер в браузере для Steam и для Epic и других платформ
AutoSaveCountСколько автосохранений хранить
AutoSaveIntervalСекунд между автосохранениями
CompressSaveFilesСохранения меньше ценой небольшой нагрузки на CPU
GameSettingsPresetИспользовать именованный пресет вместо ServerGameSettings.json
RconУдалённая консоль; по умолчанию выключена

SaveName - это и есть мир. Поменяйте его, и сервер начнёт новый мир под новым именем; верните обратно, и старый вернётся. Поэтому это самый чистый способ запустить новый сезон, сохранив прошлый на диске.

GameSettingsPreset - вторая ловушка. Если задано имя пресета - например, StandardPvP или StandardPvE, - сервер использует этот пресет и игнорирует ваш ServerGameSettings.json. Оставьте поле пустым, чтобы использовать собственный файл.

ServerGameSettings.json: правила#

ServerGameSettings.json длинный. Настройки, которые меняют в первую очередь:

КлючЗначенияДействие
GameModeTypePvP, PvEОсновной режим
CastleDamageModeNever, Always, TimeRestrictedКогда замкам можно наносить урон
PlayerDamageModeAlways, TimeRestrictedКогда игроки могут наносить урон друг другу
ClanSizeчисло, по умолчанию 4Игроков в клане
CanLootEnemyContainerstrue, falseМожно ли грабить сундуки
BloodBoundEquipmenttrue, falseСохраняется ли снаряжение при смерти
TeleportBoundItemstrue, falseМешают ли ресурсы перемещаться через путевые врата
AllWaypointsUnlockedtrue, falseВсе путевые врата открыты с самого начала
RelicSpawnTypeUnique, PlentifulОдин экземпляр каждого Soul Shard или много

Рейты и стоимости - это множители, где 1.0 соответствует стандартной игре:

  • MaterialYieldModifier_Global - добываемые ресурсы.
  • DropTableModifier_General - лут с врагов и из контейнеров.
  • BloodEssenceYieldModifier - получаемая эссенция крови, которой питаются сердца замков.
  • InventoryStacksModifier - размер стаков.
  • CraftRateModifier - скорость крафта (больше - быстрее).
  • ResearchCostModifier, RefinementCostModifier, BuildCostModifier - стоимости (меньше - дешевле).
  • ServantConvertRateModifier - скорость обращения людей в слуг.
  • CastleDecayRateModifier - как быстро разрушаются замки без подпитки. 0 фактически отключает разрушение.
  • CastleBloodEssenceDrainModifier - как быстро сердца замков сжигают эссенцию крови.

TeleportBoundItems=false - самое востребованное изменение для удобства: оно позволяет игрокам проносить руду через путевые врата и избавляет от множества пеших переходов. TeleportBoundItems и BloodBoundEquipment вместе решают, насколько сурово наказываются смерть и перемещения, так что договоритесь о них всей группой.

Во вложенных объектах лежат более подробные правила. GameTimeModifiers задаёт длину суток (DayDurationInSeconds) и дневные часы; VampireStatModifiers и UnitStatModifiers_Global масштабируют урон и здоровье; UnitStatModifiers_VBlood масштабирует боссов V Blood; а в CastleStatModifiers_Global лежат лимиты замков, включая HeartLimits для каждого уровня сердца (плитки пола и число слуг) и число замков, которыми может владеть каждый игрок. Меняйте их маленькими шагами: изменения здоровья и урона боссов расходятся волнами по всей прогрессии.

Полный набор ключей меняется с версиями игры. Эталон для вашей версии - файл в StreamingAssets/Settings/ установки, а каждый ключ описан в собственной серверной документации Stunlock.

Окна PvP и рейды на замки#

На PvP-сервере режимы TimeRestricted ограничивают бои и рейды заданными часами, которые определяются в PlayerInteractionSettings:

ServerGameSettings.json (excerpt)
"CastleDamageMode": "TimeRestricted","PlayerDamageMode": "Always","PlayerInteractionSettings": {  "TimeZone": "Local",  "VSPlayerWeekdayTime": { "StartHour": 18, "StartMinute": 0, "EndHour": 23, "EndMinute": 0 },  "VSPlayerWeekendTime": { "StartHour": 16, "StartMinute": 0, "EndHour": 23, "EndMinute": 0 },  "VSCastleWeekdayTime": { "StartHour": 19, "StartMinute": 0, "EndHour": 22, "EndMinute": 0 },  "VSCastleWeekendTime": { "StartHour": 18, "StartMinute": 0, "EndHour": 23, "EndMinute": 0 }}

TimeZone может быть Local (часы машины сервера) или именованным часовым поясом; допустимые имена смотрите в документации своей версии. Окна рейдов - главный инструмент, который делает PvP честным для тех, кто не может сидеть в сети весь вечер: в замок нельзя вломиться, пока его хозяева спят. Выбирайте часы под то, где живут ваши игроки. Серверу в Германии с европейским сообществом нужны вечера по центральноевропейскому времени; серверу, чьи игроки разбросаны по континентам, нужен компромисс, который кому-нибудь не понравится.

TimeZone: Local следует часам сервера, а на многих хостинговых серверах это UTC. Если окна рейдов открываются со сдвигом на час-два, причина в этом. Задайте пояс явно или поправьте часы.

Пример: спокойный PvE для шести друзей#

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

ServerGameSettings.json (excerpt)
"GameModeType": "PvE","CastleDamageMode": "Never","ClanSize": 6,"TeleportBoundItems": false,"BloodBoundEquipment": true,"MaterialYieldModifier_Global": 2.0,"InventoryStacksModifier": 2.0,"CraftRateModifier": 2.0,"ServantConvertRateModifier": 2.0,"CastleDecayRateModifier": 0.0

Логика, строка за строкой. PvE без урона по замкам, потому что никто в компании друзей не хочет вернуться к разграбленной базе. Размер клана на всю группу, чтобы при желании все делили один замок. Путевые врата, через которые можно носить ресурсы, потому что таскать руду через всю карту - самая неинтересная часть игры для людей с ограниченным числом вечеров. Снаряжение сохраняется при смерти, так что неудачный бой стоит времени, но не часов крафта. Двойные добыча, стаки, крафт и обращение слуг, чтобы игра уместилась в несколько вечеров в неделю, не пропуская её целиком. И без разрушения замков, потому что тот, кто уехал в отпуск на две недели, не должен терять свою часть замка.

То, что конфигурация оставляет нетронутым, так же осознанно: здоровье и урон боссов остаются стандартными, чтобы бои с V Blood - то, ради чего большинство и играет, - сохранили свою сложность. Если группа, догнав снаряжение, сочтёт боссов слишком сложными, настраивать нужно UnitStatModifiers_VBlood, маленькими шагами.

Производительность и перезапуски#

Сервер V Rising долго работает стабильно для небольшой группы и начинает обходиться дороже по мере того, как множатся замки и слуги. Слуги симулируются независимо от того, в сети ли их хозяин, а большие замки - это много объектов для сохранения. Если на зрелом мире автосохранения вызывают заметный подвис, CompressSaveFiles обменивает немного CPU на меньший объём записи, а чуть больший AutoSaveInterval делает подвис реже ценой больших потерь в худшем случае.

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

Порты и подключение#

ПортПротоколНазначение
9876UDPИгровой трафик
9877UDPSteam query, его использует браузер серверов
25575TCPRCON, только если включён

Оба игровых порта - UDP. Если сервер работает, но его никто не видит, первый подозреваемый - query-порт; логика разобрана в статье порты игровых серверов. Игроки могут искать сервер по имени во внутриигровом браузере или использовать Direct Connect с адресом и игровым портом. Новый сервер появляется в списке через несколько минут.

Администраторы, консоль и RCON#

Права администратора берутся из adminlist.txt в <persistentDataPath>/Settings/ (если его нет, скопируйте из значений по умолчанию установки), по одному SteamID64 на строку. Бан-лист - banlist.txt рядом с ним. Оба файла читаются во время работы сервера.

Администратор включает внутриигровую консоль (в настройках игры, в разделе общих настроек), открывает её клавишей backtick или тильды и авторизуется:

КомандаДействие
adminauthДаёт права администратора, если ваш SteamID есть в списке
admindeauthСнимает их
kick <name>Отключает игрока
banuser <name or SteamID>Банит и добавляет в banlist.txt
unban <SteamID>Снимает бан
bannedВыводит список банов

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

RCON ограничен. Когда он включён, он поддерживает небольшой набор команд, по сути объявления на сервере и объявление о перезапуске с таймером (announce и announcerestart). Он полезен для предупреждений по расписанию, а не для администрирования. Защищайте его так же, как любую удалённую консоль, - как именно, разобрано в статье безопасный RCON.

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

Сохранения лежат в <persistentDataPath>/Saves/, в папке версии (например, v3 или v4, в зависимости от формата сохранения вашей сборки), затем в папке, названной по SaveName, где находятся пронумерованные автосохранения. Сервер записывает одно каждые AutoSaveInterval секунд и хранит AutoSaveCount штук, удаляя самые старые.

  • Делайте копии всей папки `Saves` и своей папки `Settings` - ежедневно и перед каждым обновлением. Автосохранения лежат на том же диске, что и мир, который они защищают.
  • Останавливайте штатно. Штатная остановка записывает мир. Убитый процесс или остановка из-за нехватки памяти теряет всё, что произошло с последнего автосохранения.
  • Восстанавливайте так: остановите сервер, верните скопированную папку сохранения под тем же SaveName и запустите его. Чтобы откатиться в пределах собственных автосохранений сервера, уберите более новые папки автосохранений, чтобы нужное стало последним. Храните копии того, что убираете.
  • Вайпайте, меняя SaveName. Новый мир начинается пустым; старый остаётся на диске.

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

В RE:NODE папка persistent data и оба JSON-файла доступны в файловом менеджере и по SFTP, слоты резервных копий есть в каждом игровом тарифе, а вкладка Schedules может запускать ночной backup и перезапуск. Отдельной строки в каталоге у V Rising нет; что предлагается, смотрите в списке игровых серверов.

Моды#

Моды V Rising работают на BepInEx и распространяются в основном через Thunderstore. Серверные моды добавляют команды администратора, правила для удобства и события, ничего не требуя от клиента; некоторым модам нужны обе стороны. Крупные обновления игры ломают моды BepInEx, пока их не пересоберут, поэтому сервер с модами не должен обновляться в день патча. Об этом дне - статья что делать, когда обновление мода всё сломало. Многие серверы работают на ванильной игре, потому что ServerGameSettings.json и так покрывает большую часть того, что игроки хотят изменить.

Если что-то не работает#

Изменения настроек ничего не дают. Вы правили копию в StreamingAssets, задан GameSettingsPreset или значение переопределяет аргумент запуска.

Сервер начал новый мир. Изменился SaveName или -persistentDataPath. Верните их и перезапустите.

Сервера нет в браузере серверов. Query-порт закрыт или не UDP, ListOnSteam равен false, или список медленный. Проверьте через Direct Connect.

Окна рейдов не в то время. Часы сервера в UTC, а TimeZone равен Local.

Команды администратора отклоняются. SteamID нет в adminlist.txt в активной папке Settings, или не выполнена команда adminauth.

FAQ#

Сколько игроков может быть на сервере V Rising?

MaxConnectedUsers по умолчанию равен 40. Можно и больше, но замки и слуги растут вместе с игроками, и серверу нужны соответствующие память и CPU.

Переносятся ли персонажи V Rising между серверами?

Нет. Персонажи принадлежат сохранению сервера. Зайти на новый сервер - значит начать нового персонажа.

Как отключить разрушение замков?

Поставьте CastleDecayRateModifier в 0 в ServerGameSettings.json. На частном сервере это избавляет людей от потери замка, пока их нет.

Можно ли запустить V Rising на Linux?

Только через Wine или Proton; сервер - сборка под Windows.

Как начать новый сезон?

Поменяйте SaveName и перезапустите сервер. Сервер создаст новый мир, а старое сохранение останется в своей папке.


Комментарии

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

0/2000