HTTP API сервера
У сервера есть встроенный HTTP API для получения статуса и отправки команд удалённо. Здесь описывается этот API.
По умолчанию этот HTTP API слушает на том же номере порта, что и игровой UDP-порт, но это можно изменить с помощью соответствующих status.* CVar.
В этой статье используются комментарии в JSON, чтобы упростить описание вещей. Это не стандартный JSON, и они приведены здесь лишь для примера. Не помещайте комментарии в JSON для реальных данных.
Контент может добавить сюда больше API.
Публичный API (авторизация не требуется)
GET /status
Получает базовую информацию о статусе сервера в формате JSON, используется для отображения статуса в лаунчере SS14. Движок автоматически предоставляет следующую информацию:
// Примечание: комментарии обычно недопустимы в JSON, но так удобно аннотировать вещи здесь.
{
"name": "MyServer", // Имя сервера
"players": 5, // Количество игроков на сервере
"soft_max_players": 10, // Необязательно, максимальное количество игроков на сервере.
"tags": ["rp:low"], // Необязательно, массив тегов (стандартные значения см. ниже)
}
Контент может редактировать эту информацию по своему желанию.
GET /info
Более подробная информация о сервере в формате JSON, которая в основном необходима при подключении к серверу (для загрузки ресурсов и некоторых других вещей).
{
"connect_addrees": "", // udp:// URI, задающий адрес UDP-подключения. Если не указан, автоматически предполагается тот же порт, что и у status API.
"auth": {
"mode": "Required", // Режим аутентификации. Может быть одним из "Optional", "Required", "Disabled"
"public_key": "", // Публичный ключ шифрования сервера, используемый при аутентификации. Использует API "sealed box" из libsodium.
},
"build": { // Информация о сборке для загрузки. См. ниже.
},
"desc": "My amazing server", // Необязательно, общее описание сервера, отображаемое в карточке в лаунчере.
"links": [ // Набор ссылок для показа в лаунчере для этого сервера.
{
"name": "Discord", // Имя кнопки, отображаемой в лаунчере.
"icon": "discord", // Иконка для использования для этой кнопки, можно опустить. Допустимые имена иконок см. ниже.
"url": "https://discord.gg/abcdef" // Ссылка, которую открывает эта кнопка при нажатии. Должна быть http:// или https://
}
],
// Необязательно, задаёт информацию о политике конфиденциальности, с которой должны согласиться игроки.
"privacy_policy": {
// Ссылка, содержащая политику конфиденциальности, доступная через веб-браузер.
"link": "https://example.com/privacy",
// Идентификатор, который будет сохранён лаунчером при принятии.
// ЭТО ДОЛЖНО БЫТЬ УНИКАЛЬНЫМ ДЛЯ КАЖДОГО СООБЩЕСТВА СЕРВЕРА. НЕ ПРОСТО КОПИРУЙТЕ ЭТО У КОГО-ТО ДРУГОГО.
"identifier": "example",
// "Версия" политики конфиденциальности. Это следует менять, если политика конфиденциальности сервера была обновлена.
"version": "example"
}
}
Подробности о информации о сборке см. в Расширенной конфигурации сборки сервера.
Контент также может редактировать это по своему желанию.
Watchdog API
Требует авторизации путём указания HTTP-заголовка WatchdogToken, совпадающего с CVar watchdog.token (автоматически задаётся при использовании watchdog).
POST /shutdown
Даёт серверу команду немедленно корректно завершить работу.
POST /update
Сообщает серверу, что доступно обновление и что ему следует автоматически завершить работу как можно скорее, чтобы можно было применить обновление. Для SS14 это означает, что сервер перезапустится, когда завершится текущий раунд.
Иконки ссылок в info
Это допустимые иконки для links в API info:
discordforumgithubweb: Общая иконка веб-сайтаwiki
Стандартные теги
Это стандартные понимаемые теги для поля tags в данных статуса. Лаунчер поддерживает фильтрацию и другое поведение на основе этих тегов.
18+
Ваш сервер содержит контент 18+.
lang:
Описывает язык, используемый на вашем сервере, с помощью языкового тега IETF. Примеры: lang:en для английского, lang:ru для русского и т. д.
Вы можете иметь несколько таких тегов, чтобы указать несколько языков, если по какой-то причине вам нужен многоязычный сервер?
Вы можете указать более детальный языковой тег IETF, например en-US, но лаунчер сейчас будет смотреть только на основной тег (например, en).
rp:none, rp:low, rp:med, rp:high
Указывает уровень RP (ролевой игры), ожидаемый на вашем сервере. Это очень субъективно.
region:
Указывает примерный код региона, помогающий игрокам выбирать серверы поблизости. Понимаются следующие коды:
| Код | Регион |
|---|---|
region:eu_w | Западная Европа |
region:eu_e | Восточная Европа |
region:ata | Антарктида (шутливая опция) |
region:grl | Гренландия (шутливая опция) |
region:am_n_w | Северная Америка, Запад |
region:am_n_c | Северная Америка, Центр |
region:am_n_e | Северная Америка, Восток |
region:am_c | Центральная Америка |
region:am_s_s | Южная Америка, Юг |
region:am_s_e | Южная Америка, Восток |
region:am_s_w | Южная Америка, Запад |
region:af_n | Северная Африка |
region:af_c | Центральная Африка |
region:af_s | Южная Африка |
region:me | Ближний Восток |
region:as_n | Северная Азия |
region:as_se | Юго-Восточная Азия |
region:as_e | Восточная Азия |
region:ind | Индия |
region:oce | Океания |
region:luna | Луна (шутливая опция) |
См. эту карту для примерного ориентира, что где находится:

Если для вашего региона нет хорошего подходящего варианта, дайте нам знать!
no_tag_infer
Останавливает автоматический вывод тегов, см. ниже.
Вывод тегов
Некоторые теги хаба автоматически выводятся лаунчером на основе имени сервера. В основном это предназначено для предоставления некоторых фильтров, пока все серверы не заполнят их вручную, поэтому если вы читаете это как хост сервера, просто заполните свои теги вручную, и вы можете это игнорировать. Правила следующие:
- Если вы укажете
no_tag_infer, вывод тегов вообще не выполняется. [18+]или[+18]автоматически добавляет тег 18+.[NRP/LRP/MRP/HRP]автоматически добавляет соответствующий уровень ролевой игры в качестве тега, если у вас вообще нет явного тега ролевой игры.[EN]и[RU]добавляют английский и русский как тег соответственно, если у вас вообще нет явного языкового тега.
Мы не будем добавлять дополнительные правила (например, определение других языков) в это. Помечайте свой сервер вручную.