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.

Packet and threading terms for FairPlay setups.
TermPlain definitionWhere you will see it
PacketA message sent between the client and the server, such as movement or interaction data.Packet names in PacketEvents error messages and in developer code.
PacketEventsThe packet library FairPlay requires. Install it with FairPlay before the server starts.A PacketEvents entry in the plugin list, next to FairPlay.
Bukkit eventA 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 threadThe 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 handlerCode that runs on packet data before main-thread work. Violation listeners count as packet-side code.Listener classes that subscribe to FairPlay violations.
Event cancellationA 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 cancellationPacket 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.
SetbackA 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 executionWork 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.

Illustrative plugin list. Your server may show more plugins or a different order.
Plugins (2): PacketEvents, FairPlay

Which 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.

Commonly confused packet and event term pairs.
PairThe differenceWhere to check
Packet vs Bukkit eventA 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 threadCheck 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 cancellationA 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 violationA 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 schedulerAn 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.

Related sources and official pages

Browse all anticheat guides