Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
TruthfulAC
TruthfulAC was a paid plugin. Then it wasn't. The license key is gone, the obfuscation is gone, and the full source is public because a free anti-cheat that's actually good does more for the community than another plugin sitting behind a paywall.
The open source AC space has movement covered. Grim exists. What it doesn't have is combat detection worth using. TruthfulAC fills that gap with GCD analysis, aim consistency tracking, statistical autoclicker detection, and a simulation-based movement engine that handles the edge cases most free plugins ignore entirely.
Use it. Fork it. Contribute to it.
⚙️ Installation
- Drop PacketEvents into
/plugins/ - Drop
TruthfulAC.jarinto/plugins/ - Restart
No license key. No activation. No account. That's it.
🛡️ Checks
🏃 Movement
Simulation — The core of the plugin. A full server-side physics engine that predicts where a player should be every tick and compares it against what was actually sent.
| Check | Description |
|---|---|
| Simulation A | Validates vertical and horizontal movement against the server's compensated physics model. Catches fly, bhop, and speed across virtually every movement state |
| Simulation B | Covers elytra abuse and hard speed cap violations that slip past the primary simulation |
| Simulation C | Per-state movement validation targeting context-specific exploits within individual movement tags like swimming, climbing, and vehicle states |
| Simulation D | Supplementary movement validation for edge cases and transitional movement states not covered by A through C |
NoFall / Ground Spoof — Six checks targeting every known variant of fake ground state packets used to suppress fall damage.
| Check | Description |
|---|---|
| GroundSpoof B | Flags ground state claims at Y positions that don't align to any valid block surface |
| GroundSpoof C | Catches clients claiming ground while actively falling, covering the standard NoFall packet |
| GroundSpoof D | Blocks ground state claims at impossible Y positions including negative coordinates and void level |
| GroundSpoof E | Tracks accumulated server-side fall distance and flags when expected fall damage is suppressed |
| GroundSpoof F | Cross-references the client's ground claim against actual block collision state in the world cache |
| GroundSpoof G | Detects rapid ground state pulsing with no corresponding movement, a pattern produced by specific NoFall configurations |
Velocity — Detects anti-knockback by tracking whether players actually apply velocity after acknowledging it via transaction packets.
| Check | Description |
|---|---|
| Velocity A | Flags immediate velocity non-acceptance where players acknowledge the transaction but show no horizontal response on tick one |
| Velocity B | Catches vertical velocity suppression, specifically upward knockback from explosions and jumps |
| Velocity C | Extended horizontal velocity check covering ticks two and three post-acknowledgement for delayed anti-KB configurations |
| Velocity D | Detects near-zero velocity yield on both axes simultaneously, targeting configs that reduce all knockback without fully zeroing it |
Other Movement
| Check | Description |
|---|---|
| Timer A | Transaction-based tick timing that detects timer speed hacks by measuring real time against packet acknowledgement balance rather than system clock, avoiding false flags on lagging players |
| Baritone A | Detects the rotation snap density pattern produced by Baritone's pathfinder during automated navigation |
| Baritone B | Identifies robotic mining patterns with systematic block targeting consistent with automated pathfinding and not human play |
| Baritone C | Flags suspiciously consistent block break intervals over time, another signature of automated mining bots |
| Inventory A | Detects players sending inventory click packets while simultaneously sending movement updates, something vanilla clients never do |
⚔️ Combat
Aim — Ten checks covering every major approach to aimbot detection including GCD analysis, acceleration profiling, entropy measurement, temporal quantization, and statistical modeling.
| Check | Description |
|---|---|
| Aim A | GCD grid analysis that validates rotation steps align with the quantization pattern of a real mouse sensitivity setting |
| Aim B | Detects sudden large rotation snaps in combat context that exceed what human flicking produces |
| Aim D | Flags zero or near-zero rotational acceleration across both axes, the signature of a constant-speed linear aimbot |
| Aim E | Low entropy detection that identifies rotation distributions too uniform and consistent to be human |
| Aim F | Temporal quantization that detects rotation timing intervals suspiciously consistent with programmatic input |
| Aim G | Jerk analysis measuring the third derivative of rotation. Aimbots produce near-zero jerk; human aim does not |
| Aim H | Target lock detection that tracks oscillation pattern around a target's position over time, characteristic of lock-on aimbots |
| Aim I | Bayesian aim classifier combining GCD, acceleration, and efficiency signals into a probability score for synthetic aim |
| Aim J | Jitter pattern analysis that detects artificial jitter overlays failing to produce natural direction change distributions |
| Aim K | Input grid mismatch that flags rotations not conforming to any plausible mouse sensitivity grid |
| Aim L | Axis lock and robotic linearity detection for pitch that doesn't move while yaw rotates, and constant yaw-to-pitch ratio across multiple ticks |
KillAura — Seven checks targeting KillAura from multiple angles covering movement, rotation, attack behavior, and targeting patterns.
| Check | Description |
|---|---|
| KillAura B | Detects sprinting in directions inconsistent with the player's look vector during attacks and flags KeepSprint behavior |
| KillAura C | Snap and stop detection identifying the rotation pattern where aim snaps to a target and immediately stops moving |
| KillAura D | Silent aim and pitch lock catching KillAura configs that attack without rotating or lock pitch to a fixed value |
| KillAura E | Wall hit detection flagging attacks landing on entities through solid blocks using async raytrace validation |
| KillAura F | Packet crit detection identifying the mini-jump pattern used by some KillAura configs to guarantee critical hits |
| KillAura G | Multi-target switching detection for attacking multiple distinct entities within an impossibly short time window |
| KillAura H | Attack interval variance flagging players whose hit timing is too consistent across a window of attacks to be human |
AutoClicker — Five checks approaching click detection from independent statistical angles.
| Check | Description |
|---|---|
| AutoClicker A | Coefficient of variation analysis flagging click timing distributions with suspiciously low variance relative to their mean CPS |
| AutoClicker B | Identical delay streaks detecting consecutive clicks with nearly identical inter-click timing, a sign of software-generated input |
| AutoClicker C | Hard CPS cap flagging players sustaining clicks above the threshold achievable with legitimate hardware |
| AutoClicker D | Hardware double-click detection identifying clicks arriving under 8ms apart, below the threshold of any human input device |
| AutoClicker E | GCD grid lock on click delays detecting timing patterns that align to a software-generated quantization grid |
Other Combat
| Check | Description |
|---|---|
| Reach A | Compensated reach validation checking attack distance using backtracked entity positions, accounting for ping and latency |
| Hitbox A | Validates that attacks land on the actual server-side hitbox rather than an expanded client-side version |
| Raycast A | Checks attack and interaction direction against the server's view vector and flags attacks through walls and at impossible angles |
| CrystalAura A | Detects rapid end crystal place-to-break sequences and zero-tick crystal ID prediction |
| AnchorAura A | Flags respawn anchor charge-to-explode sequences faster than any human interaction can produce |
📦 World & Blocks
| Check | Description |
|---|---|
| Scaffold A | Validates block placement angle against the player's actual rotation and flags impossible rotation-independent placements used by scaffold hacks |
| FastBreak A | Compares block break time against the server's calculated required time and catches mining faster than the server tick rate allows |
| Phase A | Cross-references player position against the world block cache and flags players positioned inside solid blocks |
📡 Packets
BadPacket — Catches malformed, impossible, or exploit-triggering packets before they reach the rest of the server.
| Check | Description |
|---|---|
| BadPacket A | Packet flood detection flagging clients sending an abnormal volume of packets per second |
| BadPacket C | Fast bow release detecting bow release packets arriving before a minimum draw time has elapsed |
| BadPacket D | Invalid entity interaction flagging attacks targeting negative entity IDs or entities that don't exist on the server |
| BadPacket E | Self-interaction detection for players sending attack packets targeting their own entity ID |
| BadPacket G | NaN and infinite position flagging position packets containing non-finite coordinate values |
| BadPacket H | Invalid hotbar slot catching slot change packets with values outside the valid 0 through 8 range |
| BadPacket I | Position spam detecting duplicate position packets sent within a short window with identical coordinates |
| BadPacket J | Impossible state flagging players sending simultaneous sneak and sprint for longer than any valid transition allows |
| BadPacket K | Negative transaction ID and invalid window ID catching malformed container interaction packets |
Sprint
| Check | Description |
|---|---|
| Sprint A | OmniSprint under blindness or hunger, detecting sprinting when the server state makes it physically impossible |
| Sprint B | OmniSprint direction flagging sprinting more than 90 degrees away from the player's look vector |
Packet Order — Validates that packets arrive in the sequence a vanilla client would send them.
| Check | Description |
|---|---|
| PacketOrder A | Block placement without a preceding arm swing animation packet |
| PacketOrder B | Attacking while a use-item action is active, which is impossible in vanilla |
| PacketOrder C | Crystal automation with multiple crystal operations in the same tick |
| PacketOrder D | NoSwing detection for attack packets sent with no animation packet preceding them |
| PacketOrder E | Inventory aura detection for attack packets arriving while the player has a container open |
Other Packets
| Check | Description |
|---|---|
| Invalid A | Pitch outside the ±90 degree hard limit, an impossible value no vanilla client sends |
| Crasher A | Plugin channel payload overflow for oversized or malformed plugin message packets used in crash exploits |
| Timer A | Transaction-based timer detection, see Movement section above |
🪨 Bedrock
Dedicated checks for Geyser-translated Bedrock players. All thresholds are tuned to account for Geyser's packet batching and translation overhead. Bedrock players never run Java physics checks.
| Check | Description |
|---|---|
| BFly (A) | Detects sustained hover or upward movement while airborne beyond what any valid Bedrock mechanic produces |
| BSpeed (A) | Hard speed cap validation flagging ground and air speed exceeding the maximum possible for Bedrock players through Geyser |
| BReach (A) | Reach distance validation against backtracked entity positions with a lenient threshold appropriate for Bedrock latency |
🔧 Contributing
The bar is simple: if it catches real cheats without flagging real players, it belongs here. If it doesn't, it doesn't.
Movement check improvements are the current priority. Combat contributions are welcome. Every PR needs a clear explanation of what the check detects, what angle it approaches from, and why existing checks don't already cover it.
Not interested in:
- Checks that false flag more than they catch
- Low-effort ports of other public implementations
- PRs with no explanation of what changed or why
Hit 30 meaningful contributions and you get a named credit in the plugin's in-game GUI. That's the whole reward system.
❓ Why open source?
Grim has been fully public for years. Intave open-sourced before shutting down. Neither handed cheaters a free bypass guide. Open source means the community can verify what the plugin is actually doing, fix what's broken, and build on it without waiting on one developer. A paywall protects revenue but it doesn't protect detection logic from people who are already deobfuscating your jar anyway.
Transparent beats closed. Always.
📄 License
Truthful & Faithful License v1.0 — free to use, study, modify, and contribute. Cannot be sold, monetized, or redistributed under a different license.


