Grim Anticheat — Minecraft anticheat-plug-in
Grim Anticheat is een open-source anticheat-plug-in voor Minecraft die oneerlijk voordeel voorkomt door bewegingssimulatie te gebruiken in…
Grim Anticheat is een open-source anticheat-plug-in voor Minecraft die oneerlijk voordeel voorkomt door bewegingssimulatie te gebruiken in plaats van patronen.
Grim Anticheat — Minecraft anticheat-plug-in
Java: 17 of nieuwer
Ondersteunde Minecraft-versies: 1.8 – 26.1.2
Plug-in versie: 2.3.74
Grim Anticheat (GrimAC) is een open-source server anticheat voor Minecraft onder een GPL-3.0 licentie. De plug-in werkt door spelerbewegingen te simuleren in plaats van deze te vergelijken met vaste gedragspatronen, wat het onderscheidt van de meeste gratis alternatieven.
De belangrijkste taak is het detecteren van ongeoorloofde clientmodificaties die oneerlijk voordeel opleveren bij gevechten, beweging of interactie met blokken. De plug-in zelf verbant geen spelers — het registreert de overtreding en geeft de uitvoering van de straf door aan een andere plug-in (LiteBans, AdvancedBan of een willekeurig aangepast commando via de configuratie).
Aanpak: bewegingsvoorspelling in plaats van patronen
Klassieke gratis anticheats vertrouwen op vooraf opgenomen gedragspatronen. Deze methode heeft een duidelijke beperking — elke update van een modificatie kan mogelijk de detectie omzeilen totdat een nieuw patroon aan de database wordt toegevoegd.
GrimAC daarentegen bevat een Movement Simulation Engine. De server berekent precies waar een speler zich op een specifieke game tick zou kunnen bevinden, rekening houdend met omliggende blokken, drank-effecten, spinnenwebben, bellenkolommen, boten, varkens, striders, dekschilden en tientallen andere situaties. Als de client coördinaten stuurt die het fysiek mogelijke overschrijden, wordt de Simulation-controle geactiveerd en wordt de blok-offset berekend.
Daarnaast onderhoudt de plug-in een persoonlijke kopie van de wereld voor elke speler. Chunks worden gecomprimeerd tot 16–64 KB met behulp van paletten, waardoor de cache vrij licht is, zelfs met meer dan 200 online spelers. Deze architectuur verwerkt op veilige wijze nepblokken die door andere plug-ins via pakketten zijn geplaatst.

Commando-uitvoer van /grim help in chat
Controles
Controles zijn onderverdeeld in functionele groepen. De namen zijn afkomstig uit de broncode — beheerders zien ze in /grim verbose en in webhook-berichten. De namen zelf zijn niet de namen van ongeoorloofde modificaties — het is de interne classificatie van de plug-in.
Beweging
Simulation — de hoofdcontrole. Detecteert elke wijziging in de spelerpositie die niet overeenkomt met een fysiek mogelijk traject: ongeoorloofde acceleratie, bewegen zonder ondersteuning, bewegen door blokken.
Timer, TimerLimit, NegativeTimer, VehicleTimer — detecteren acceleratie van de interne tijd van de client. Dit is de basis van modificaties die de consumptie van items en het schieten met een boog versnellen. De detectiedrempel is ongeveer 1.005× de normale tijdsnelheid — veel nauwkeuriger dan de meeste gratis alternatieven.
NoFall — het veinzen van de valstatus. Een modificatie stuurt een nep onGround=true om valschade teniet te doen; de controle detecteert dit.
Phase — bewegen door een massief blok. Het basisgedrag van modificaties die het mogelijk maken om door muren te lopen of beschermde zones te betreden.
Gevecht
Reach — aanvallen voorbij de maximaal toegestane afstand.
Hitboxes — aanvallen buiten de daadwerkelijke hitbox van het doelwit.
Knockback, Explosion — de client negeert de impuls van treffers of explosies.
Aim, Interact — onjuiste hoofdrotatie voor een treffer, fysiek onmogelijke interacties.
Pakketten en blokplaatsing
BadPackets, PacketOrder, Crash — onjuiste pakketvolgorde, pogingen om de server te laten crashen met opzettelijk misvormde pakketten.
NoSlow — de speler vertraagt niet tijdens het eten van voedsel, het schieten met een boog, het gebruik van een schild of het kruipen door spinnenwebben.
Blokplaatsingscontrolegroep — detecteert het plaatsen van een blok wanneer het fysiek onmogelijk is om dit te doen: te ver, in een onbereikbare richting, in de lucht zonder ondersteuning.
Baritone — het bewegingspatroon van geautomatiseerde bot-assistenten.
Exploit — individuele exploits, zoals misbruik van Sprint-Jump met dekschilden.
Belangrijkste admin-commando's
Commando | Doel |
| Lijst met commando's met korte beschrijvingen |
| Waarschuwingen in chat in- of uitschakelen |
| Toon elke flag zonder buffer en drempels |
| Clientversie, merk (Vanilla/Fabric/Lunar/Forge), muisgevoeligheid, FastMath-status |
| Gepagineerde geschiedenis van sessies en overtredingen uit de database |
| Ga naar de toeschouwermodus en teleporteer naar een speler |
| Keer terug naar de vorige positie |
| Download foutopsporingslogboek voor een specifieke flag-ID |
| Herlaad alle configuraties, reset actieve overtredingen |
| Ontwikkelaarsmodus: voorspelling versus daadwerkelijke beweging met offset |
| Test de Discord-webhook zonder te wachten op een echte overtreding |

Commando-uitvoer van /grim profile in de chat — clientversie, merk, muisgevoeligheid en de FastMath-status van de speler
Waarschuwingen en straffen
Elke controle heeft zijn eigen overtredingenteller, die in de loop van de tijd geleidelijk afneemt. Dit is cruciaal: een korte lag of een willekeurige glitch hoopt zich niet op tot een permanente ban en de reactie wordt alleen geactiveerd bij consistente overtredingen. De reactie zelf wordt door de beheerder gedefinieerd — voor elke groep controles wordt gespecificeerd bij welke overtreding en hoe vaak een commando moet worden uitgevoerd.
De logica is als volgt: geef het overtredingsnummer op dat de reactie activeert en het interval — hoe vaak het daarna zal worden herhaald. De invoer 100:0 kick %player% betekent dat de speler exact bij de 100e overtreding een kick (verbanning) krijgt en dat het commando niet opnieuw wordt uitgevoerd. De invoer 5:3 [alert] wordt geactiveerd bij de 5e overtreding, vervolgens bij de 8e, 11e, enzovoort — de waarschuwing wordt naar de in-game chat gestuurd voor spelers met toestemming.
Het commando kan worden vervangen door de servicetag van Grim zelf ([alert] — chatbericht, [log] — console en databaselog, [webhook] — Discord-bericht, [proxy] — doorgeven aan andere backend-servers), of een ander serverconsole-commando. Beschikbare tijdelijke aanduidingen omvatten de nickname van de speler, de controllenaam en het aantal overtredingen — standaard placeholders. Hierdoor maakt Grim verbinding met externe ban-plug-ins zonder extra bruggen.
Discord-webhooks
GrimAC beschikt over een ingebouwde integratie voor het sturen van notificaties naar Discord. Het uiterlijk van het bericht is volledig aanpasbaar — van de embed-kleur tot precies welke velden er weergegeven moeten worden. In een klaarstaand bericht kun je de nickname van de speler zien, de naam van de controle, het aantal overtredingen, clientversie en merk, huidige ping en server-tps op het moment van het voorval. Zowel normale kanalen als Discord forumkanalen worden ondersteund. Het wordt ten zeerste aangeraden om de configuratie vooraf te controleren — het commando /grim testwebhook verstuurt een testbericht zonder dat je hoeft te wachten op een werkelijke overtreding.
Incompatibele client-mods
De officiële wiki houdt een aparte lijst bij van mods die óf vanilla mechanics breken óf false positives uitlokken. Deze lijst is niet allesomvattend en wordt bijgewerkt op de pagina "Known incompatible client mods" binnen de GitHub-wiki van de plug-in. Indien een speler massaal flags activeert met een stabiele ping en zonder andere sporen van overtredingen, is de eerste veronderstelling een client-mod afkomstig van deze lijst.
Bewaren van overtredingsgeschiedenis
GrimAC houdt een geschiedenisdatabase bij die is gekoppeld aan sessies. Een sessie staat voor één enkele verbinding van een speler naar de server. Het commando /grim history <speler> toont: wanneer de speler is gejoind, hoe lang de sessie heeft geduurd, de hoeveelheid overtredingen die plaatsvonden, vanaf welke client, aangevuld met een uitsplitsing per controle.
Ondersteunde backends: SQLite (standaard, lokaal bestand data/history.v1.db), MySQL, PostgreSQL, MongoDB, Redis. SQLite is toereikend voor één afzonderlijke server. Voor een netwerk met meerdere Grim-instances is een netwerkbackend vereist met een gedeelde database — doorgaans MySQL of Postgres.
Daarnaast is er sprake van retentie — het automatisch verwijderen van oude bestanden. Volgens de standaardinstelling blijven sessies 90 dagen bestaan, en overtredingen 365 dagen. Dit is te configureren of uit te schakelen.

Commando-uitvoer van /grim history in chat
Configuratie
Instellingen zijn verspreid over verschillende YAML-bestanden in de map plugins/Grim/
De parameters die de moeite waard zijn om te bekijken bij de eerste installatie:
Parameter | Bestand | Wat het doet |
| config.yml | Blok offset-drempelwaarde, waarna Simulation wordt aangeduid als een overtreding. Lager — strenger, meer kans op valse positieven tijdens lag. |
| config.yml | Hitbox-expansie voorbij de vanilla-limiet. Een waarde van 0.0005 detecteert een overschrijding vanaf 3.0005 blokken. |
| config.yml | Een extra pakket aan het einde van elke tick dat helpt bij een preciezere detectie van Reach. Komt goed van pas bij 1.8 PvP-servers; anders resulteert dit enkel in onnodig netwerkverkeer. |
| config.yml | Activeert testcontroles. Kan bij voorkeur beter uitstaan tenzij onontbeerlijk. |
| config.yml | De benodigde wachttijd (aangegeven in seconden) voor er sprake is van een automatische speler-kick. |
| config.yml | Schoppen van cliënten verbonden aan problematische Forge-versies 1.18.2–1.19.3. |
| config.yml | Brengt meldingen over tussen backend-servers middels een proxy-schakel. Deze functionaliteit eist een bungee-plugin-message-channel voor werking binnen Velocity. |
| database.yml | Algemene hoofdschakelaar voor de back-up op het gebied van historie. |
| database.yml | De route waar men zijn overtredingen opslaat: sqlite, mysql, postgres, mongo, redis, none. |
De andere beschikbare variabelen gelegen in config.yml (verval-vermenigvuldigers, limieten, of ping-gebonden drempelwaarden gericht op unieke factoren in het proces, hierbij valt te denken aan de firework boost) stemmen zorgvuldig het evenwicht af op de precisie van harde detecties in verhouding tot de gebruikerservaring voor mensen blootgesteld aan stevige pingwaarden. Verreweg de grootste groep netwerkbeheerders laat bovengenoemde aspecten staan op fabrieksinstellingen — die zorgvuldig werden samengesteld met dank aan de bouwer achter deze add-on. Dit functioneert effectief om zo bij de brug tussen accuraat toezicht met daarop het te bewaken tolereren en ruimte te geven ten behoeve van een hoge vertraging en ping.
Conclusie
Grim Anticheat is buitengewoon trefzeker wanneer men zoekt naar detectie in diverse veelvoorkomende wanpraktijken voor wat betreft actie, de sturing, danwel pakketten door effectief uitkomsten voorspelbaar in te schatten in plaats van uitsluitend sjablonen tegen elkaar op te zetten voor toetsing. In lijn met dit specifieke pluspunt geniet de add-on daarmee weerstand omtrent kersverse versies aangaande identieke inbreuken. Reëel nadeel: loopt achter de feiten aan gezien ontbrekende heuristische checks op aim-assist door na te gaan op beweging gerelateerd aan de muis of autoclicks gepeild uit het aantal hits per frequentie — dit is wel beloofd na de komst van de Premium tak, hoewel deze editie nog altijd wegblijft van een officiële release. GrimAC wordt als geschikte component voor servers aangeduid bij plekken met aanwezige intentie in de hoop te breken door gebruik van ongeoorloofde modificaties — noemenswaardig voor zaken op het niveau van PvP-arena’s, kleine-game servers, langere termijn-survivalomgevingen overladen met essentiële grondstoffen, dan wel pure wetteloze anarchy-platformen. Tegenover dit alles kan een klein creatief platform op survival modus waaraan niet meer dan 10 mensen gekoppeld zitten, met zekerheid ervaren dat het pakket overbodig is — puur doordat echte dreiging uitblijft en zodoende wegens dit voorspellend motortje slechts extra kracht ten aanzien van deze servers verloren gaat in verrichte berekeningen zonder nuttig effect.
Installatie
Een typische installatie duurt ongeveer 5 minuten. De stappen zijn gelijk; alleen de loader en de bijbehorende build verschillen.
- 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.











