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.











