warden_config.json
Полный справочник основного конфигурационного файла
Это руководство для продвинутых пользователей с собственным хостингом. Большинство этих настроек можно конфигурировать через интерфейс панели в Settings. Ручное редактирование требуется только для начальной настройки или когда панель недоступна.
Основной конфигурационный файл расположен по пути:
SCUMSERVER\SCUM\Binaries\Win64\Mods\WardenCore\configs\warden_config.jsonНиже приведён полный справочник по каждому полю, организованный по разделам.
Network
Управление сетевым доступом, CORS и ограничением частоты запросов.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
enableIPWhitelist | boolean | false | При включении только IP-адреса из ipWhitelist могут получить доступ к панели. |
ipWhitelist | string[] | [] | Список разрешённых IP-адресов. Поддерживает шаблоны с *. |
ipBlacklist | string[] | [] | Список заблокированных IP-адресов. Всегда активен независимо от белого списка. |
enableCORS | boolean | true | Включить заголовки Cross-Origin Resource Sharing. |
allowedOrigins | string[] | [] | Разрешённые источники CORS. Пустой массив разрешает все источники при включённом CORS. |
enableRateLimit | boolean | true | Включить ограничение частоты запросов по IP. |
requestsPerMinute | number | 60 | Максимум API-запросов в минуту на клиента (1–10000). |
Пример:
{
"network": {
"enableIPWhitelist": false,
"ipWhitelist": [],
"ipBlacklist": [],
"enableCORS": true,
"allowedOrigins": [],
"enableRateLimit": true,
"requestsPerMinute": 60
}
}Security
Управление сессиями и ограничениями команд.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
sessionTimeoutMinutes | number | 30 | Минуты бездействия до истечения сессии (1–10080). Каждый запрос сбрасывает таймер. |
maxConcurrentSessions | number | 10 | Максимальное количество одновременных активных сессий для всех администраторов (1–1000). |
maxCommandLength | number | 1024 | Максимально допустимая длина одной RCON-команды в символах (64–65536). |
Пример:
{
"security": {
"sessionTimeoutMinutes": 30,
"maxConcurrentSessions": 10,
"maxCommandLength": 1024
}
}Log Parsing
Управление обработкой файлов логов игры.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
backfillExistingLogs | boolean | true | При значении true WardenCore обрабатывает существующие файлы логов при запуске, заполняя базу данных историческими данными. |
Пример:
{
"logParsing": {
"backfillExistingLogs": true
}
}Заполнение исторических данных может занять несколько минут на серверах с большими архивами логов. Во время этого процесса пересылка логов в Discord приостанавливается, чтобы не засорять каналы старыми событиями.
Steam
Настройки интеграции со Steam для получения профилей игроков.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
apiKey | string | "" | Steam Web API key для получения данных профиля игрока (аватар, баны, время в игре). Получите на steamcommunity.com/dev/apikey. |
excludedSteamIds | string[] | [] | Steam ID, действия которых скрыты из логов и пересылки в Discord. Полезно для ботов или тестовых аккаунтов. |
ipWhitelist | string[] | [] | Белый список IP, специфичный для интеграции со Steam. |
Пример:
{
"steam": {
"apiKey": "",
"excludedSteamIds": [],
"ipWhitelist": []
}
}API Keys
Массив объектов API-ключей для аутентификации внешних инструментов. Ключи управляются через интерфейс панели в Settings > API Keys.
| Поле | Тип | Описание |
|---|---|---|
key | string | Строка API-ключа (генерируется автоматически). |
name | string | Описательная метка (например, "Discord Bot"). |
createdAt | string | Временная метка ISO 8601, когда ключ был создан. |
enabled | boolean | Активен ли ключ. |
permissions | string[] | Уровни прав: "read", "write", "admin". |
Рекомендуется генерировать API-ключи через интерфейс панели, а не редактировать этот раздел вручную.
Полный пример
Полный warden_config.json с настройками по умолчанию:
{
"network": {
"enableIPWhitelist": false,
"ipWhitelist": [],
"ipBlacklist": [],
"enableCORS": true,
"allowedOrigins": [],
"enableRateLimit": true,
"requestsPerMinute": 60
},
"security": {
"sessionTimeoutMinutes": 30,
"maxConcurrentSessions": 10,
"maxCommandLength": 1024
},
"logParsing": {
"backfillExistingLogs": true
},
"steam": {
"apiKey": "",
"excludedSteamIds": [],
"ipWhitelist": []
},
"apiKeys": []
}