Античит сравнивает то, что прислал клиент, с тем, что возможно в честной игре. Ошибается он, когда «честная игра» на вашем сервере выглядит иначе, чем он ожидает: пакеты пришли пачкой из-за пинга, сервер подвис, плагин подбросил игрока в воздух. Если банить за одно такое срабатывание, вы получите ложные баны, жалобы и уходящих игроков.
Откуда берутся ложные баны
| Причина | Что видит античит | Что делать |
|---|---|---|
| Скачки пинга и потери пакетов | Пакеты приходят пачкой — похоже на Timer или Blink | Копить улики, не банить за один эпизод |
| Просадки TPS | Сервер обрабатывает движение с задержкой, проверки по времени ошибаются | Найти причину лагов, см. почему лагает сервер |
| Плагины, которые двигают игрока | Батут подбросил — похоже на Fly; рывок из чар — на Speed | Проверить механику с античитом до запуска |
| Игроки с Bedrock через Geyser | Другой клиент — другая физика движения | Уточнить у разработчика античита, как он их проверяет |
| Клиенты других версий через ViaVersion | Протокол переведён, но клиент живёт по своим правилам | Проверять баны игроков со старых клиентов вручную |
| Разрешённые моды и бинды | Клиент шлёт пакеты не так, как ванильный | Античит, который знает разрешённые моды |
Пинг и потери пакетов
Когда у игрока проседает интернет, пакеты движения застревают в сети и приходят на сервер разом. Сервер видит, что за долю секунды пришло несколько тиков движения, — так выглядит и Timer. Античит, который банит за один такой всплеск, накажет человека за плохой Wi-Fi.
Просадки TPS
Сервер Minecraft должен успевать тик за 50 мс. Если тик длится дольше, пакеты игроков обрабатываются пачками, и проверки, завязанные на время, видят то, чего не было. Частая причина — генерация новых чанков, когда игроки летают на элитрах по новым землям. Её убирает прогрузка мира.
Плагины, которые двигают игрока
Батуты в лобби, двойной прыжок, рывки и скорость из кастомных зачарований, ездовые животные и транспорт из плагинов — всё это движение, которого нет в ванильной игре. Античит, который о нём не знает, видит полёт или Speed. Прежде чем запускать ивент с новой механикой, пройдите его сами с включённым античитом и посмотрите, что срабатывает.
Bedrock через Geyser и старые клиенты
Geyser — мост между Bedrock Edition и Java Edition: игроки с телефонов и консолей заходят на ваш Java-сервер. Но их клиент двигается по физике Bedrock. Сам Geyser в списке ограничений называет, например, проблемы с движением около бамбука из-за разницы между версиями. У GeyserMC есть общественный список совместимости античитов — сверьтесь с ним и спросите разработчика своего античита, как он проверяет таких игроков.
С ViaVersion похожая история: игроки других версий заходят на сервер, плагин переводит пакеты, но поведение старого клиента переводится не всегда один в один. Чем дальше версия клиента от версии сервера, тем внимательнее смотрите на баны таких игроков.
Копите улики, а не баньте за одно срабатывание
Главная защита от ложных банов — не ослаблять проверки, а не верить одному срабатыванию. Лаг даёт один странный эпизод. Чит даёт их снова и снова, в разных боях и на разных фронтах.
Так устроен DGuard: каждое срабатывание — улика с весом, VL × вес правила. За сутки улики тают вдвое, а бан приходит, только когда игрок набрал 400 очков в трёх разных эпизодах. Один всплеск пинга — один эпизод, и забанить за него нельзя. Разрешённые моды и бинды прописаны в коде и улик не дают вовсе.
Есть и улики, которые лаг подделать не может. Честный клиент шлёт пакеты внутри тика в строгом порядке, а чит его нарушает — например, KillAura поворачивает голову до удара. Лаг задерживает пакеты, но не переставляет их местами, поэтому порядок пакетов выдаёт чит, а не плохой интернет.
Без откатов честному игроку не больно
Многие античиты при подозрении откатывают игрока назад или отменяют удар. Читера это лишь учит обходу, а честного игрока с лагом раздражает: его дёргает назад посреди боя или паркура. DGuard работает скрыто — без отмен ударов и откатов. Если у честного игрока что-то сработало, он этого просто не заметит, а улика будет таять вдвое каждые сутки.
Наказывайте по ступеням
Не каждое нарушение стоит вечного бана. Решите заранее, какие читы у вас — повод для бана, какие — для кика, а какие — только для пометки модераторам. Для спорных случаев подходит лестница: предупреждение, кик, временный бан, бан.
В DGuard бан или кик задаётся для каждой функции чита, а вес улик и пороги — в конфиге: от мягкого режима до нулевой терпимости. Если на вашем режиме много спорных механик, начните мягче и ужесточайте, когда убедитесь, что честных не задевает. Готовые настройки под разные режимы — в магазине конфигов.
Исключения для особых зон и механик
Если ваш античит поддерживает исключения — права на обход проверок или зоны без проверок, — используйте их точечно: на батут в лобби или на арену с особой механикой, а не на весь сервер. Не выдавайте обход всем модераторам и донатерам: читер с правом обхода — худший случай.
Если плагин вашего режима двигает игроков нестандартно и вызывает срабатывания DGuard, напишите в поддержку, какой это плагин и что он делает, и приложите отчёт к бану, если он был: бой разберут по тикам и поправят правило.
Апелляции: как разбирать жалобы на бан
- 1
Дайте один понятный канал
Тикет в Discord или форма на сайте. Укажите его в правилах и в сообщении о бане, чтобы игрок не писал всем модераторам в личку.
- 2
Попросите нужное
Ник, дата и время бана, сервер, что игрок делал в тот момент, какие моды стоят.
- 3
Назначьте срок ответа
Например, 3 дня. Срок пишите в правилах и соблюдайте: молчание злит сильнее отказа.
- 4
Разбирает другой человек
Не тот, кто банил. Он смотрит отчёт античита, запись, TPS сервера в то время и логи.
- 5
Ответьте и запишите решение
Оставить бан, сократить или снять — с причиной. Решение — в журнал рядом с баном.
Если бан оказался ошибкой, снимите его, извинитесь и устраните причину — иначе через неделю будет второй такой же. В DGuard пришлите отчёт к бану в поддержку: мы разберём бой по тикам и поправим правило. Как устроить разбор жалоб в команде — в статье про команду модераторов, а порядок апелляций стоит прописать в правилах сервера.
Частые вопросы
Почему античит банит за лаги?
При скачке пинга клиент отправляет пакеты пачкой, а при просадке TPS сервер обрабатывает их с задержкой — проверки, завязанные на время, видят это как Timer или Speed. Античит, который банит за одно срабатывание, наказывает за плохой интернет.
Может ли античит забанить игрока с Bedrock?
Может: игроки через Geyser двигаются по физике Bedrock, и античит, рассчитанный на Java-клиент, может принять это за чит. Сверьтесь со списком совместимости античитов у GeyserMC и спросите разработчика своего античита.
Как уменьшить ложные баны, не ослабляя защиту?
Банить по накопленным уликам из нескольких эпизодов, а не за одно срабатывание; проверить плагины, которые двигают игроков; наказывать по ступеням. Проверки при этом остаются прежними.
Банит ли DGuard за разрешённые моды?
Нет. Разрешённые моды и бинды прописаны в коде DGuard и улик не дают. Если бан всё же оказался ошибочным, пришлите его отчёт в поддержку — разберём бой по тикам и поправим правило.
Что делать, если игрока забанили по ошибке?
Снять бан, извиниться и найти причину: лаг, плагин или ошибка правила. Отчёт к бану отправьте разработчику античита, чтобы ошибка не повторилась у других игроков.
Источники
- GeyserMC: что такое Geyser
- GeyserMC: текущие ограничения
- GeyserMC: совместимость античитов
- ViaVersion на Modrinth
- DGuard — лучший античит для современного сервера Minecraft: сравнение проверок с GrimAC, Vulcan, Polar, Intave и Matrix
- DGuard: установка, требования и решение проблем
- DGuard: поддерживаемые версии Paper и Leaf