Skip to content
9MinecraftServer.com home Search servers
EN

Translate this page

Sign up free
Run your server

The best Minecraft server anti cheat in 2026, and how to run it without banning honest players

Start with GrimAC: it is free, open source and updated for current versions. Pay for Vulcan or Polar only when you have a specific problem Grim does not solve, and run any of them in alert-only mode for the first week.

For server ownersUpdated 8 min read

Quick answer
  • GrimAC is free, GPL-licensed, runs on Paper, Folia and Fabric, and is the default choice for most servers.
  • Vulcan and Matrix are paid one-time plugins; Polar is a subscription from 15 euro a month; Themis is free and the one that checks Bedrock players accurately.
  • No anti-cheat sees X-ray, ESP or a ghost client used carefully. It catches movement, reach, timer and click patterns.
  • With Geyser, put Floodgate on the backend or Grim will flag every Bedrock player.

The best Minecraft server anti cheat for most owners in 2026 is GrimAC, and the reason is not that it is free. It is that it is open source, updated for current Minecraft versions, built around movement prediction rather than hard-coded limits, and honest about what it can do. The paid options, Vulcan, Matrix and the subscription-based Polar, are worth their money on servers with a specific cheating problem, a large PvP population, or a staff team that wants a vendor to call. Themis is the one to look at if most of your players are on Bedrock through Geyser.

Whatever you pick, the first week matters more than the plugin. Every anti-cheat ships with thresholds that were tuned on someone else's server, and every one of them will flag a lagging player or a Bedrock player if you let it. Run it in alert-only mode, read the alerts, then turn on punishments for the checks you have watched.

What an anti-cheat can and cannot catch

An anti-cheat sees packets: where the player says they are, how fast they clicked, what they hit. It compares that to what the game rules allow. That means:

CheatCaught?Why
Fly, speed, no-fall, jesus, phaseYes, reliablyMovement that the physics engine could not have produced. Prediction-based checks (Grim's Simulation group) are very good here.
Reach, velocity (anti-knockback), timerYesHits from too far, knockback that did not apply, more packets per second than a real client sends.
Autoclicker, killauraMostlyClick timing and aim patterns. Well-tuned clients that add randomness get through at low settings.
X-ray, ESP, tracers, freecamNoThe client only reads data the server already sent. Nothing leaves the client to detect. Anti-x-ray is a server-side obfuscation setting (Paper's anticheat.anti-xray), not an anti-cheat check.
Scaffold, fast place, fast breakPartlySome patterns are detectable; careful use is not.
Dupes, exploits, crash packetsNot the anti-cheat's jobFix the plugin or update the server. Some anti-cheats block obviously malformed packets (Grim's BadPackets group), which helps.

The practical consequence: an anti-cheat reduces cheating, it does not end it, and it works best next to staff who can spectate and a reporting path players actually use. Our staff guide covers the human half.

The options, with status checked

Statuses and prices as of the end of September 2026. Check the linked pages before buying; this market changes.

Anti-cheatCostRuns onStatusBedrock players
GrimACFree, open source (GPL-3.0). A paid tier with extra heuristic checks is planned.Paper, Spigot, Folia, Fabric; Java 17+Actively developed; the repository saw commits in September 2026 and supports 1.8 through current clients.Exempted, if Floodgate is on the backend
VulcanPaid, one-time, on SpigotMC (price not shown to us; check the resource page)Paper, Spigot, Folia; 1.8 to 26.2Updated for current versionsPartial: does not check Bedrock players, per Geyser's compatibility list
MatrixPaid, one-time, sold through BuiltByBit1.8.8, 1.12.2, 1.13 to latestThe vendor says it keeps updating; Geyser's list last verified it in July 2024Partial
PolarSubscription: 15 euro a month up to 75 players (billed quarterly), 29 up to 300, 59 up to 600Java serversActively sold as a serviceNot stated on its pricing page
ThemisFreePaper, SpigotMaintained; movement-focusedFully compatible: one of two on Geyser's list that "check Bedrock players accurately"
IntaveFree, source-available since the company shut down in mid-2025Paper, SpigotNo longer commercially supportedNeeds a Geyser add-on
NoCheatPlusFreeOld SpigotCommunity forks only; the original is unmaintainedListed as incompatible: false positives on Bedrock

The Bedrock column comes from Geyser's community-compiled compatibility list, which the Geyser team says to use at your own risk. Every paid vendor above sells a Discord support channel as part of the price; on a free plugin, the GitHub issues page is your support.

Grim: install and the first three things to change

  1. Download the jar from Grim's Modrinth or GitHub releases page and drop it in plugins/. It bundles what it needs. Restart the server; a reload is not enough.
  2. If you run Geyser, install Floodgate on this backend, not only on the proxy. Grim asks the Floodgate API "is this player Bedrock?" and if Floodgate is not on the same server, the answer is always no, and every Bedrock player gets flagged for movement they cannot avoid.
  3. Give staff the alert permission so they see flags in chat. Grim's alerts are the whole point of week one.
  4. Open plugins/GrimAC/punishments.yml and make sure every group only alerts. The file is a list of check groups; each has a violation timeout, the checks it covers, and commands that run at thresholds.
# plugins/GrimAC/punishments.yml (one group, alert-only)
Punishments:
  Simulation:
    remove-violations-after: 300
    checks:
      - "Simulation"
      - "GroundSpoof"
      - "Timer"
      - "!NegativeTimer"
      - "NoFall"
    commands:
      - "100:40 [alert]"
      - "100:100 [webhook]"
      # - "200:0 kick %player% incorrect movement!"   (enable after a week of reading alerts)

The syntax is threshold:interval command: the first number is how many unexpired violations a player needs before the line fires, the second is how often it fires again while they keep flagging. remove-violations-after is the number of seconds until old violations expire. [alert] messages staff, [webhook] posts to the Discord webhook in discord.yml, and anything else is run as a console command with %player%, %check% and %vl% filled in. Grim's own punishments wiki page documents every group.

False positives, and how to tune them out

A false positive is not the player's fault, and a ban for one costs you more than a cheater ever will. The usual causes, and the fix for each:

  • Server lag. When TPS drops, movement arrives in bursts and prediction breaks. Fix the lag first; our lag guide is the order to do it in. No threshold change compensates for a server at 12 TPS.
  • High ping. Players at 300 ms trigger timer and knockback checks. Grim compensates, but look at the ping of anyone who flags before you act. A staff /ping check is a one-second habit.
  • Version translation. Players on old clients through ViaVersion move slightly differently. Grim supports 1.8 clients directly and lists ViaVersion as recommended, but a spike of flags after you widen the version range is a tuning job, not a cheating wave.
  • Bedrock players. Covered below. Symptom: every flag has a dot or a prefix from Floodgate in the name.
  • Plugins that move players. Elytra boosts, custom mounts, jump pads and knockback plugins produce motion the anti-cheat did not predict. Exempt the check in that world or region, or lower the punishment for that group rather than for everyone.
  • Thresholds copied from a PvP server. A practice server bans at a low violation count because its players are all fighting; a survival server should not. Raise the threshold before you lower it.

Bedrock and Geyser players

Bedrock clients move differently: different sprint acceleration, different jump timing, touch controls that produce inputs Java never sends. A Java anti-cheat that treats them as Java players will flag them constantly. Three approaches, in order of how much protection you keep:

  1. Use an anti-cheat that understands Bedrock. Geyser's list names Themis and Boar as fully compatible. If most of your players are Bedrock, that is the deciding factor.
  2. Exempt Bedrock players from movement checks. This is Grim's default when Floodgate is on the backend. You keep reach and packet checks and lose movement checks for that group.
  3. Do nothing and ban your Bedrock players by accident. Common, and the fastest way to lose the crossplay audience. On our list, Java servers that also answer a Bedrock ping have a median of 26 players online against 6 for Java-only servers.

The crossplay setup, including where Floodgate lives on a Velocity network, is in the crossplay guide.

Pair it with staff tools and a report path

An anti-cheat is one input. The servers that actually keep cheaters out combine it with:

  • A Discord webhook for alerts so staff off the server still see patterns. Grim's [webhook] command is built in; most paid options have the same.
  • A way for players to report that takes ten seconds: a /report command from any moderation plugin, or a pinned Discord form. Players report what the anti-cheat cannot see, which is exactly the X-ray and ESP list above.
  • Spectate before you ban. Vanish into spectator on a flagged player for two minutes. Killaura and fly are obvious to a human; a laggy player is too.
  • Written rules that say what happens. "Cheating is a permanent ban, appeals in Discord" in your rules stops the argument before it starts.
  • Ban with evidence. The alert log line, the spectate clip, the date. Appeals go faster and your staff stay consistent.

Why "no anti cheat" servers exist

Some owners run without one on purpose. Anarchy servers (80 on our list) treat hacked clients as part of the game, and their players pick them for that; our anarchy guide explains the appeal. Creative and build servers have little to protect. Small whitelisted SMPs with ten friends have a social anti-cheat that works better than any plugin. And some technical servers turn anti-cheat off because their players use movement mods for legitimate reasons and the flags are pure noise.

If you go that route, say so in your listing description. Players searching for a no-anti-cheat server are a real audience, and players who assume every server has one deserve to know before they join. Conversely, if you do run one, a single line ("GrimAC, alerts reviewed by staff") answers a question many players have and takes you toward the 250-character description that counts for listing strength. Add or claim your listing from its server page to set it.

Quick questions

Is there a good free Minecraft server anti cheat?

GrimAC. It is free under the GPL, actively developed, and used on large networks. Themis is also free and is the better choice when most of your players are on Bedrock. Older free options like NoCheatPlus are unmaintained and produce false positives on current clients.

Does an anti-cheat work on a Fabric server?

GrimAC ships a Fabric build. For modded servers with client-side mods that change movement, expect more tuning: exempt the checks your modpack legitimately breaks rather than lowering everything.

How do I disable the anti-cheat for one player or one world?

Every anti-cheat above has a bypass permission you can give through LuckPerms, and most let you exempt checks per world in their config. Use it for staff testing and for worlds with custom movement, never as a "trusted donor" perk, because that is the first account a cheater buys.

Will an anti-cheat cause lag?

Grim is asynchronous and multithreaded by design and its overhead is small on a healthy server. What looks like anti-cheat lag is usually an existing TPS problem that the anti-cheat makes visible by flagging everyone. Fix TPS first.