Настройка сервера
Это руководство описывает настройку выделенного сервера Natural Selection 2: первый запуск, переменные запуска, конфигурационные файлы, ротацию карт, администраторов, моды, подключение игроков и базовую диагностику.
Первый запуск
После выдачи сервера откройте панель управления и перейдите во вкладку Startup.
Перед первым запуском проверьте основные переменные:
SERVER_NAME
SERVER_PASSWORD
MAX_PLAYERS
SPECTATOR_SLOTS
SERVER_MAP
ADDITIONAL_ARGS
После этого запустите сервер во вкладке Console.
При установке сервер создаёт основные каталоги и конфигурационные файлы:
config/
logs/
workshop/
Готовность сервера определяется строкой:
Finished loading
Стартовая команда сервера
Сервер запускается через Linux-бинарник:
./x64/server_linux
Используемая команда запуска:
./x64/server_linux -ip "0.0.0.0" -name "{{SERVER_NAME}}" -port {{SERVER_PORT}} -limit {{MAX_PLAYERS}} -speclimit {{SPECTATOR_SLOTS}} -map "{{SERVER_MAP}}" -config_path "/home/container/config" -logdir "/home/container/logs" -modstorage "/home/container/workshop" -password "{{SERVER_PASSWORD}}" {{ADDITIONAL_ARGS}}
Основные пути уже заданы в запуске:
| Путь | Назначение |
|---|---|
/home/container/config |
Конфигурационные файлы сервера |
/home/container/logs |
Логи сервера |
/home/container/workshop |
Хранилище Workshop-модов |
/home/container/x64/server_linux |
Исполняемый файл сервера |
Переменные запуска
Основные настройки сервера задаются во вкладке Startup.
| Переменная | Описание |
|---|---|
SERVER_NAME |
Название сервера в списке серверов |
SERVER_PASSWORD |
Пароль для входа игроков |
MAX_PLAYERS |
Максимальное количество игроков |
SPECTATOR_SLOTS |
Количество слотов зрителей |
SERVER_MAP |
Начальная карта при запуске |
ADDITIONAL_ARGS |
Дополнительные аргументы запуска NS2 |
После изменения переменных запуска перезапустите сервер.
Название сервера
Название сервера задаётся переменной:
SERVER_NAME
В запуске она передаётся через параметр:
-name
Пример:
Natural Selection 2 Server
Название отображается в браузере серверов Natural Selection 2.
Пароль сервера
Пароль задаётся переменной:
SERVER_PASSWORD
В запуске она передаётся через параметр:
-password
Если пароль не нужен, оставьте значение пустым.
После изменения пароля перезапустите сервер.
Лимит игроков
Максимальное количество игроков задаётся переменной:
MAX_PLAYERS
В запуске она передаётся через параметр:
-limit
В текущем Egg допустимый диапазон:
1-24
Пример:
MAX_PLAYERS=20
Слоты зрителей
Количество зрительских слотов задаётся переменной:
SPECTATOR_SLOTS
В запуске она передаётся через параметр:
-speclimit
В текущем Egg допустимый диапазон:
0-16
Пример:
SPECTATOR_SLOTS=2
Слоты зрителей не являются обычными игровыми слотами.
Начальная карта
Начальная карта задаётся переменной:
SERVER_MAP
В запуске она передаётся через параметр:
-map
Пример:
ns2_summit
Значение должно совпадать с внутренним названием карты.
Дополнительные аргументы запуска
Для расширенной настройки используется переменная:
ADDITIONAL_ARGS
Она добавляется в конец команды запуска.
Примеры использования:
-webadmin -webport 8080 -webuser admin -webpassword strong_password
или:
-file server.txt
Не добавляйте в ADDITIONAL_ARGS параметры, которые уже задаются отдельными переменными запуска, если не хотите получить конфликт значений.
Не дублируйте:
-name
-port
-limit
-speclimit
-map
-config_path
-logdir
-modstorage
-password
Основные конфигурационные файлы
Конфигурация сервера находится в каталоге:
config/
При установке создаются файлы:
| Файл | Назначение |
|---|---|
MapCycle.json |
Ротация карт и список модов |
ServerConfig.json |
Основные серверные настройки |
ServerAdmin.json |
Администраторы и группы прав |
BannedPlayers.json |
Список заблокированных игроков |
ConsistencyConfig.json |
Настройки проверки файлов |
Перед редактированием JSON-файлов остановите сервер. После изменения конфигурации запустите сервер заново.
MapCycle.json
Файл:
config/MapCycle.json
управляет ротацией карт.
Пример стандартной конфигурации:
{
"time": 30,
"mode": "order",
"maps": [
"ns2_summit",
"ns2_mineshaft",
"ns2_tram",
"ns2_veil",
"ns2_docking"
],
"mods": []
}
Параметры MapCycle.json
| Параметр | Описание |
|---|---|
time |
Время карты в минутах |
mode |
Режим ротации |
maps |
Список карт |
mods |
Список Workshop-модов |
При режиме:
"mode": "order"
карты идут по порядку.
Стандартные карты
Примеры стандартных карт:
ns2_summit
ns2_mineshaft
ns2_tram
ns2_veil
ns2_docking
ns2_descent
ns2_refinery
ns2_biodome
ns2_eclipse
ns2_derelict
Карта из переменной SERVER_MAP должна существовать и быть доступна серверу.
Workshop-моды
Папка хранения модов указана в запуске:
-modstorage "/home/container/workshop"
Соответствующий каталог:
workshop/
Моды подключаются через файл:
config/MapCycle.json
Пример:
{
"time": 30,
"mode": "order",
"maps": [
"ns2_summit",
"ns2_tram"
],
"mods": [
123456789
]
}
После изменения списка модов перезапустите сервер.
Пользовательские карты
Если карта загружается из Workshop, добавьте ID мода в mods, а затем укажите внутреннее имя карты в списке maps.
Пример:
{
"time": 30,
"mode": "order",
"maps": [
"ns2_summit",
"ns2_custom_map"
],
"mods": [
123456789
]
}
Если мод нужен только для одной карты, используйте отдельную запись карты с модами, если такая структура поддерживается используемой сборкой сервера.
ServerConfig.json
Файл:
config/ServerConfig.json
содержит основные настройки сервера.
Стандартный файл создаётся в таком виде:
{
"settings": {
"rookie_friendly": false,
"end_round_on_team_unbalance": 0.4,
"auto_team_balance": {
"enabled_after_seconds": 10,
"enabled_on_unbalance_amount": 2
}
},
"tags": []
}
Основные параметры
| Параметр | Описание |
|---|---|
rookie_friendly |
Пометка сервера как подходящего для новичков |
end_round_on_team_unbalance |
Завершение раунда при сильном дисбалансе |
auto_team_balance.enabled_after_seconds |
Задержка перед авто-балансом |
auto_team_balance.enabled_on_unbalance_amount |
Разница игроков для включения авто-баланса |
tags |
Теги сервера |
ServerAdmin.json
Файл:
config/ServerAdmin.json
используется для выдачи прав администратора.
Стандартная конфигурация:
{
"groups": {
"admin_group": {
"type": "disallowed",
"commands": []
}
},
"users": {}
}
Добавление администратора
Для добавления администратора укажите его Steam Account ID в секции users.
Пример:
{
"groups": {
"admin_group": {
"type": "disallowed",
"commands": []
}
},
"users": {
"Admin": {
"id": 123456789,
"groups": [
"admin_group"
]
}
}
}
Группа:
"type": "disallowed",
"commands": []
означает полный доступ ко всем командам, кроме явно запрещённых. При пустом списке запретов администратор получает полный набор доступных команд.
После изменения ServerAdmin.json перезапустите сервер.
BannedPlayers.json
Файл:
config/BannedPlayers.json
хранит список заблокированных игроков.
Стандартная структура:
{
"bans": []
}
Обычное управление банами выполняется через серверные команды администратора. Ручное редактирование файла используйте только при необходимости и после остановки сервера.
ConsistencyConfig.json
Файл:
config/ConsistencyConfig.json
используется для настройки проверки файлов.
Стандартная структура:
{
"check": []
}
Изменяйте этот файл только если понимаете, какие файлы должны проверяться на соответствие у клиентов.
Порты сервера
Основной порт сервера задаётся переменной панели:
SERVER_PORT
В запуске он передаётся через параметр:
-port
Используйте порт, назначенный серверу во вкладке Network.
Если вы добавляете через ADDITIONAL_ARGS параметры, которым нужны дополнительные порты, эти порты также должны быть назначены серверу.
Пример:
-webadmin -webport 8080
В этом случае порт 8080 должен быть выдан серверу отдельно.
Web-администрирование
В текущем Egg web-администрирование не включено по умолчанию.
Для включения используйте ADDITIONAL_ARGS.
Пример:
-webadmin -webdomain "0.0.0.0" -webport 8080 -webuser admin -webpassword strong_password
Для web-админки нужен отдельный порт.
Не включайте web-администрирование без сложного пароля.
Логи сервера
Логи записываются в каталог:
logs/
Он указан в запуске через параметр:
-logdir "/home/container/logs"
Проверяйте логи при ошибках запуска, проблемах с картами, модами и подключением игроков.
Подключение к серверу
IP-адрес и порт сервера отображаются во вкладке Network панели управления.
Подключение через список серверов
Запустите Natural Selection 2.
Откройте список серверов сообщества.
Найдите сервер по названию:
SERVER_NAME
Выберите сервер и подключитесь.
Если установлен пароль, введите значение:
SERVER_PASSWORD
Прямое подключение через консоль
Откройте консоль в игре и выполните:
connect IP:PORT
Пример:
connect 123.123.123.123:27015
Используйте основной порт сервера из вкладки Network.
Остановка сервера
Команда остановки сервера:
exit
В панели управления используйте обычную кнопку Stop.
Не используйте принудительное завершение процесса, если сервер отвечает на штатную остановку.
Сервер не запускается
Проверьте:
наличие x64/server_linux
права на запуск x64/server_linux
корректность JSON-файлов в config/
значение SERVER_MAP
значение SERVER_PORT
ошибки в logs/
ошибки в Console
Если проблема появилась после изменения конфигурации, временно верните последнюю рабочую копию файлов из config/.
Сервер не отображается в списке
Проверьте:
сервер полностью загрузился
в Console появилась строка Finished loading
SERVER_NAME задан корректно
SERVER_PORT назначен серверу
сервер принимает прямое подключение
Для проверки используйте прямое подключение:
connect IP:PORT
Игроки не могут подключиться
Проверьте:
сервер запущен
игрок использует правильный IP и порт
SERVER_PASSWORD введён правильно
SERVER_MAP существует
сервер не завершился с ошибкой
Если используется пароль, временно очистите SERVER_PASSWORD, перезапустите сервер и проверьте подключение без пароля.
Ошибка карты
Если сервер не запускает карту, проверьте:
SERVER_MAP
MapCycle.json
наличие карты
Workshop-мод пользовательской карты
ошибки в logs/
Стартовая карта должна совпадать с доступной картой.
Пример корректного значения:
ns2_summit
Ошибка модов
Если сервер не загружает Workshop-моды, проверьте:
MapCycle.json
mods
workshop/
ADDITIONAL_ARGS
логи сервера
После изменения модов перезапустите сервер.
Ошибка прав администратора
Если администраторские команды недоступны, проверьте:
config/ServerAdmin.json
Steam Account ID администратора
группу пользователя
тип группы
перезапуск сервера после изменения файла
Администратор должен быть указан в секции users и привязан к группе с нужными правами.
Резервное копирование конфигурации
Перед изменением настроек создайте резервную копию каталога:
config/
Минимум сохраните:
MapCycle.json
ServerConfig.json
ServerAdmin.json
BannedPlayers.json
ConsistencyConfig.json
Также можно сохранить:
logs/
workshop/
Рекомендации
Останавливайте сервер перед изменением JSON-файлов.
Проверяйте JSON-синтаксис после редактирования.
Не дублируйте основные параметры запуска в ADDITIONAL_ARGS.
Используйте MapCycle.json для карт и модов.
Используйте ServerAdmin.json для администраторов.
Храните Workshop-моды в каталоге workshop/.
Проверяйте каталог logs/ при ошибках.
Создавайте резервные копии каталога config/ перед крупными изменениями.
После изменения SERVER_NAME, SERVER_PASSWORD, MAX_PLAYERS, SPECTATOR_SLOTS, SERVER_MAP или файлов config/ перезапускайте сервер.