Настройка сервера
Данная статья описывает базовую настройку выделенного сервера Windrose: основные параметры сервера, файл ServerDescription.json, расширенные настройки мира, сложность, параметры кооператива, переключение миров и проверку конфигурации после изменений.
Перед изменением конфигурации
Перед редактированием любых конфигурационных файлов остановите сервер.
Внимание: если изменить конфигурацию при запущенном сервере, часть параметров может не сохраниться или быть перезаписана сервером.
После изменения файлов сохраните их и перезапустите сервер.
Основные настройки сервера
Основные параметры сервера можно изменить через панель управления.
К базовым параметрам относятся:
- название сервера;
- код приглашения;
- пароль сервера;
- включение или отключение пароля;
- максимальное количество игроков.
После изменения основных параметров перезапустите сервер.
Файл ServerDescription.json
Файл ServerDescription.json отвечает за параметры подключения сервера и активный мир.
На сервере этот файл доступен через страницу «Конфигурации».
Пример ServerDescription.json
{
"Version": 1,
"ServerDescription_Persistent": {
"PersistentServerId": "1B80182E460F727CEA080C8EEBB1EA0A",
"InviteCode": "d6221bb7",
"IsPasswordProtected": false,
"Password": "",
"Note": "",
"WorldIslandId": "DB57768A8A7746899683D0EEE91F97BF",
"MaxPlayerCount": 10,
"P2pProxyAddress": "127.0.0.1"
}
}Параметры ServerDescription.json
| Параметр | Описание | Можно менять |
|---|---|---|
PersistentServerId |
Уникальный ID сервера, создаётся автоматически. | Нет |
InviteCode |
Код приглашения для подключения игроков. | Да |
IsPasswordProtected |
Включает или отключает пароль сервера. | Да |
Password |
Пароль сервера. Используется только при IsPasswordProtected=true. |
Да |
Note |
Дополнительное описание сервера. | Да |
WorldIslandId |
ID активного мира. Должен совпадать с ID мира в WorldDescription.json. |
Да, осторожно |
MaxPlayerCount |
Максимальное количество игроков. | Да |
P2pProxyAddress |
Адрес прокси-подключения сервера. | Обычно нет |
Пароль сервера
Чтобы включить пароль, укажите:
"IsPasswordProtected": true,
"Password": "mypassword"Чтобы сделать сервер публичным, укажите:
"IsPasswordProtected": false,
"Password": ""После изменения пароля перезапустите сервер.
Код приглашения
Код приглашения задаётся параметром:
"InviteCode": "d6221bb7"Игроки используют этот код для подключения к серверу.
Активный мир сервера
Активный мир задаётся параметром:
"WorldIslandId": "DB57768A8A7746899683D0EEE91F97BF"Значение WorldIslandId должно совпадать с ID мира в файле WorldDescription.json и с папкой соответствующего мира.
Внимание: если указать неверный WorldIslandId, сервер может не загрузить нужный мир.
Файл WorldDescription.json
Файл WorldDescription.json отвечает за параметры конкретного мира: название, пресет сложности, настройки врагов, кораблей, кооператива и боевой сложности.
Файлы миров находятся в каталоге сохранений:
R5/Saved/SaveProfiles/Default/RocksDB/<version>/Worlds/<worldId>/Пример пути:
R5/Saved/SaveProfiles/Default/RocksDB/0.10.0/Worlds/724004442DCF4471999BE78388D8FC9F/WorldDescription.jsonГде:
0.10.0— версия игры;724004442DCF4471999BE78388D8FC9F— ID мира.
Внимание: после обновлений игры номер версии в пути может измениться.
Пример WorldDescription.json
{
"Version": 1,
"WorldDescription": {
"islandId": "724004442DCF4471999BE78388D8FC9F",
"WorldName": "",
"CreationTime": 6.3911753853328e+17,
"WorldPresetType": "Medium",
"WorldSettings": {
"BoolParameters": {
"{\"TagName\": \"WDS.Parameter.Coop.SharedQuests\"}": true,
"{\"TagName\": \"WDS.Parameter.EasyExplore\"}": false
},
"FloatParameters": {
"{\"TagName\": \"WDS.Parameter.MobHealthMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.MobDamageMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.ShipsHealthMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.ShipsDamageMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.BoardingDifficultyMultiplier\"}": 1,
"{\"TagName\": \"WDS.Parameter.Coop.StatsCorrectionModifier\"}": 1,
"{\"TagName\": \"WDS.Parameter.Coop.ShipStatsCorrectionModifier\"}": 0
},
"TagParameters": {
"{\"TagName\": \"WDS.Parameter.CombatDifficulty\"}": {
"TagName": "WDS.Parameter.CombatDifficulty.Normal"
}
}
}
}
}Основные параметры WorldDescription.json
| Параметр | Описание |
|---|---|
islandId |
ID мира. Должен совпадать с названием папки мира. |
WorldName |
Название мира. |
CreationTime |
Время создания мира. |
WorldPresetType |
Пресет сложности мира. |
WorldSettings |
Расширенные настройки мира. |
Пресет сложности мира
Пресет сложности задаётся параметром:
"WorldPresetType": "Medium"| Значение | Описание |
|---|---|
Easy |
Упрощённая сложность. |
Medium |
Стандартная сложность. |
Hard |
Повышенная сложность. |
Custom |
Пользовательская сложность с ручными параметрами. |
Если в WorldSettings вручную изменить отдельные параметры, пресет может перейти в режим Custom.
BoolParameters
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
WDS.Parameter.Coop.SharedQuests |
Кооперативные задания засчитываются всем игрокам, если один игрок их завершил. | true |
WDS.Parameter.EasyExplore |
Настройка режима исследования. | false |
FloatParameters
| Параметр | Описание | По умолчанию | Диапазон |
|---|---|---|---|
WDS.Parameter.MobHealthMultiplier |
Множитель здоровья врагов. | 1.0 |
0.2 – 5.0 |
WDS.Parameter.MobDamageMultiplier |
Множитель урона врагов. | 1.0 |
0.2 – 5.0 |
WDS.Parameter.ShipsHealthMultiplier |
Множитель здоровья вражеских кораблей. | 1.0 |
0.4 – 5.0 |
WDS.Parameter.ShipsDamageMultiplier |
Множитель урона вражеских кораблей. | 1.0 |
0.2 – 2.5 |
WDS.Parameter.BoardingDifficultyMultiplier |
Множитель сложности абордажа. | 1.0 |
0.2 – 5.0 |
WDS.Parameter.Coop.StatsCorrectionModifier |
Масштабирование здоровья и стойкости врагов в зависимости от количества игроков. | 1.0 |
0.0 – 2.0 |
WDS.Parameter.Coop.ShipStatsCorrectionModifier |
Масштабирование здоровья вражеских кораблей в зависимости от количества игроков. | 0.0 |
0.0 – 2.0 |
TagParameters
| Параметр | Описание | Значения |
|---|---|---|
WDS.Parameter.CombatDifficulty |
Боевая сложность врагов и боссов. | Easy, Normal, Hard |
Пример пользовательской настройки мира
{
"Version": 1,
"WorldDescription": {
"IslandId": "DB57768A8A7746899683D0EEE91F97BF",
"WorldName": "My Server",
"CreationTime": 6.3905278455349005e+17,
"WorldPresetType": "Custom",
"WorldSettings": {
"BoolParameters": {
"{\"TagName\": \"WDS.Parameter.Coop.SharedQuests\"}": true,
"{\"TagName\": \"WDS.Parameter.EasyExplore\"}": false
},
"FloatParameters": {
"{\"TagName\": \"WDS.Parameter.MobHealthMultiplier\"}": 1.5,
"{\"TagName\": \"WDS.Parameter.MobDamageMultiplier\"}": 1.2,
"{\"TagName\": \"WDS.Parameter.ShipsHealthMultiplier\"}": 1.0,
"{\"TagName\": \"WDS.Parameter.ShipsDamageMultiplier\"}": 1.0,
"{\"TagName\": \"WDS.Parameter.BoardingDifficultyMultiplier\"}": 1.0,
"{\"TagName\": \"WDS.Parameter.Coop.StatsCorrectionModifier\"}": 1.0,
"{\"TagName\": \"WDS.Parameter.Coop.ShipStatsCorrectionModifier\"}": 0.5
},
"TagParameters": {
"{\"TagName\": \"WDS.Parameter.CombatDifficulty\"}": {
"TagName": "WDS.Parameter.CombatDifficulty.Hard"
}
}
}
}
}Несколько миров на одном сервере
На сервере можно хранить несколько миров и переключаться между ними через параметр WorldIslandId.
Общий порядок переключения мира:
- Остановите сервер.
- Откройте каталог миров:
R5/Saved/SaveProfiles/Default/RocksDB/<version>/Worlds/- Создайте или загрузите папку нужного мира.
- Проверьте, что
islandIdвWorldDescription.jsonсовпадает с названием папки мира. - Откройте
ServerDescription.json. - Измените
WorldIslandIdна ID нужного мира. - Сохраните файл.
- Запустите сервер.
Проверка JSON после редактирования
После изменения файлов ServerDescription.json или WorldDescription.json проверьте корректность JSON.
Частые ошибки:
- пропущенная запятая;
- лишняя запятая после последнего параметра;
- непарная кавычка;
- непарная фигурная скобка;
- изменённый служебный ID без необходимости.
Сервер не применяет изменения
Проверьте:
- сервер был остановлен перед редактированием;
- файл был сохранён после изменения;
- JSON-структура не повреждена;
- изменён правильный файл конфигурации;
- после изменения сервер был перезапущен.
Сервер не загружает мир
Проверьте:
WorldIslandIdвServerDescription.jsonсовпадает с ID нужного мира;islandIdвWorldDescription.jsonсовпадает с названием папки мира;- папка мира находится в правильном каталоге версии игры;
- файл
WorldDescription.jsonсохранён в корректном JSON-формате; - сервер был перезапущен после изменения мира.
Рекомендации
- перед редактированием конфигурации останавливайте сервер;
- не изменяйте
PersistentServerIdбез необходимости; - не изменяйте
islandId, если не переключаете мир вручную; - после редактирования проверяйте корректность JSON;
- после любых изменений перезапускайте сервер;
- перед изменением мира создавайте резервную копию сохранений.
Файлы и каталоги, которые рекомендуется сохранить перед изменениями:
ServerDescription.json
R5/Saved/SaveProfiles/Default/RocksDB/<version>/Worlds/