Grim Anticheat — plugin anticheat pour Minecraft
Grim Anticheat est un plugin anticheat open-source pour Minecraft qui empêche la triche par simulation de mouvement plutôt que par modèles.
Grim Anticheat est un plugin anticheat open-source pour Minecraft qui empêche la triche par simulation de mouvement plutôt que par modèles.
Grim Anticheat — plugin anticheat pour Minecraft
Java : 17 ou plus récent
Versions de Minecraft prises en charge : 1.8 – 26.1.2
Version du plugin : 2.3.74
Grim Anticheat (GrimAC) est un anticheat de serveur open source pour Minecraft sous licence GPL-3.0. Le plugin fonctionne en simulant les mouvements des joueurs plutôt qu'en les comparant à des modèles de comportement fixes, ce qui le distingue de la plupart des alternatives gratuites.
Sa tâche principale est de détecter les modifications client non autorisées qui offrent des avantages injustes au combat, dans les mouvements ou lors des interactions avec les blocs. Le plugin lui-même ne bannit pas les joueurs — il enregistre l'infraction et transmet l'exécution de la sanction à un autre plugin (LiteBans, AdvancedBan ou toute commande personnalisée via la configuration).
Approche : prédiction de mouvement au lieu de modèles
Les anticheats gratuits classiques s'appuient sur des modèles de comportement préenregistrés. Cette méthode a une limite évidente — chaque mise à jour de modification peut potentiellement contourner la détection jusqu'à ce qu'un nouveau modèle soit ajouté à la base de données.
GrimAC, en revanche, intègre un Movement Simulation Engine. Le serveur calcule exactement où un joueur pourrait se trouver à un tick de jeu spécifique, en tenant compte des blocs environnants, des effets de potions, des toiles d'araignée, des colonnes de bulles, des bateaux, des cochons, des arpenteurs, des élytres et de dizaines d'autres situations. Si le client envoie des coordonnées qui dépassent ce qui est physiquement possible, la vérification Simulation se déclenche et calcule le décalage en blocs.
De plus, le plugin conserve une copie personnelle du monde pour chaque joueur. Les chunks sont compressés à 16–64 Ko à l'aide de palettes, ce qui rend le cache assez léger même avec plus de 200 joueurs en ligne. Cette architecture traite en toute sécurité les faux blocs placés par d'autres plugins via des paquets.

Sortie de la commande /grim help dans le chat
Vérifications
Les vérifications sont divisées en groupes fonctionnels. Les noms proviennent du code source — les administrateurs les voient dans /grim verbose et dans les messages webhook. Les noms eux-mêmes ne sont pas les noms des modifications interdites — c'est la classification interne du plugin.
Mouvement
Simulation — la vérification principale. Détecte toute modification de la position du joueur qui ne correspond pas à une trajectoire physiquement possible : accélération non autorisée, déplacement sans support, déplacement à travers les blocs.
Timer, TimerLimit, NegativeTimer, VehicleTimer — détectent l'accélération du temps interne du client. C'est la base des modifications qui accélèrent la consommation d'objets et le tir à l'arc. Le seuil de détection est d'environ 1.005× la vitesse normale du temps — beaucoup plus précis que la plupart des alternatives gratuites.
NoFall — falsification de l'état de chute. Une modification envoie un faux onGround=true pour annuler les dégâts de chute ; la vérification le détecte.
Phase — déplacement à travers un bloc solide. Le comportement de base des modifications qui permettent de traverser les murs ou de pénétrer dans des zones protégées.
Combat
Reach — attaque au-delà de la distance maximale autorisée.
Hitboxes — attaque en dehors de la véritable hitbox de la cible.
Knockback, Explosion — le client ignore l'impulsion des coups ou des explosions.
Aim, Interact — rotation incorrecte de la tête avant un coup, interactions physiquement impossibles.
Paquets et placement de blocs
BadPackets, PacketOrder, Crash — ordre incorrect des paquets, tentatives de faire planter le serveur avec des paquets intentionnellement malformés.
NoSlow — le joueur ne ralentit pas en mangeant, en tirant à l'arc, en utilisant un bouclier ou en rampant dans des toiles d'araignée.
Groupe de vérification du placement de blocs — détecte le placement d'un bloc lorsqu'il est physiquement impossible de le faire : trop loin, dans une direction inaccessible, en l'air sans support.
Baritone — le modèle de mouvement des robots assistants automatisés.
Exploit — exploits individuels, comme l'abus du Sprint-Jump avec des élytres.
Principales commandes d'administration
Commande | Objectif |
| Liste des commandes avec de brèves descriptions |
| Activer ou désactiver les alertes dans le chat |
| Afficher chaque flag sans tampon ni seuils |
| Version du client, marque (Vanilla/Fabric/Lunar/Forge), sensibilité de la souris, statut FastMath |
| Historique paginé des sessions et des infractions depuis la base de données |
| Passer en mode spectateur et se téléporter vers un joueur |
| Retourner à la position précédente |
| Télécharger le journal de débogage pour un ID de flag spécifique |
| Recharger toutes les configurations, réinitialiser les infractions actives |
| Mode développeur : prédiction vs mouvement réel avec décalage |
| Tester le webhook Discord sans attendre une véritable infraction |

Sortie de la commande /grim profile dans le chat — version du client, marque, sensibilité de la souris et statut FastMath du joueur
Alertes et sanctions
Chaque vérification possède son propre compteur d'infractions, qui diminue progressivement avec le temps. C'est crucial : un court lag ou un bug aléatoire ne s'accumule pas pour former un bannissement permanent, et la réaction ne se déclenche que sur des infractions constantes. La réaction elle-même est définie par l'administrateur — pour chaque groupe de vérifications, il est précisé à quelle infraction et à quelle fréquence exécuter une commande.
La logique est la suivante : spécifiez le numéro d'infraction qui déclenche la réaction, et l'intervalle — à quelle fréquence elle se répétera par la suite. L'entrée 100:0 kick %player% signifie que le joueur recevra un coup de pied (kick) exactement à la 100e infraction, et la commande ne s'exécutera plus. L'entrée 5:3 [alert] se déclenchera à la 5e infraction, puis à la 8e, la 11e, et ainsi de suite — l'alerte sera envoyée dans le chat en jeu aux joueurs disposant de l'autorisation.
La commande peut être remplacée par la propre balise de service de Grim ([alert] — message dans le chat, [log] — journal de la console et de la base de données, [webhook] — message Discord, [proxy] — transfert vers d'autres serveurs backend), ou toute commande de console du serveur. Les variables disponibles incluent le pseudo du joueur, le nom de la vérification et le nombre d'infractions (placeholders standard). De ce fait, Grim se connecte aux plugins de bannissement externes sans aucun pont supplémentaire.
Webhooks Discord
GrimAC dispose d'une intégration intégrée pour l'envoi de notifications à Discord. L'apparence du message est entièrement personnalisable — de la couleur de l'embed aux champs exacts à afficher. Dans un message prêt, vous pouvez voir le pseudonyme du joueur, le nom de la vérification, le nombre d'infractions, la version et la marque du client, le ping actuel et les tps du serveur au moment de l'événement. Il prend en charge à la fois les canaux réguliers et les canaux de forum Discord. Il est fortement recommandé de vérifier la configuration au préalable — la commande /grim testwebhook envoie un message de test sans avoir à attendre une véritable infraction.
Mods clients incompatibles
Le wiki officiel maintient une liste séparée de mods qui cassent les mécaniques de la version vanilla ou provoquent des faux positifs. La liste n'est pas exhaustive et est mise à jour sur la page "Known incompatible client mods" dans le wiki GitHub du plugin. Si un joueur déclenche des flags massifs avec un ping stable et aucun autre signe d'infraction, la première hypothèse est un mod client issu de cette liste.
Stockage de l'historique des infractions
GrimAC maintient une base de données d'historique liée aux sessions. Une session est une connexion unique d'un joueur au serveur. La commande /grim history <joueur> affiche : quand le joueur s'est connecté, combien de temps a duré la session, combien d'infractions se sont produites, depuis quel client, avec une répartition par vérification.
Backends pris en charge : SQLite (par défaut, fichier local data/history.v1.db), MySQL, PostgreSQL, MongoDB, Redis. SQLite est suffisant pour un seul serveur. Pour un réseau avec plusieurs instances Grim, un backend réseau avec une base de données partagée est nécessaire — généralement MySQL ou Postgres.
De plus, il y a la rétention — suppression automatique des anciens enregistrements. Par défaut, les sessions vivent 90 jours et les infractions 365 jours. Cela peut être configuré ou désactivé.

Sortie de la commande /grim history dans le chat
Configuration
Les paramètres sont répartis dans plusieurs fichiers YAML dans le dossier plugins/Grim/.
Les paramètres auxquels il vaut vraiment la peine de prêter attention lors de la configuration initiale :
Paramètre | Fichier | Ce qu'il fait |
| config.yml | Seuil de décalage des blocs, après lequel la simulation est considérée comme une infraction. Plus bas — plus strict, plus de faux positifs sur le lag. |
| config.yml | Expansion de la hitbox au-delà de la limite vanilla. 0.0005 détecte le dépassement de 3.0005 blocs. |
| config.yml | Un paquet supplémentaire à la fin de chaque tick pour une détection plus précise de la portée (Reach). Utile sur les serveurs PvP 1.8 ; sinon crée un trafic inutile. |
| config.yml | Active les vérifications de test. Il vaut mieux ne pas l'activer sauf si nécessaire. |
| config.yml | Délai d'attente en secondes avant d'expulser automatiquement un joueur. |
| config.yml | Expulser les clients utilisant des versions de Forge problématiques 1.18.2–1.19.3. |
| config.yml | Transférer les alertes entre les serveurs backend via un proxy. Nécessite bungee-plugin-message-channel dans Velocity. |
| database.yml | Interrupteur principal pour la sauvegarde de l'historique. |
| database.yml | Où écrire les infractions : sqlite, mysql, postgres, mongo, redis, none. |
Le reste des paramètres dans config.yml (multiplicateurs de déclin, plafonds, limites de ping pour des mécanismes spécifiques comme le firework boost) calibrent avec précision l'équilibre entre une détection stricte et le confort des joueurs avec un ping élevé. La plupart des administrateurs les laissent par défaut — ils ont été équilibrés par l'auteur du plugin comme un compromis entre la précision et la tolérance à un ping élevé.
Conclusion
Grim Anticheat détecte les violations les plus courantes de mouvement, de combat et de traitement des paquets en prédisant les mouvements possibles plutôt qu'en les comparant avec des modèles. Grâce à cela, le plugin est résilient aux nouvelles versions des mêmes modifications. Véritable limitation : l'absence de vérifications heuristiques pour l'aide à la visée en fonction du mouvement de la souris et l'auto-clic par fréquence de clics — celles-ci sont promises dans la branche Premium, qui n'est pas encore sortie. GrimAC convient aux serveurs où il y a une réelle motivation pour utiliser des modifications non autorisées — arènes PvP, réseaux de mini-jeux, serveurs de survie avec des ressources précieuses, serveurs d'anarchie. Pour une petite survie créative avec 10 amis, le plugin est disproportionné — sans risque sérieux d'infractions, le moteur de prédiction consomme simplement des ressources serveur.
Installation
Une installation classique prend environ 5 minutes. Le déroulé est le même ; seuls le loader et le build correspondant changent.
- 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.











