Minecraft anticheat guide

FairPlay Folia-Safe Anticheat Design for Threaded Servers

Understand scheduler ownership in FairPlay’s Folia-aware design and plan a staging check for the server setup you operate.

Folia changes the threading model

Folia does not behave like a single global main-thread server. Entity work, region work, global server work, and asynchronous work have different ownership rules, and a plugin that only declares a flag without respecting those rules is not truly Folia-safe.

Folia uses separate region and entity schedulers. Check the FairPlay and dependency requirements, then test the server workflows you rely on with your exact Folia build.

Ownership examples: which work belongs where

PacketEvents callbacks decode wrappers, update packet-safe state, run math, and cancel illegal packets when appropriate. Everything that touches owned server state moves to its scheduler: player mutation to the entity scheduler, block and chunk access to region-owned context, server-global actions to global context, and file or network work async.

This boundary keeps detection portable across classic Bukkit, Paper, and Folia assumptions — visibility on the packet side, authority on the scheduler side.

Scheduler ownership examples for anticheat work.
WorkOwnerWhy
Player mutation and teleport or setback pathsEntity schedulerEntity state is owned per-entity on Folia
Block and chunk access, scaffold geometryRegion-owned contextChunk data lives under region threading
Server-global actions and punishment commandsGlobal contextGlobal state must not run on a region thread
Log writes, model I/O, webhook deliveryAsyncBlocking I/O must stay off server threads

What server owners should verify

Verify the exact Folia build, PacketEvents version, hooks, and custom plugins. Test combat, teleport, velocity, block placement, inventory, and punishment commands before production rollout — Folia support is a real engineering behavior, not a checkbox.

Record which scheduler path each tested action used. A flag without an ownership review is not Folia evidence, and descriptor text alone never substitutes for a runtime result on the deployed build.

FAQ

What should I check before using FairPlay on Folia?

Check the plugin requirements, PacketEvents setup, and your exact Folia build, then test your server workflows in staging.

Is folia-supported true enough?

No. Correct scheduler ownership is still required for entity, region, global, and async work.

Related sources and official pages

Browse all anticheat guides