← All anticheat guides

Minecraft anticheat guide

FairPlay Folia-Safe Anticheat Design for Threaded Servers

Why Folia support requires correct entity, region, global, and async scheduling rather than a simple compatibility flag.

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. A plugin that only adds a folia-supported flag without respecting those rules is not truly Folia-safe.

FairPlay's public positioning includes Folia-aware scheduling paths, which matters for servers that want modern threaded performance without unsafe entity or world access.

Packet checks still need ownership boundaries

PacketEvents callbacks should decode wrappers, update packet-safe state, run math, and cancel illegal packets when appropriate. Player mutation belongs on the entity scheduler. Block or chunk access belongs on region-owned context. I/O belongs async.

This boundary keeps anticheat enforcement compatible with both classic Bukkit/Paper assumptions and Folia ownership rules.

What server owners should verify

Verify exact server version, 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.

FAQ

Does FairPlay support Folia?

FairPlay is positioned with Folia-aware internals and Folia-safe task handling. Test your exact stack before production rollout.

Is folia-supported true enough?

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

Related sources and official pages