How grimanticheat/grim works
GrimAC is a Minecraft server anticheat. Server packet events feed per-player state and checks; movement checks compare observed motion against version-aware movement predictions, using a latency-compensated world and inventory replica. Violations can then inform alerts, punishment, and operator commands. Bukkit and Fabric provide server-specific adapters around the shared core. The README documents the major simulation, replication, and compensation capabilities; source excerpts show prediction, player state, platform initialization, and command registration, but do not expose every runtime dispatch.
Main entry points: PredictionEngine.java Movement prediction · GrimPlayer.java Player state · Check.java Anticheat checks · Collisions.java Collision geometry
Components 28
Server integration
- Bukkit adapter
bukkit/src/main/java/ac/grim/grimac/platform/bukkit/BukkitPlatformPlugin.java - Fabric adapters
fabric/shared/src/main/java/ac/grim/grimac/platform/fabric/FabricPlatformServices.java - Platform API
common/src/main/java/ac/grim/grimac/platform/api/player/PlatformPlayer.java - Permission defaults
common/src/main/java/ac/grim/grimac/platform/api/permissions/PermissionDefaultValue.java
Player runtime
- Core lifecycle
common/src/main/java/ac/grim/grimac/GrimAPI.java - Player state
common/src/main/java/ac/grim/grimac/player/GrimPlayer.java - Packet processing
common/src/main/java/ac/grim/grimac/events/packets/CheckManagerListener.java - World replica
common/src/main/java/ac/grim/grimac/events/packets/worldreader/BasePacketWorldReader.java - Inventory tracking
common/src/main/java/ac/grim/grimac/utils/lists/CorrectingPlayerInventoryStorage.java
Detection and response
- Anticheat checks
common/src/main/java/ac/grim/grimac/checks/Check.java - Check manager
common/src/main/java/ac/grim/grimac/manager/CheckManager.java
Simulation internals
- Movement prediction
common/src/main/java/ac/grim/grimac/predictionengine/predictions/PredictionEngine.java - Vehicle prediction
common/src/main/java/ac/grim/grimac/predictionengine/predictions/rideable/PredictionEngineBoat.java - Collision geometry
common/src/main/java/ac/grim/grimac/utils/nmsutil/Collisions.java - Player bounds
common/src/main/java/ac/grim/grimac/utils/nmsutil/GetBoundingBox.java - Movement modifiers
common/src/main/java/ac/grim/grimac/utils/nmsutil/StuckSpeed.java - Motion vectors
common/src/main/java/ac/grim/grimac/utils/data/VectorData.java - Vector math
common/src/main/java/ac/grim/grimac/utils/math/Vector3dm.java - Entity state
common/src/main/java/ac/grim/grimac/utils/data/packetentity/PacketEntity.java - Block properties
common/src/main/java/ac/grim/grimac/utils/nmsutil/BlockProperties.java - Materials
common/src/main/java/ac/grim/grimac/utils/nmsutil/Materials.java - Collision boxes
common/src/main/java/ac/grim/grimac/utils/collisions/datatypes/SimpleCollisionBox.java - Numeric helpers
common/src/main/java/ac/grim/grimac/utils/math/GrimMath.java
Operations
- Logging
common/src/main/java/ac/grim/grimac/utils/anticheat/LogUtil.java - Admin commands
common/src/main/java/ac/grim/grimac/command/CloudCommandService.java - Alerts and punishment
common/src/main/java/ac/grim/grimac/manager/AlertManagerImpl.java
Other components
- Minecraft server
- Server operator
Connections 23
- Minecraft server → Bukkit adapter: hosts plugin
- Minecraft server → Fabric adapters: hosts mod
- Bukkit adapter → Core lifecycle: initializes core
- Fabric adapters → Core lifecycle: initializes core
- Core lifecycle → Player state: manages players
common/src/main/java/ac/grim/grimac/player/GrimPlayer.java - Packet processing → Player state: updates state
common/src/main/java/ac/grim/grimac/events/packets/CheckManagerListener.java - Packet processing → World replica: tracks world packets
- Player state → Inventory tracking: tracks inventory
common/src/main/java/ac/grim/grimac/utils/lists/CorrectingPlayerInventoryStorage.java - Player state → Check manager: owns checks
common/src/main/java/ac/grim/grimac/manager/CheckManager.java - Check manager → Anticheat checks: dispatches checks
common/src/main/java/ac/grim/grimac/manager/CheckManager.java - Anticheat checks → Movement prediction: checks movement
- Movement prediction → Player state: reads state
common/src/main/java/ac/grim/grimac/predictionengine/predictions/PredictionEngine.java - Movement prediction → Motion vectors: builds candidates
common/src/main/java/ac/grim/grimac/predictionengine/predictions/PredictionEngine.java - Movement prediction → Collision geometry: tests movement
common/src/main/java/ac/grim/grimac/predictionengine/predictions/PredictionEngine.java - Collision geometry → World replica: reads replica
common/src/main/java/ac/grim/grimac/utils/nmsutil/Collisions.java - Collision geometry → Collision boxes: uses geometry
common/src/main/java/ac/grim/grimac/utils/nmsutil/Collisions.java - Movement prediction → Movement modifiers: applies modifiers
common/src/main/java/ac/grim/grimac/predictionengine/predictions/PredictionEngine.java - Vehicle prediction → Movement prediction: extends engine
common/src/main/java/ac/grim/grimac/predictionengine/predictions/rideable/PredictionEngineBoat.java - Vehicle prediction → Player bounds: computes bounds
common/src/main/java/ac/grim/grimac/predictionengine/predictions/rideable/PredictionEngineBoat.java - Motion vectors → Vector math: stores motion
common/src/main/java/ac/grim/grimac/utils/data/VectorData.java - Server operator → Admin commands: runs commands
common/src/main/java/ac/grim/grimac/command/CloudCommandService.java - Admin commands → Alerts and punishment: manages alerts
- Anticheat checks → Alerts and punishment: reports violations