Конфигурация
ssAntiCheat настраивается через единственный файл config.json в папке
плагина:
Рядом с ним поставляется второй файл, config_commented.json. Это та же
конфигурация с комментариями // — читайте его, но не переименовывайте
поверх config.json (комментарии не являются валидным JSON).
Ключи LicenseKey, Verbose, LogToFile и Database являются общими для
каждого плагина Bytemart и задокументированы на странице
Общая конфигурация. Эта страница
описывает только ключи, уникальные для ssAntiCheat.
💡 Проверяйте перед запуском. Всегда проверяйте ваш JSON после редактирования (например, через JSONLint). Код ошибки загрузки
1114означает синтаксическую ошибку JSON.⚠️ Имена ключей критически важны — копируйте их точно. Несколько ключей содержат пробелы (
"Join Tracker","SaveWorld Cycles","Block Dedi Fill"), а некоторые несут историческую опечатку (Threshole,additionnalData). Они сверяются побайтово. «Исправление» опечатки незаметно отключит функцию.
Самовосстанавливающаяся конфигурация
При каждой загрузке ssAntiCheat сравнивает ваш config.json со схемой, с
которой он был собран:
- Отсутствующие ключи добавляются со значениями по умолчанию, и консоль
выводит, что именно было добавлено. Ваш исходный файл сначала копируется в
config.json.bak. - Несоответствия типов (строка там, где ожидается число, и т. д.) прерывают загрузку с ошибкой, называющей ключ — плагин не будет работать с конфигурацией, которой он не может доверять.
Это значит, что обновление, добавляющее новые ключи, не сломает ваш сервер, и вы всегда можете урезать конфигурацию до только тех ключей, которые вам важны.
Ключи верхнего уровня
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Debug |
boolean | false |
Внутренний флаг отладки. Оставьте false — используйте Verbose для вывода при устранении неполадок. |
Use Discord |
boolean | true |
Главный переключатель оповещений в Discord. Когда false, ни одно сообщение об обнаружении или бане никуда не отправляется. |
UseDiscordURL |
boolean | true |
Включать ли в сообщения Discord значок/миниатюру ssAntiCheat. Чисто косметическая настройка. |
SteamAPIKey |
string | "" |
Ключ Steam Web API. Требуется только для проверки при подключении (время в игре / возраст аккаунта / проверки VAC). Оставьте пустым, если не используете. |
CommandPrefix |
string | "!" |
Префикс для внутриигровых чат-команд администратора. См. Команды. |
Send Alert to Ingame Admins when someone is detected using a cheat |
boolean | true |
Разослать цветное оповещение об обнаружении всем администраторам, находящимся онлайн. |
Вебхуки
Все четыре — это URL вебхуков Discord, и все они изначально пустые. Пустой вебхук означает «ничего не отправлять» — это никогда не ошибка.
| Поле | Описание |
|---|---|
DefaultWebhookUrl |
Куда уходят обнаружения, если у модуля нет собственного вебхука. Это поле нужно заполнить первым. |
BanWebhookUrl |
Куда уходят оповещения о банах. Если пусто, используется DefaultWebhookUrl. |
AssociationBans |
Куда уходят оповещения о банах по IP-ассоциации — то есть о новом аккаунте, пойманном при подключении с IP-адреса забаненного игрока. См. Баны и обнаружения. |
AdminTrollingWebhook |
Журнал аудита внутриигровых чат-команд администратора: кто что выполнил, над кем и где. |
Любой отдельный модуль также может иметь собственный ключ WebhookUrl,
который переопределяет DefaultWebhookUrl только для этого модуля.
🔒 URL вебхука — это учётные данные. Любой, у кого он есть, может писать в ваш канал. Не публикуйте
config.jsonв открытых репозиториях и на скриншотах.
Dashboard
Добровольная телеметрия на дашборд ssAnticheat: живая лента обнаружений и
банов, история банов и базовое состояние сервера. Оба ключа по умолчанию
false — ничего не уходит с вашей машины, пока вы их не включите.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Enabled |
boolean | false |
Главный переключатель телеметрии дашборда. |
LivePositions |
boolean | false |
Дополнительно отправлять позиции игроков, чтобы дашборд мог рисовать живую карту. По сути, это живой обзор местоположения каждого игрока — оставьте выключенным, если вам это не нужно. |
Используйте ssac.status, чтобы проверить,
действительно ли идёт телеметрия, и
ssac.testdetection, чтобы пропустить через
конвейер симулированное обнаружение.
Join Tracker
Публикует сообщение в Discord каждый раз, когда игрок заходит на сервер, с его именем, Steam ID, племенем и местом появления.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Enabled |
boolean | true |
Переключатель логирования входов. |
Include IP |
boolean | true |
Включать в сообщение IP-адрес подключения. |
JoinLogs |
string | "" |
URL вебхука для логов входов. Пусто означает, что логи входов собираются, но не публикуются. |
⚠️ IP-адреса — это персональные данные. Если вы включаете
Include IP, отправляйте логи входов в приватный канал, доступный только администраторам, и уточните, что требуют от вас местные нормы, прежде чем хранить их.
Admin ESP
Настройки внутриигрового ESP-оверлея администратора, переключаемого для
каждого администратора отдельно с помощью
семейства команд !esp.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Enabled |
boolean | true |
Зарезервировано. Доступ к командам ESP определяется статусом администратора ARK, а не этим ключом. |
RefreshTime |
number | 0.1 |
Как долго живёт каждая отрисованная метка/рамка, в секундах. Меньше = более плавно, больше вызовов отрисовки на клиенте. |
Range |
number | 30000 |
Радиус сканирования (в юнитах Unreal) вокруг администратора. |
Structure ESP |
array | ["Box"] |
Подстроки имён чертежей построек, которые нужно подсвечивать, когда ESP построек включён. "Box" соответствует ящикам для хранения; добавьте, например, "Vault" или "Turret". |
ServerCrash
Что делать, когда процесс сервера падает.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
SaveWorld |
boolean | true |
Попытаться сохранить мир изнутри обработчика краша, чтобы краш стоил минуты, а не весь интервал сохранения. |
AutomaticRestart |
boolean | true |
Автоматически перезапускать сервер через небольшую задержку после краша. Отключите это, если ваш менеджер сервера (ASM, ArkServerManager, обёртка-служба и т. д.) уже перезапускает сервер при выходе — иначе два перезапуска будут конкурировать друг с другом. |
Fixes
Исправления для известных глитчей сервера и путей эксплойтов. Это не детекторы — никто не помечается и не банится с их помощью; проблемное поведение просто предотвращается.
| Исправление | По умолчанию | Что оно делает |
|---|---|---|
Scout Glitch Fix |
true |
Исправляет поведение переноски у Scout, закрывая известный глитч Scout. |
Handcuff Glitch Fix |
false |
Повторно надевает наручники на игрока, который заходит обратно после выхода из игры в наручниках — закрывая трюк «выйти из игры, чтобы избавиться от наручников». По умолчанию отключено; включите, если наручники являются частью того, как работают ваши администраторы или игроки. |
Player Already Connected |
true |
Очищает зависшую сессию, вызывающую ошибку «player already connected», чтобы игрокам не приходилось её пережидать. |
Pull Fix |
true |
Блокирует эксплойт server pull из Structures Plus, при котором притягивание используется для массового вытягивания запрещённых предметов (жертвоприношений боссов и подобных) из контейнера. Игроку показывается сообщение «You can't pull this craft». |
Lag Protector |
true |
Защита от гриферства с намеренным вызовом лагов сервера. Требует дополнительных ключей — см. ниже. |
Dupe Fix |
true |
Уничтожает продублированные тайники предметов смерти S+: второй тайник смерти, появившийся поверх уже существующего, удаляется вместо того, чтобы удваивать его содержимое. |
Каждое исправление принимает флаг Enabled. Lag Protector принимает ещё
три.
Lag Protector
Lag Protector изначально содержит только Enabled, и каждая из его защит
добавляется по желанию — добавьте ключи самостоятельно, чтобы их
включить:
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
WhipProtection |
boolean | false |
Кикать игрока, который стреляет из оружия внутри зоны, настолько плотно застроенной, что это лагает сервер — классическое гриферство «whip in a mega-base» (стрельба в мегабазе). |
BlueprintProtection |
boolean | false |
Кикать игрока, который ставит в очередь неправдоподобно большое количество крафтов по чертежам за несколько секунд. |
LagWebhook |
string | "" |
Вебхук для киков от защиты от лагов. Если пусто, ничего не отправляется. |
Кики от этого исправления несут намеренно непрозрачный код причины, чтобы
грифер ничего из него не узнал: 0x7E3 — это защита от whip, 0x4DE —
защита от чертежей.
ℹ️ Добавленные вами ключи сохраняются. Самовосстановление конфигурации только добавляет отсутствующие ключи — оно никогда не удаляет ключи, которые не распознаёт, поэтому три ключа выше переживут обновления плагина.
IntegratedBanSystem и AutoBan
Эти два раздела управляют конвейером банов и подробно описаны на странице Баны и обнаружения:
⚠️ Замените URL в
BanMessage. Он поставляется с заглушкойexample.com. Укажите ссылку на ваш собственный магазин или страницу апелляции.
Modules
Каждый детектор находится внутри Modules, в одной из четырёх категорий:
| Категория | Что она охватывает |
|---|---|
CombatCheats |
Читы боевого времени — помощь в прицеливании, манипуляции со скорострельностью и боеприпасами, автоматизация расходников. |
MiscCheats |
Клиентская автоматизация и клиентские инструменты — auto-loot, auto-craft, спуферы, аномалии тайминга, а также проверка при подключении. |
Mod |
Проверки, требующие необязательного клиентского мода-компаньона (включая захват аппаратного ID и обнаружение обхода мода). Неактивно, если этот мод не развёрнут — спросите в Discord Bytemart, если он вам нужен. |
Exploits |
Известные эксплойты игры и модов: способы дюпа, векторы крашей, анлокеры, злоупотребление ездовыми и постройками, защита администраторов и другое. |
Структура всегда одинаковая:
Enabled: false на уровне категории отключает все модули внутри неё,
независимо от того, что говорят отдельные флаги. Ваш поставляемый
config.json содержит полный список подмодулей с разумными значениями по
умолчанию — приведённый ниже справочник объясняет ключи, которые вы там
найдёте.
Общие ключи подмодулей
| Ключ | Тип | Значение |
|---|---|---|
Enabled |
boolean | Включить или отключить этот конкретный детектор. |
Block |
boolean | Предотвращать читерское действие, а не только сообщать о нём. Когда false, действие проходит, и вы получаете только оповещение — полезно, пока вы набираете уверенность в модуле на своём сервере. |
BanAfterDetections |
number | Поставить игрока в очередь на бан после этого количества обнаружений этим модулем. Отсутствие ключа или 0 означает, что этот модуль никогда не банит сам по себе. |
InstantBan |
boolean | Выполнить этот бан немедленно, не дожидаясь следующей волны банов. |
OnlyAnalysis |
boolean | Обнаруживать и записывать, но не публиковать в ваш вебхук Discord. Тихий режим для оценки модуля. |
WebhookUrl |
string | Отправлять оповещения этого модуля на конкретный вебхук вместо DefaultWebhookUrl. |
Threshole / *Threshold |
number | Чувствительность модуля. Выше = требуется больше доказательств до срабатывания. Написание Threshole в ключах, где оно используется, — намеренное. |
BlockMovement |
boolean | Используется несколькими модулями-анлокерами: замораживает нарушителя на месте, а не только помечает его. |
Некоторые модули добавляют собственные ключи — например, список имён
чертежей, исключаемых из проверки, или дополнительный подфлаг для конкретного
варианта эксплойта. Они описаны в config_commented.json там, где это не
очевидно само по себе.
💡 Советы по настройке. Начните со значений по умолчанию. Если модуль даёт ложные срабатывания на вашем сервере, предпочтительнее повысить его порог или
BanAfterDetections, а не отключать его полностью — и включитьOnlyAnalysis, пока вы за ним наблюдаете.
Проверка при подключении
Один модуль в MiscCheats стоит выделить отдельно, потому что он требует
внешней настройки: трекер сессий проверяет входящего игрока через Steam
Web API и может отклонять аккаунты, которые выглядят одноразовыми.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
WebhookUrl |
string | "" |
Вебхук для результатов проверки. Если пусто, используется DefaultWebhookUrl. |
MinGameHours |
number | 30 |
Минимальное время в ARK, в часах. |
BlockMinGameHours |
boolean | false |
Кикать игроков с меньшим временем в игре. |
LogMinGameHours |
boolean | true |
Сообщать об игроках с меньшим временем в игре. |
MinAccountAgeDays |
number | 30 |
Минимальный возраст аккаунта Steam, в днях. |
BlockMinAccountAgeDays |
boolean | false |
Кикать аккаунты моложе этого возраста. |
LogMinAccountAgeDays |
boolean | true |
Сообщать об аккаунтах моложе этого возраста. |
VacBanRestrictions.RecentDaysThreshole |
number | 90 |
Насколько недавним должен быть VAC-бан, чтобы учитываться. |
VacBanRestrictions.Block |
boolean | false |
Кикать игроков с недавним VAC-баном. |
VacBanRestrictions.Log |
boolean | true |
Сообщать об игроках с недавним VAC-баном. |
ℹ️ Требует
SteamAPIKey. Без ключа эти проверки не могут выполняться. Также учтите, что игрок с приватным профилем Steam скрывает своё время в игре — решайте осознанно, нужны ли вамBlock*, поскольку это оттолкнёт часть добросовестных игроков.
Дальнейшие шаги:
- Команды — команды консоли/RCON и внутриигровые команды администратора.
- Баны и обнаружения — пороги, волны банов, баны по IP/HWID, разбан.
- Общая конфигурация —
LicenseKey,Database,LogToFile,Verbose.