Аддон подключает ваш GMod-сервер к ETR (Eblan Trouble Register) — общему реестру блокировок: https://sellingvika.party/etr.
- При заходе игрока сервер запрашивает у ETR статус по Steam ID. Если игрок в реестре ETR — подключение отклоняется, игрок видит сообщение о блокировке. Результат проверки кэшируется (по умолчанию на 1 час): при повторном заходе того же игрока API не вызывается, берётся сохранённый результат. Раз в час кэш по игроку сбрасывается.
- Сервер регистрируется в ETR по API-ключу (имя и IP). Так ключ привязывается к серверу.
- Баны с вашего сервера можно отправлять в ETR: при бане через FAdmin/ULX/движок аддон отправляет голос «за» по этому Steam ID. Командой
etr_pushbansможно разом отправить весь бан-лист (feed).
Специальные права на ключе (например list) не нужны — используются только проверка статуса, регистрация сервера, голос и feed.
Скопируйте папку аддона в каталог аддонов GMod, например:
garrysmod/addons/etr_addon/
Структура внутри: lua/autorun/server/sv_etr.lua и остальные файлы.
- Зайдите на https://sellingvika.party/etr.
- Войдите или зарегистрируйтесь.
- Создайте API-ключ в личном кабинете (раздел для ключей/настроек).
В server.cfg (или в конфиге, который выполняется при старте сервера) добавьте:
etr_apikey "ваш_ключ_из_сайта"
После перезапуска карты или сервера аддон подхватит ключ, зарегистрирует сервер в ETR и начнёт проверять подключающихся игроков.
В консоли сервера (или по RCON), с правами супер-админа:
etr_pushbans
Будут собраны баны из FAdmin или ULib (если стоят) и отправлены в ETR пачкой (feed). Один Steam ID можно отправить так:
etr_pushbans STEAM_0:0:12345678
Дальше при новых банах через поддерживаемые админки аддон сам будет отправлять голос «за» в ETR (если ключ указан).
| Переменная | По умолчанию | Описание |
|---|---|---|
etr_apikey |
"" |
API-ключ ETR. Обязательно для работы. |
etr_enabled |
1 |
Включить проверку при подключении: 1 — да, 0 — выключено. |
etr_api_base |
https://sellingvika.party/etr/v3 |
Базовый URL ETR API v3. Менять только если у вас свой бэкенд. |
etr_debug |
0 |
1 — писать отладочные сообщения в консоль сервера. |
etr_cache_ttl |
3600 |
Сколько секунд хранить результат проверки по игроку (60–86400). По умолчанию 1 час — одного захода хватает, повторно не дергаем API. |
etr_fail_open |
1 |
Если API недоступен: 1 — впускать игроков, 0 — нет. |
etr_periodic_interval |
600 |
Раз в сколько секунд перепроверять уже зашедших игроков. 0 — не перепроверять. |
etr_strict_first |
0 |
При первом заходе, пока нет кэша: 1 — не пускать с сообщением «подключитесь через 15 сек», 0 — пускать и проверять в фоне. |
Пример блока в конфиге:
etr_apikey "ваш_ключ"
etr_enabled 1
etr_fail_open 1
etr_periodic_interval 600
etr_pushbans— отправить в ETR все баны из FAdmin/ULib или из хукаETR_GetBansToPush(пачкой через feed). Только супер-админ.etr_pushbans <steamid>— отправить один Steam ID голосом «за» (vote). Пример:etr_pushbans STEAM_0:0:12345678.
Поддерживаются:
- FAdmin — при бане через FAdmin аддон сам отправляет голос в ETR.
- ULX/ULib — при бане через ULib/ULX.
- Любая админка через движок — срабатывает общий событие
server_addban, аддон отправляет голос.
Когда вы баните игрока в своей системе, вызовите на сервере:
hook.Run("ETR_ReportBan", steamID64, reason, duration_minutes)или глобальную функцию:
ETR_SubmitBan(steamID64, reason, duration_minutes)Так вы отправите один голос «за» в ETR. reason и duration_minutes опциональны.
Чтобы по команде etr_pushbans подставлялся ваш список банов, добавьте в свой аддон хук и верните таблицу:
hook.Add("ETR_GetBansToPush", "MyAddon", function()
return {
{ steamid64 = "76561198...", reason = "Cheat" },
{ steamid = "STEAM_0:0:123", reason = "Ban from DB" },
}
end)Подойдёт и просто массив Steam ID (строк), и таблицы с полями steamid64 или steamid, reason.
- При подключении проверяет игрока через ETR API (status). В реестре — кик с сообщением о блокировке ETR.
- Регистрирует сервер в ETR (имя, IP, app_id 4020).
- При бане на сервере (FAdmin, ULib, server_addban или ваш вызов) отправляет голос «за» или feed в ETR.
- Команда
etr_pushbans— отправить текущий бан-лист в ETR пачкой (feed).
Документация API: ETR API (Вики).