
Grim Anticheat: Full Guide to Server Security in 2026
"Fully async, multithreaded, predictive, open source, 3.01 reach, 1.005 timer, 0.01% speed, 99.99% antikb, "bypassable" 1.8-1.21 minecraft anticheat."
GrimAnticheat/Grim · github.com
Running a Minecraft server means dealing with cheaters. Reach cheaters. Speed hackers. The usual. Grim is an open source anticheat designed to catch what other tools miss, and it's free to install on any modern server running Java 17+.
What Grim Actually Does
Grim doesn't work like traditional anticheats that react to suspicious behavior after the fact. Instead, it predicts what a legitimate player should be able to do given their current position, ping, and game state, then flags violations when reality doesn't match. This predictive approach catches reach hackers (which Grim claims it stops at 3.01 blocks), speed modifications, and timer attacks (at 1.005 speed detection).
The project sits on GitHub with 1574 stars and is maintained actively. Written in Java, fully async and multithreaded, so it won't tank your server's tick rate even with hundreds of players online. Supports everything from 1.8 all the way up to 1.21.10 and 1.21.11.
Why You'd Actually Use Grim
Let's be honest. Managing a survival server is work. You've got players like adderall_abuser mining obsessively, ironmouse building massive projects, and testuser just showing up to cause chaos. The last thing you need is someone flying around one-tapping people or speed-mining diamonds through stone.
Most public anticheats either spam false positives (so you're constantly whitelisting legit players) or miss the obvious stuff. Grim sits somewhere in the middle on its own terms. It claims a 0.01% false positive rate for speed detection and 99.99% accuracy on knockback detection, which means it's built for precision rather than breadth. The tradeoff is that you'll need to tune your server's lag threshold to match your network, not the other way around.
And here's the thing: it's open source. You can see exactly what checks are running. When joakim2tusen gets flagged and swears they weren't cheating, you can actually investigate the violation logs and code. Unlike commercial anticheats that are black boxes.
Getting Grim Running
First, grab Java 17 or higher. You'll need it. Then download the latest Grim build from Modrinth (recommended) or grab the nightly artifacts from GitHub.

Drop the jar into your plugins folder.
plugins/
├── Grim.jar
└──... other plugins
Restart your server. Grim will create a config file automatically.
For proxy setups (Velocity, BungeeCord), there are a few gotchas. If you're using Geyser for crossplay with consoles, you'll need Floodgate installed on the backend server where Grim actually lives, not on the proxy. This is so Grim can tell Geyser players apart from regular players (they get a free pass to avoid false positives on input lag). If you're using ViaVersion, install it on the backend only. Installing it on the proxy will break Grim's packet reading entirely.
How Grim Detects Cheaters
The core of Grim is its detection model. Here's what it's actually checking:
Reach detection catches players clicking too far. When someone tries to hit you from 3.01 blocks away, Grim sees it. The calculation accounts for their hitbox, your hitbox, their position, and lag. It's not just a flat distance check.
Speed detection looks for movement that's faster than the player's hunger or sprint status allows. Grim factors in lag and motion, so someone with high ping won't get falsely flagged for normal gameplay. It claims 0.01% false positives here, meaning it's strict about what counts as a speed hack.
Timer checks catch players running the game loop faster than 20 ticks per second. This catches subtle timer hacks that make combat feel weird even if the player isn't obviously speed-hacking. And if housecz_zero starts taking damage faster than physics allows, Grim catches that too.
Knockback prediction is genuinely wild. Grim calculates where you should be knocked back to based on the damage source, your position, and the attacker's strength, then flags if your next packet shows you somewhere impossible. It says 99.99% accuracy here.
The latest release added PostgreSQL support if you want to store violation logs in a real database instead of just flat files. It also improved Discord webhook integration, so violations can post directly to a forum channel with custom formatting and timestamps.
Fine-Tuning for Your Server
Out of the box, Grim works. But you'll want to tweak it.

The main config lives in plugins/Grim/config.yml. Set your server's average player lag threshold. If most of your players have 40ms ping, set lag to 40. If you're on a local network and ping is 5ms, set it to 5. Grim uses this to calculate whether movement is genuinely impossible or just lag-induced.
You can customize violation thresholds per check. Some admins bump the reach threshold to 3.1 blocks if they get false positives on fast-clicking PvP. You can also set commands that run when violations hit certain thresholds, like kicking at 100 violations or logging to Discord at 50.
One thing people miss: Grim exemption flags. You can whitelist specific players or add them to a bypass list if they need it for legitimate reasons (maybe they're testing something, or maybe their internet is genuinely terrible). Just use the command and move on.
For large servers with hundreds of players, enable the multithreaded packet handler. It's in the config under threading. This distributes anticheat checks across CPU cores instead of running everything on the main thread.
What Trips People Up
False positives happen when your lag threshold is wrong. If you set it to 5ms but half your players have 80ms ping, you'll flag legitimate players constantly.
Another one: ViaVersion on the proxy. This wbut it's worth repeating because people do it anyway. It'll break packet reading entirely. Install ViaVersion only on the backend.
Geyser needs Floodgate for the same reason. If you forget Floodgate, Grim will flag Geyser players constantly because it can't identify them as cross-platform players exempt from checks. Pretty annoying if you support bedrock players.
The third common thing: not updating when new Minecraft versions drop. Grim stays current pretty well (1.21.10 support came fast), but you still need to grab the update jar and restart. And here's where people get sloppy - they're running a version from 2024 and wondering why it doesn't work on 1.21. Update the jar. That's it.
How It Stacks Against Alternatives
There's NeoAntiCheat out there, which is also open source. There's Spartan and AntiAura if you want proprietary options. Grim's advantage is that it's free, open source, actively maintained, and has solid accuracy claims. The downside: it's not as feature-rich as premium anticheats yet. No heuristic detection (though a premium tier with those checks is planned).
For most servers, Grim is the right call. If you're running a massive public server and need every possible edge, you might layer a second anticheat on top. But that's overkill for most people running vanilla survival.
The Real Takeaway
Grim is genuinely impressive for a free tool. It thinks in terms of physics and prediction rather than just pattern matching, which is why it catches reach hacks and timer hacks that other tools miss. You'll spend maybe 30 minutes setting it up right, tuning lag thresholds, and integrating Discord webhooks if you want that. After that, it just works.
Is it perfect? No. You'll still need good staff to review false positives and ban obvious hackers. But it'll cut down on the noise considerably, and you won't wake up to complaints about cheaters dominating your PvP arena.
🔗 GitHub: GrimAnticheat/Grim - GPL-3.0, ★1574
