Grim Anticheat — wtyczka antycheat dla Minecraft
Grim Anticheat to oparte na otwartym kodzie źródłowym narzędzie dla Minecrafta, zapobiegające oszukiwaniu dzięki symulacji ruchu gracza.
Grim Anticheat to oparte na otwartym kodzie źródłowym narzędzie dla Minecrafta, zapobiegające oszukiwaniu dzięki symulacji ruchu gracza.
Grim Anticheat — wtyczka antycheat dla Minecraft
Java: 17 lub nowsza
Zakres obsługiwanych wersji Minecraft: 1.8 – 26.1.2
Wersja wtyczki: 2.3.74
Grim Anticheat (GrimAC) to serwerowy antycheat o otwartym kodzie źródłowym dla gry Minecraft na licencji GPL-3.0. Wtyczka opiera się na symulacji ruchów gracza, a nie na porównywaniu z ustalonymi wzorcami zachowań, co wyróżnia ją na tle większości darmowych alternatyw.
Jej głównym zadaniem jest wykrywanie niedozwolonych modyfikacji klienta, które dają nieuczciwą przewagę w walce, poruszaniu się lub interakcji z blokami. Sama wtyczka nie banuje graczy — rejestruje naruszenie i przekazuje wykonanie kary innej wtyczce (LiteBans, AdvancedBan lub dowolnej niestandardowej komendzie przez konfigurację).
Podejście: przewidywanie ruchu zamiast wzorców
Klasyczne, darmowe antycheaty działają na podstawie wcześniej zapisanych wzorców zachowań. Ta metoda ma oczywiste ograniczenie — każda aktualizacja modyfikacji może potencjalnie obejść wykrywanie, dopóki nowy wzorzec nie zostanie dodany do bazy danych.
Z kolei GrimAC posiada Movement Simulation Engine. Serwer samodzielnie oblicza, gdzie gracz mógłby się znaleźć w danym ticku, biorąc pod uwagę bloki wokół, efekty mikstur, pajęczyny, kolumny bąbelków, łodzie, świnie, magmołazy, elytry i dziesiątki innych sytuacji. Jeśli klient wysyła współrzędne wykraczające poza to, co fizycznie możliwe, uruchamia się sprawdzenie Simulation z obliczeniem przesunięcia w blokach.
Dodatkowo wtyczka przechowuje osobistą kopię świata dla każdego gracza. Chanki są kompresowane do 16–64 KB za pomocą palet, dzięki czemu pamięć podręczna jest dość lekka nawet przy ponad 200 graczach online. Taka architektura pozwala na bezpieczne przetwarzanie fałszywych bloków umieszczonych przez inne wtyczki poprzez pakiety.

Wyjście z komendy /grim help na czacie
Sprawdzenia
Sprawdzenia są podzielone na grupy funkcjonalne. Nazwy pochodzą z kodu źródłowego — administrator widzi je w /grim verbose oraz w wiadomościach webhook. Same nazwy nie są nazwami zabronionych modyfikacji — to wewnętrzna klasyfikacja wtyczki.
Ruch
Simulation — główne sprawdzenie. Wykrywa wszelkie zmiany pozycji gracza, które nie odpowiadają fizycznie możliwej trajektorii: niedozwolone przyspieszenie, ruch bez oparcia, przenikanie przez bloki.
Timer, TimerLimit, NegativeTimer, VehicleTimer — rejestrują przyspieszenie wewnętrznego czasu klienta. To podstawa dla modyfikacji przyśpieszających używanie przedmiotów i strzelanie z łuku. Próg wykrywania wynosi około 1.005× normalnej prędkości czasu — dokładniej niż w większości darmowych odpowiedników.
NoFall — fałszowanie stanu spadania. Modyfikacja wysyła fałszywe onGround=true, aby anulować obrażenia od upadku; sprawdzenie to wykrywa.
Phase — ruch przez twardy blok. Podstawowe zachowanie modyfikacji pozwalających na przechodzenie przez ściany lub dostawanie się do chronionych stref.
Walka
Reach — atak z odległości większej niż dopuszczalna.
Hitboxes — atak omijający rzeczywisty hitbox celu.
Knockback, Explosion — klient ignoruje impuls po uderzeniach lub eksplozjach.
Aim, Interact — niewłaściwy obrót głowy przed uderzeniem, niemożliwe z punktu widzenia fizyki interakcje.
Pakiety i stawianie bloków
BadPackets, PacketOrder, Crash — nieprawidłowa kolejność pakietów, próby zawieszenia serwera celowo spreparowanymi pakietami.
NoSlow — gracz nie zwalnia podczas jedzenia, strzelania z łuku, używania tarczy czy czołgania się w pajęczynie.
Grupa sprawdzeń stawiania bloków — wykrywa postawienie bloku bez fizycznej możliwości zrobienia tego: za daleko, w niedostępnym kierunku, w powietrzu bez podparcia.
Baritone — wzorzec ruchu zautomatyzowanych botów-asystentów.
Exploit — konkretne exploity, takie jak nadużywanie Sprint-Jump z elytrą.
Główne komendy administratora
Komenda | Przeznaczenie |
| Lista komend z krótkimi opisami |
| Włączanie lub wyłączanie alertów na czacie |
| Pokazuje każdą flagę bez bufora i progów |
| Wersja klienta, marka (Vanilla/Fabric/Lunar/Forge), czułość myszy, status FastMath |
| Stronicowana historia sesji i naruszeń z bazy danych |
| Wejdź w tryb obserwatora i teleportuj się do gracza |
| Powrót do poprzedniej pozycji |
| Pobierz log debugowania dla konkretnego ID flagi |
| Przeładuj wszystkie konfiguracje, zresetuj aktywne naruszenia |
| Tryb programisty: przewidywanie a rzeczywisty ruch z przesunięciem |
| Sprawdź webhook Discord bez oczekiwania na faktyczne naruszenie |

Wynik komendy /grim profile na czacie — wersja klienta, marka, czułość myszy i status FastMath gracza
Alerty i kary
Każde sprawdzenie ma własny licznik naruszeń, który stopniowo maleje wraz z upływem czasu. To kluczowe: krótkotrwały lag czy przypadkowy błąd nie gromadzi się w postaci stałego bana, reakcja wyzwalana jest tylko przy konsekwentnych naruszeniach. Sama reakcja jest definiowana przez administratora — dla każdej grupy sprawdzeń ustala się, przy którym naruszeniu i jak często wykonać daną komendę.
Logika jest następująca: podaje się numer naruszenia po którym włącza się reakcja oraz interwał — jak często będzie powtarzana. Wpis 100:0 kick %player% oznacza, że gracz otrzyma wyrzucenie z serwera (kick) dokładnie po setnym naruszeniu, a komenda nie zostanie wykonana ponownie. Wpis 5:3 [alert] wyzwoli się przy piątym naruszeniu, a następnie ósmym, jedenastym i tak dalej — ostrzeżenie trafi na czat do graczy z uprawnieniami.
Zamiast komendy można użyć tagów serwisowych samego Grim ([alert] — wiadomość na czat, [log] — zapis w konsoli i bazie, [webhook] — wysłanie powiadomienia na Discord, [proxy] — przekazanie na inne serwery backendu) lub dowolnej komendy konsoli. Do podstawień dostępne są nick gracza, nazwa sprawdzenia oraz liczba naruszeń — standardowe placeholdery. Dzięki temu Grim można podłączyć do zewnętrznej wtyczki banującej bez dodatkowych pomostów.
Webhooki Discord
GrimAC posiada zintegrowane powiadomienia przesyłane na kanały Discord. Wygląd wiadomości można w pełni dostosować — od koloru embed, do tego jakie konkretnie pola mają się wyświetlać. W gotowej wiadomości widać pseudonim gracza, nazwę sprawdzenia, liczbę naruszeń, wersję klienta i markę, aktualny ping i tps serwera w momencie zdarzenia. Obsługiwane są zarówno zwykłe kanały, jak i kanały forum na Discordzie. Konfigurację należy wcześniej przetestować — komenda /grim testwebhook wysyła wiadomość testową bez konieczności czekania na prawdziwe naruszenie.
Niekompatybilne modyfikacje klienta
Oficjalna wiki zawiera odrębną listę modów, które psują mechanikę z gry Vanilla lub wywołują fałszywe powiadomienia (false-positive). Lista ta nie jest wyczerpująca — bywa na bieżąco aktualizowana na stronie Known incompatible client mods na wiki GitHuba wtyczki. Jeśli dany gracz dostaje masowo flagi przy stabilnym pingu i nie przejawia innych oznak oszukiwania, pierwszą hipotezą jest używanie moda klienckiego z tego wykazu.
Przechowywanie historii naruszeń
GrimAC przechowuje bazę historii naruszeń powiązaną z sesjami. Sesja to pojedyncze połączenie gracza z serwerem. Komenda /grim history <gracz> ukazuje: kiedy gracz dołączył, ile czasu trwała dana sesja, ile zaszło naruszeń, przy użyciu jakiego klienta, wraz z zestawieniem dla danych sprawdzeń.
Obsługiwane bazy: SQLite (domyślnie, lokalny plik data/history.v1.db), MySQL, PostgreSQL, MongoDB, Redis. Baza SQLite jest w zupełności wystarczająca dla serwera pojedynczego. W przypadku sieci złożonej z wielu instancji Grima potrzebny jest silnik bazodanowy połączony w sieci ze wspólną bazą — przeważnie mowa tu o MySQL lub Postgres.
Poza tym funkcjonuje opcja retencji — automatycznego oczyszczania przestarzałych wpisów. Zasadniczo sesje w bazie utrzymują się 90 dni, a naruszenia — 365 dni. Funkcja ta pozwala się swobodnie konfigurować lub całkowicie wyłączyć.

Wynik z komendy /grim history na czacie
Konfiguracja
Ustawienia zostały rozmieszczone pomiędzy licznymi plikami w formacie YAML w folderze plugins/Grim/
Najważniejsze parametry, na które należy autentycznie zwrócić szczególną uwagę podczas konfiguracji pierwotnej:
Parametr | Plik | Co robi |
| config.yml | Próg przesunięcia bloku, po osiągnięciu którego Simulation postrzegane bywa za naruszenie. Poniżej — bardziej surowe, obarczone wyższym wskaźnikiem false-positive podczas lagów. |
| config.yml | Zwiększenie hitboxu poza limit na Vanilli. Wartość 0.0005 diagnozuje przekroczenie na poziomie ponad 3.0005 bloków. |
| config.yml | Pakiet uzupełniający posyłany na koniec danego ticku w celu bardziej dokładnego wykrycia parametru Reach. Funkcja polecana zwłaszcza serwerom pod 1.8 PvP; w pozostałych miejscach potrafi sprowokować zbędne ilości ruchu w sieci. |
| config.yml | Służy do aktywowania testowych procesów weryfikacji. Bez konkretnej potrzeby nie ma sensu go uruchamiać. |
| config.yml | Limit czasowy wyrażony w sekundach do samowolnego zainicjowania wyrzucenia (kick). |
| config.yml | Kickowanie dla klientów na wersjach typu Forge od 1.18.2 w górę do 1.19.3. |
| config.yml | Transfery na warstwie alertów przekazywanych serwerom proxy backendu. Taka operacja wymaga specjalnej opcji wtyczki pod bungee-plugin-message-channel z obszaru Velocity. |
| database.yml | Bazowe uprawnienia do modyfikacji ustawień dla kwestii utrwalania starych zapisów danych. |
| database.yml | Szlak przeznaczenia do archiwizowania samych danych tyczących łamania standardów z grupy: sqlite, mysql, postgres, mongo, redis, ewentualnie parametr z brakiem dyspozycji. |
Z pozostałymi skryptami na poziomie config.yml bywa bardzo podobnie (na przykład decay, czyli obniżanie stopy, ewentualnie pułapy maksymalne lub parametry pingu ujęte we wspomaganiu konkretnych modów firework boost), dlatego ich edycja z dużą dozą dokładności kalibruje sprawność na osi pomiędzy nieubłaganiem a akomodacyjnym podejściem pod względem tolerancyjności opóźnienia u klientów z bardzo gorszym pingiem. Nieliczne osoby z grupy upoważnionych załogantów decydują się w praktyce zachowywać te ustawienia w formach standardowych — twórcy zbalansowali je na własną rękę, gwarantując jak najbardziej uniwersalny stopień stabilności w oparciu o szablony ugodowe co do wyższych wartości opóźnień i niepodważalnej precyzji w egzekwowaniu zasad sprawiedliwej gry.
Podsumowanie
Grim Anticheat wykrywa zdecydowaną większość powszechnie uznawanych za naganne modyfikacji pakietów walk i uchybień w parametrach na tle prognozy możliwych do oszacowania ewentualnych ścieżek ruchomych miast dokonywać porównań opartych na utartych i znanych do tej pory typach szablonów z klasycznej rozgrywki. W następstwie takiego podejścia wtyczkę tę cechuje niespotykana wcześniej na rynku antycheatowym niewrażliwość w konfrontacji ze zjawiskiem ulepszania mechanizmów wykorzystywania starych rodzajów znanych modyfikacji, na przykład poprzez aktualizację nowszych edycji. Co się tyczy mankamentów faktycznych dla wybranego wtykania, to nie da się zakwestionować faktu uchybień za tytułem weryfikacji opartej o mechanizm heurezy z odniesieniem się w równej mierze do sfery podtrzymującej stabilność założeń autocelowania przy ruchu myszki i modów uderzających we właściwości częstotliwości po autokliku — co z kolei w niedalekiej, miejmy nadzieję, przyszłości zneutralizuje obiecana do wejścia w strefy dostępu modyfikacja o etykiecie linii typu Premium. GrimAC okazuje się pozycją absolutnie bezwarunkowo przemyślaną pod środowiska serwerowe ukierunkowane ze względnie jasnymi motywacjami do modyfikacji łamiących standardową budowę zasady — na przykład potyczki na arenach PvP czy mniejsze obwody gry w mini-gry, z survivalem o dużym skupisku drogocennych materiałów budulcowych oraz na strefy otwarte u stref dla opcji typu anarchy. Niemniej jeśli poszukujesz alternatywy co ma sprawdzić się dla serwera do 10 uwięzionych na wspólnej mapie kolegów — wtyczka w takim wariancie stanowi nazbyt mocno wyolbrzymiony zasób obciążający sprzęt pożytkowany nieustannymi aktualizacjami u samej zapowiedzi ze strefy ruchomych predykcji bez żadnych realnych powodów o łamanie standardowych wzorców zachowania standardowych uczestników trybu wspólnej zabawy z najbliższymi.
Instalacja
Typowa instalacja zajmuje około 5 minut. Procedura jest taka sama; różni się tylko loader i odpowiedni build.
- 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.











