Minecraft anticheat guide
PacketEvents and Thread Terms for Anticheat Staff
Plain definitions of packet, PacketEvents, Bukkit event, detection thread, setback, and event cancellation, with where each term appears in a FairPlay setup.
What do packet terms mean for Minecraft server admins?
A packet is a message the Minecraft client and server send to each other. FairPlay requires PacketEvents to run, and its checks read packet data on a detection thread that may not be the Bukkit main thread. The table defines these terms and shows where each one matters on a server.
| Term | Plain definition | Where you will see it |
|---|---|---|
| Packet | A message sent between the client and the server, such as movement or interaction data. | Packet names in PacketEvents error messages and in developer code. |
| PacketEvents | The packet library FairPlay requires. Install it with FairPlay before the server starts. | A PacketEvents entry in the plugin list, next to FairPlay. |
| Bukkit event | A server event that fires after the server has processed an action, such as a completed interaction. | Event classes in plugin listeners. FairPlay's API is registered through Bukkit's ServicesManager. |
| Detection thread | The thread where FairPlay runs check logic on packet data. It may be a PacketEvents or Netty thread. | Thread names in a thread dump or stack trace. |
| Packet-side handler | Code that runs on packet data before main-thread work. Violation listeners count as packet-side code. | Listener classes that subscribe to FairPlay violations. |
| Event cancellation | A listener that returns true cancels recording and punishment for that one violation. A MONITOR listener's return value is ignored. | Return values in developer listener code. |
| Check-local packet cancellation | Packet changes a check has already made before the violation pipeline runs. A listener cannot undo them. | Check behavior described in the check's own documentation. |
| Setback | A server correction that returns a player to an earlier position. FairPlay's docs list setbacks as actions that can happen before the violation pipeline. | Setback actions tied to a check, not a separate log field. |
| Owning scheduler (Folia) | The scheduler that must run entity or region operations. Do not assume the main thread owns them on Folia. | Scheduler calls in listener code. |
| Asynchronous execution | Work moved off the detection thread so it does not block packet handling. | Async task code in developer plugins, not a server log field. |
How do you confirm the packet setup from a real server?
Packet problems usually show up first in the plugin list and the startup order, not in an alert. Check both before you read any check output. The commands below are generic server checks, so use the ones your platform provides.
Plugins (2): PacketEvents, FairPlayWhich packet terms are easy to mix up?
Many packet terms describe the same moment from different sides. This table separates the pairs that cause the most confusion in staff discussions.
| Pair | The difference | Where to check |
|---|---|---|
| Packet vs Bukkit event | A packet is client data as it arrives. A Bukkit event is the server's record of an action it has processed. | PacketEvents-side code versus Bukkit listener code. |
| Detection thread vs main thread | Check logic runs on the detection thread. Bukkit main-thread work is separate, and the threading guide warns against assuming they match. | Thread names in a dump; the threading guide. |
| Event cancellation vs packet cancellation | A returned true stops recording and punishment for one violation. Packet cancellation that already happened inside a check stays in place. | Listener return values versus check behavior. |
| Setback vs violation | A setback moves a player back. A violation is a recorded failure. A setback can happen without any violation being counted. | Setback actions versus VL values. |
| Asynchronous task vs owning scheduler | An asynchronous task keeps blocking work off the detection thread. The owning scheduler runs entity or region changes on Folia. | Developer code for each task type. |
How should a listener behave on the detection thread?
The FairPlay threading guide says violation callbacks run on the detection thread and should stay short. Use this checklist when you write or review one.
What we have not verified
This page does not give packet throughput, thread timing, or latency numbers. It does not say how a packet term will behave on a given Minecraft release. Confirm behavior on your own server version in staging.
FAQ
Do I need PacketEvents if I already run another anticheat?
FairPlay's installation guide says PacketEvents is required to run FairPlay. Check the requirements of any other anticheat in its own documentation.
Why should a violation listener avoid blocking work?
Violation callbacks run on the detection thread, and the docs say to keep them short. Blocking work there holds up packet handling, so send it to an asynchronous task.
Does returning true from a listener undo a flagged move?
No. It changes recording and punishment for that one violation. Check-local actions that happened earlier are not reversed.
Is a Bukkit event the same as a packet?
No. A packet is data the client sent. A Bukkit event is the server's record of an action it has already processed.
Can a listener change entities directly on Folia?
Use the owning scheduler for entity or region changes, as the threading guide describes. Do not assume the main thread owns that work on Folia.