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.
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.
Requires: PacketEvents 2.14.0+ Β· Java 21+ Β· Minecraft 1.20.4 through 26.3
π‘οΈ Checks
π Movement
Simulation β The core of the plugin. A collision-aware physics engine that predicts where a player should be every tick and compares it against what was actually sent. Resolves every candidate through real block collision, uses the client's exact input state on 1.21.2+, and applies tolerance only from physical uncertainty sources β never arbitrary padding.
Catches fly, bhop, speed, airwalk, hover, micro-jumps, slow-fly, elytra abuse, liquid movement, and vehicle exploits across virtually every movement state.
| Check | Description |
|---|---|
| Simulation | One unified verdict over the entire engine: collision-resolved candidates, knockback models, bounce restitution, fluid heights, piston windows, geyser columns, and sustained-climb pattern detection |
Ground Spoof / NoFall β Six checks targeting every known variant of fake ground state packets used to suppress fall damage.
| Check | Description |
|---|---|
| GroundSpoof B | Flags ground claims at Y positions that don't align to any valid block surface |
| GroundSpoof C | Catches clients claiming ground while actively falling |
| GroundSpoof D | Blocks ground claims at impossible Y positions including void level |
| GroundSpoof E | Tracks accumulated server-side fall distance and flags suppressed fall damage |
| GroundSpoof F | Cross-references the client's ground claim against actual block collision state |
| GroundSpoof G | Detects ground state pulsing with no corresponding movement |
Velocity β Detects anti-knockback by tracking whether players actually apply velocity after acknowledging it via transaction packets.
| Check | Description |
|---|---|
| Velocity A | Flags horizontal velocity non-acceptance, accounting for the player's own input fighting the knockback |
| Velocity B | Catches vertical velocity suppression, specifically upward knockback |
| Velocity C | Extended decay check covering delayed anti-KB configurations |
| Velocity D | Detects near-zero velocity yield on both axes simultaneously |
Other Movement
| Check | Description |
|---|---|
| Timer A | Transaction-anchored tick timing that detects timer hacks by measuring against the client's own acknowledgement clock, immune to TPS fluctuation |
| Baritone A | Detects the rotation snap density pattern produced by Baritone's pathfinder |
| Baritone B | Identifies robotic mining patterns with locked-camera block targeting |
| Baritone C | Flags suspiciously consistent block break intervals |
| Inventory A | Detects inventory clicks while simultaneously sending movement updates |
βοΈ Combat
Aim β Three checks built on GCD sensitivity analysis. Deliberately minimal: this is a free anti-cheat, and we're not handing cheat developers a spec to tune against.
| Check | Description |
|---|---|
| Aim A | GCD analysis validating rotation steps map to a real vanilla sensitivity |
| Aim B | Detects valid-step but off-grid rotations (aim assist faking sensitivity) |
| Aim C | Flags constant-rotation streaks β humanly impossible sustained identical deltas |
KillAura β Seven checks targeting KillAura from movement, rotation, attack behavior, and targeting patterns.
| Check | Description |
|---|---|
| KillAura B | Detects sprinting inconsistent with the look vector during attacks (KeepSprint) |
| KillAura C | Snap-and-stop detection: aim snaps to target and immediately stops moving |
| KillAura D | Silent aim and pitch lock |
| KillAura E | Wall hit detection using the compensated world cache |
| KillAura F | Packet crit detection identifying the mini-jump pattern |
| KillAura G | Multi-target switching within impossibly short windows |
| KillAura H | Attack interval variance too consistent to be human |
AutoClicker β Five checks approaching click detection from independent statistical angles.
| Check | Description |
|---|---|
| AutoClicker A | Coefficient of variation analysis flagging low-variance click timing |
| AutoClicker B | Identical delay streaks detecting consecutive clicks with near-identical timing |
| AutoClicker C | Hard CPS cap |
| AutoClicker D | Sub-8ms double-click detection |
| AutoClicker E | GCD grid-locked click delays |
Reach & Hitbox β Two-stage, latency-fair. The attack packet doesn't carry the rotation the client swung with β that arrives one packet later. Stage A stores the attacker's position; Stage B ray-casts with the real rotation against the compensated hitbox history across the full round-trip window, trying all look variants and eye heights.
| Check | Description |
|---|---|
| Reach A | Two-stage compensated reach with attribute-aware ranges and no arbitrary tolerance padding |
| Hitbox A | The "didn't even touch it" verdict β routed from the same single raycast when the ray misses every legal view of the target |
Other Combat
| Check | Description |
|---|---|
| Raycast A | Attack and interaction direction against the server's view vector |
| Lag A | Backtrack pattern detection: current-frame out-of-reach combined with historical-frame in-reach (delayed packet abuse) |
| Lag B | Entity desync interpolation hit patterns |
| Lag C | Ping/violation correlation across ping bins |
| CrystalAura A | Rapid end crystal place-to-break sequences |
| AnchorAura A | Respawn anchor charge-to-explode timing |
π¦ World & Blocks
Four physics-anchored scaffold checks β each one geometry-gated, not statistical guessing.
| Check | Description |
|---|---|
| Scaffold Rotation | Placement line-of-sight: the view ray must actually intersect the placed block |
| Scaffold Reach | Placement distance vs the attribute-aware block interaction range |
| Scaffold Motion | Tower metronome physics β jump-strength-scaled threshold so Jump Boost users never false |
| Scaffold Face | Ghost/desync placement into occupied solid cells |
| Check | Description |
|---|---|
| FastBreak A | Block break time vs the server's calculated required time |
| Phase A | Players positioned inside solid blocks |
π‘ Packets
BadPacket β Catches malformed, impossible, or exploit-triggering packets. 25 checks covering flying without permission, NaN positions, teleport floods, entity action spam, invalid slots, self-interaction, and more.
Packet Order β Validates packet sequences a vanilla client would send: block placement without swing, attacking while using items, crystal automation, NoSwing, and inventory aura.
Sprint
| Check | Description |
|---|---|
| Sprint A | OmniSprint under blindness or hunger |
| Sprint B | OmniSprint direction flagging sprinting backwards from the look vector |
Other Packets
| Check | Description |
|---|---|
| Invalid A | Pitch outside Β±90Β° |
| Crasher A | Plugin channel payload overflow |
πͺ¨ Bedrock
Dedicated checks for Geyser-translated Bedrock players. All thresholds tuned for Geyser's packet batching and translation overhead. Bedrock players never run Java physics checks. Detection covers username prefix, Floodgate UUIDs, and Geyser client brands.
| Check | Description |
|---|---|
| BFly (A) | Sustained hover or upward movement beyond any valid Bedrock mechanic |
| BSpeed (A) | Hard speed cap appropriate for Bedrock through Geyser |
| BReach (A) | Reach distance with a lenient threshold for Bedrock latency |
π World & 26.x Support
- 26.3 β shelf mushrooms, straw beds, poplar wood set, wool/concrete stairs and slabs, sulfur geysers
- 26.2 β the three new movement attributes (
air_drag_modifier,bounciness,friction_modifier), the revised ground accel formula for high-friction blocks, bed bounce at 75% - Transaction-bracketed block updates β block changes apply to each player's world view only when their client confirms processing them. The engine always simulates the world the player actually sees.
- Dynamic fence and wall shapes β connection arms generated from block state properties, not a static post
- Fluid height model β
(8βlevel)/9with proper gating for swim-hop and jump-out candidates
π§ Configuration
Two files, split by concern:
- config.yml β plugin settings: alerts, messages, punishments, lagback profile, latency kicker, client blocker, Discord webhooks, banwave schedule
- checks.yml β every detection: per-check toggles, lagback inheritance (
inherit/true/false), punishment thresholds and commands, per-type tuning keys
Per-check lagback inherits the global profile by default, or forces on/off with its own VL. The in-game GUI cycles through Inherit β On β Off per check. Zero YAML reads on the movement hot path.
π οΈ Debug Output
Every flag carries full diagnostic state: input booleans, ground states, active regimes, knockback vector, the engine's predicted motion vector, block column, and the support probe result. A single flag line tells you exactly what the engine was thinking when it fired β no guessing, no blind debugging.
π§ Contributing
Movement check improvements are the priority. Every PR needs a clear explanation of what it 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.
Hit 30 meaningful contributions and you get a named credit in the plugin's in-game GUI.
β Why open source?
Transparent beats closed. Always.
π License
Truthful & Faithful License v1.1 β free to use, study, modify, and contribute. Cannot be sold or redistributed under a different license.
GitHub Β· Discord Β· Changelog
β οΈ This is a beta release. Expect weird edge cases. Found one? Report it on GitHub with the full flag debug line.


