Minecraft anticheat guide

How to Protect Minecraft PvP Without Ruining Hit Registration

A staging workflow for evaluating PvP mitigations, with a clear distinction between server-side damage events and what players observe on their clients.

Separate server event outcomes from client observations

On Spigot, EntityDamageByEntityEvent is cancellable. The Cancellable contract says a cancelled event is not executed by the server, while still passing to other plugins. That describes the server-side event; it does not establish what hit feedback or registration a player sees on a client.

Treat server-side damage outcomes and client observations as separate evidence. A server log or event result alone cannot prove the client experience.

Evaluate one mitigation in staging

1. Record a baseline on the staging server with the current plugin set and versions, test scenario, server-side damage outcome, and separate client observations.

2. Change one mitigation at a time in staging. Repeat the same scenario and record the plugin and server versions, the setting or action changed, and the server-side outcome.

3. Verify client observations separately with the participating players; do not infer them from a cancelled server event.

4. Compare results with the baseline. Roll back the change if outcomes are unexpected, then investigate before trying another change.

Keep the record specific to the tested setup. This workflow does not prescribe anticheat commands or settings, or guarantee a particular hit-registration result.

FAQ

What does cancelling EntityDamageByEntityEvent mean?

Spigot's Cancellable contract says a cancelled event is not executed by the server, but the event is still passed to plugins.

Does a cancelled event prove what hit feedback players see?

No. The Spigot event and Cancellable API documentation describe server-side event handling; they do not establish what feedback or hit registration a client observes.

Related sources and official pages

Browse all anticheat guides