NewSchokr 13 is here. A whole new UI, seven locations, snapshots and more. Read more →

Anti-cheat kicking Bedrock players on a Geyser server

Why anti-cheat plugins flag Bedrock players through Geyser, and how to fix false kicks with Geyser support settings or exemptions.

Updated · 2 min read

Anti-cheat plugins are written for Java clients. Bedrock clients move, mine and attack slightly differently, so after Geyser translates their actions, some checks see "impossible" behavior and flag or kick them. The fix is an anti-cheat with Geyser support, or exempting Bedrock players from the checks that misfire.

Why Bedrock players get flagged

  • Movement: Bedrock physics and collision differ in small ways, which can look like speed or fly hacks.
  • Mining and placing: Bedrock sends block actions in a different order and timing, which can trip fast-break or scaffold checks.
  • Combat: Bedrock touch controls and aim assist on consoles produce reach and rotation patterns Java checks do not expect.
  • Inventory: Bedrock inventory interactions are translated, which can trigger inventory-move checks.

None of this means the player is cheating.

Step 1: confirm it is the anti-cheat

Read the kick message and the console when it happens. Anti-cheats usually log the check that fired, for example a speed or reach violation. If Java players are fine and only Bedrock players are flagged, it is a compatibility issue.

You can also test by temporarily removing the anti-cheat jar from plugins/ and restarting. If Bedrock players stop being kicked, you have found the cause.

Step 2: look for Geyser or Floodgate support

Many popular anti-cheats have a setting for Geyser or Floodgate players, either compensating for Bedrock behavior or skipping checks that do not apply. Search the plugin's config and documentation for "Geyser", "Floodgate" or "Bedrock". Enable it and restart.

If your anti-cheat has no Bedrock support at all, consider switching to one that does. Check its plugin page for Geyser compatibility before installing.

Step 3: exempt Bedrock players from specific checks

If you cannot enable built-in support, most anti-cheats have a bypass permission. You can give it to Bedrock players with LuckPerms:

lp creategroup bedrock
lp user .Steve parent add bedrock
lp group bedrock permission set <anticheat-bypass-node> true

Replace the node with the bypass permission your anti-cheat documents. Prefer bypassing individual checks (movement, for example) rather than the whole anti-cheat, so Bedrock players are still covered for things like killaura. See LuckPerms permissions for Bedrock players.

Step 4: keep everything updated

Geyser improves how it translates movement over time, and anti-cheats add Bedrock handling in updates. Running current builds of both reduces false flags. See update Geyser and Floodgate.

Spawn protection and similar settings

Not every "can't do anything" problem is an anti-cheat. If a Bedrock player cannot break or place blocks near spawn, that is vanilla spawn protection, which applies to all non-operators:

spawn-protection=16

Set it to 0 in server.properties to disable it, or use a protection plugin for finer control.

Still stuck?

Ask in the Schokr Discord with your anti-cheat name and version and the exact check that is firing.