Grim Anticheat — плагин-античит для Minecraft
Grim Anticheat — это серверный плагин-античит для Minecraft с открытым исходным кодом, который предотвращает использование нечестных…
Grim Anticheat — это серверный плагин-античит для Minecraft с открытым исходным кодом, который предотвращает использование нечестных преимуществ.
Grim Anticheat — плагин-античит для Minecraft
Java: 17 или новее
Диапазон поддерживаемых версий Minecraft: 1.8 – 26.1.2
Версия плагина: 2.3.74
Grim Anticheat (GrimAC) — серверный античит для Minecraft с открытым исходным кодом под лицензией GPL-3.0. Плагин работает по принципу симуляции движений игрока, а не сравнения с фиксированными шаблонами поведения, что отличает его от большинства бесплатных аналогов.
Основная задача — фиксировать недозволенные модификации клиента, которые дают нечестное преимущество в бою, передвижении или при взаимодействии с блоками. Сам плагин игрока не банит — он фиксирует нарушение и передает исполнение наказания другому плагину (LiteBans, AdvancedBan или любой кастомной команде через конфиг).
Подход: прогноз движения вместо шаблонов
Классические бесплатные античиты работают по заранее записанным шаблонам поведения. У этого метода есть очевидное ограничение — каждое обновление модификации потенциально обходит детекцию, пока в базу не добавят новый шаблон.
GrimAC вместо этого содержит Movement Simulation Engine. Сервер сам просчитывает, где игрок мог бы оказаться в конкретный игровой тик с учетом блоков вокруг, эффектов зелий, паутины, колонн пузырей, лодок, свиней, страйдеров, элитр и десятков других ситуаций. Если клиент отправляет координаты, выходящие за рамки возможного, срабатывает проверка Simulation с подсчетом оффсета в блоках.
Отдельно плагин ведет персональную копию мира для каждого игрока. Чанки сжимаются до 16–64 КБ с помощью палитр, что делает кэш достаточно легким даже при онлайне 200+. Такая архитектура позволяет безопасно обрабатывать фейковые блоки, поставленные другими плагинами через пакеты.

Вывод команды /grim help в чате
Проверки
Проверки разбиты на функциональные группы. Названия взяты из исходного кода — их администратор видит в /grim verbose и в webhook-сообщениях. Сами названия не являются названиями запрещенных модификаций — это внутренняя классификация плагина.
Движение
Simulation — основная проверка. Выявляет любые изменения позиции игрока, которые не соответствуют физически возможной траектории: недозволенное ускорение, перемещение без опоры, движение сквозь блоки.
Timer, TimerLimit, NegativeTimer, VehicleTimer — фиксируют ускорение внутреннего времени клиента. Это база, на которой строятся модификации ускоренного использования предметов и стрельбы из лука. Порог обнаружения около 1.005× от нормальной скорости времени — точнее, чем у большинства бесплатных аналогов.
NoFall — подделка состояния падения. Модификация отправляет фейковый onGround=true, чтобы отменить урон от падения; проверка это видит.
Phase — движение сквозь твердый блок. Базовое поведение модификаций, позволяющих проходить стены или проникать в защищенные зоны.
Боевые
Reach — атака дальше допустимой дистанции.
Hitboxes — атака мимо реального хитбокса цели.
Knockback, Explosion — клиент игнорирует импульс от ударов или взрывов.
Aim, Interact — некорректное вращение головы перед ударом, невозможные по физике взаимодействия.
Пакеты и установка блоков
BadPackets, PacketOrder, Crash — некорректный порядок пакетов, попытки крашнуть сервер специально сформированными пакетами.
NoSlow — игрок не замедляется во время еды, стрельбы из лука, использования щита, ползания в паутине.
Группа проверок установки блоков — фиксируют установку блока без физической возможности это сделать: слишком далеко, в недосягаемом направлении, в воздухе без опоры.
Baritone — паттерн движения автоматизированных ботов-помощников.
Exploit — отдельные эксплойты, например злоупотребление Sprint-Jump на элитрах.
Основные команды администратора
Команда | Назначение |
| Список команд с краткими описаниями |
| Включить или выключить получение алертов в чат |
| Показать каждый флаг без буфера и порогов |
| Версия клиента, бренд (Vanilla/Fabric/Lunar/Forge), чувствительность мыши, статус FastMath |
| Постраничная история сессий и нарушений из БД |
| Перейти в спектатор и телепортироваться к игроку |
| Вернуться на предыдущую позицию |
| Скачать дебаг-лог по конкретному ID флага |
| Перезагрузить все конфиги, сбросить активные нарушения |
| Режим разработчика: прогноз vs реальное движение с оффсетом |
| Проверить Discord-вебхук без ожидания реального нарушения |

Вывод команды /grim profile в чате — версия клиента, бренд, чувствительность мыши и статус FastMath игрока
Оповещения и наказания
Каждая проверка имеет собственный счетчик нарушений, который постепенно уменьшается со временем. Это принципиально: короткий лаг или случайный сбой не накапливается в постоянный бан, реакция срабатывает только на стабильное нарушение. Сама реакция задается администратором — для каждой группы проверок прописывается, на каком нарушении и как часто выполнять команду.
Логика такова: указывают номер нарушения, после которого включается реакция, и интервал — как часто она будет повторяться затем. Запись 100:0 kick %player% означает, что игрок получит кик ровно на сотом нарушении, а повторно команда уже не выполнится. Запись 5:3 [alert] сработает на пятом нарушении, далее на восьмом, одиннадцатом, и так далее — алерт будет поступать во внутриигровой чат игрокам с правом доступа.
Место команды может занимать либо служебный тег самого Grim ([alert] — сообщение в чат, [log] — запись в консоль и базу, [webhook] — отправка в Discord, [proxy] — передача на другие backend-серверы), либо любая консольная команда сервера. В подстановках доступны никнейм игрока, название проверки и количество нарушений — стандартные плейсхолдеры. Благодаря этому Grim подключается к внешнему бан-плагину без дополнительных мостов.
Discord-вебхуки
Для отправки оповещений в Discord в GrimAC есть встроенная интеграция. Внешний вид сообщения настраивается полностью — от цвета embed до того, какие именно поля отображать. В готовом сообщении видно никнейм игрока, название проверки, количество нарушений, версию клиента и бренд, текущий пинг и tps сервера на момент события. Поддерживаются как обычные каналы, так и форум-каналы Discord. Конфигурацию стоит проверить заранее — команда /grim testwebhook отправляет тестовое сообщение без ожидания настоящего нарушения.
Несовместимые клиентские моды
Официальная вики ведет отдельный перечень модов, которые либо нарушают ванильную механику, либо провоцируют false-positive. Список не исчерпывающий — обновляется на странице Known incompatible client mods в GitHub-вики плагина. Если у игрока появляется массовый флаг при стабильном пинге и без признаков нарушений, первая гипотеза — клиентский мод из этого перечня.
Хранение истории нарушений
GrimAC ведет базу истории с привязкой к сессиям. Сессия — это одно подключение игрока к серверу. Команда /grim history <игрок> показывает: когда игрок заходил, сколько сессия длилась, сколько нарушений, с какого клиента, с разбивкой по проверкам.
Поддерживаемые бэкенды: SQLite (по умолчанию, локальный файл data/history.v1.db), MySQL, PostgreSQL, MongoDB, Redis. SQLite хватает одиночному серверу. Для сети с несколькими Grim-инстансами нужен сетевой бэкенд с общей базой — MySQL или Postgres типично.
Отдельно действует retention — автоматическая очистка старых записей. По умолчанию сессии живут 90 дней, нарушения — 365 дней. Это настраивается или отключается.

Вывод /grim history в чате
Конфигурация
Настройки раскиданы по нескольким YAML-файлам в папке plugins/Grim/
Параметры, на которые реально стоит обратить внимание при первой настройке:
Параметр | Файл | Что делает |
| config.yml | Порог оффсета в блоках, после которого Simulation считается нарушением. Меньше — жестче, больше false-positive на лагах. |
| config.yml | Расширение хитбокса сверх ванильного предела. 0.0005 фиксирует превышение от 3.0005 блока. |
| config.yml | Дополнительный пакет в конце каждого тика для более точной детекции Reach. Полезно на 1.8 PvP-серверах; в остальных создает лишний трафик. |
| config.yml | Включает тестовые проверки. Без необходимости лучше не активировать. |
| config.yml | Сколько секунд таймаута до автоматического кика игрока. |
| config.yml | Кикать клиентов на проблемных Forge 1.18.2–1.19.3. |
| config.yml | Передавать алерты между backend-серверами через прокси. Требует bungee-plugin-message-channel в Velocity. |
| database.yml | Мастер-переключатель сохранения истории. |
| database.yml | Куда писать нарушения: sqlite, mysql, postgres, mongo, redis, none. |
Остальные параметры в config.yml (decay-коэффициенты, ceilings, ping-ограничения для специфических механик типа firework boost) тонко калибруют баланс между жесткостью детекции и комфортом игроков с плохим пингом. Большинство администраторов оставляет их на дефолтах — они подобраны автором плагина под компромисс между точностью и толерантностью к высокому пингу.
Вывод
Grim Anticheat фиксирует большинство распространенных нарушений движения, боя и обработки пакетов через прогноз возможных движений, а не сравнение с шаблонами. Благодаря этому плагин устойчив к новым версиям тех же модификаций. Реальное ограничение: отсутствуют эвристические проверки на автонаведение прицела по моторике мыши и автоклики по частоте кликов — их обещают в Premium-ветке, которая еще не выпущена. GrimAC подходит серверам, где есть реальная мотивация устанавливать недозволенные модификации — PvP-арены, мини-игровые сети, выживалки с дорогими ресурсами, anarchy-серверы. Для небольшой творческой выживалки с 10 друзьями плагин избыточен — без серьезного риска нарушений прогнозный движок просто тратит ресурсы сервера.
Установка
Базовая установка занимает около 5 минут. Общий процесс одинаков, отличается только лоадер и совместимый билд.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.











