Minecraft anticheat guide
What Violation Levels Mean in Minecraft Anticheats
What does a violation level (VL) mean in a Minecraft anticheat? It is a running count of flags, not proof of cheating. Learn how to set thresholds.
What is a violation level?
A violation level, or VL, is a running score that a check adds to when it sees an event it considers suspicious. It counts flags over time, so a higher VL means more flags, not a confirmed cheat. Each anticheat defines its own scale, scoring, and expiry, so a VL of 5 in one product may not match a VL of 5 in another.
In FairPlay 4.0.5, the violation-expiration window and alert cooldown control how long a VL counts and how often staff see messages. Defaults include a 10,000 ms violation-expiration window and a 1,000 ms per-player/check alert cooldown. The cooldown limits repeated staff messages; violation accounting and mitigations continue on each fail.
How expiry, cooldown, and webhook thresholds differ
These settings are separate. Changing one does not change the others. The values below are FairPlay 4.0.5 sample defaults, so check your own files.
| Setting | What it controls | Sample default |
|---|---|---|
| Violation expiration | How long a flag stays counted | 10,000 ms |
| Alert cooldown | How often staff see repeated messages for one player and check | 1,000 ms |
| Webhook minimum-vl | The lowest VL that a webhook sends | 2.0 |
| Webhook cooldown-ms | The gap between webhook messages | 2000 |
enabled: false
minimum-vl: 2.0
cooldown-ms: 2000How a VL moves over time
A VL rises when a check fails and falls as violations expire. The amount added per fail depends on the check, so a single VL number does not mean the same thing across checks. Read the VL together with the check name and the time window it covers.
The alert cooldown adds a second layer. Staff messages are rate-limited per player and check, so a short log of messages does not mean few fails happened. Violation accounting continues on each fail, as the FairPlay docs describe.
What to look for in config and logs
Read the punishment and webhook settings before you read a VL trend. A high VL with no punishment configured is a different situation from a high VL that triggers an action.
A numbered procedure for setting thresholds
Change one value at a time, and record each change with the date and the reason.
Edge cases that change how a VL reads
A burst of lag can cause several fails in a short time, which raises the VL quickly. Players on high ping can also produce more fails in some checks. Read the time pattern before you treat a fast rise as intent.
A low VL on a rarely used check can still matter if it repeats across sessions. Watch for the same check and the same player over several days rather than a single peak.
Which VL pattern leads to which next step
Use the pattern you observe to choose the next step. A VL alone rarely decides the case.
| Pattern | Likely next step | Avoid |
|---|---|---|
| One high peak in a short window | Review the time window and the player's connection | Punishing on the peak alone |
| Steady rise across several sessions | Review the check, the alert lines, and any reports | Ignoring a steady trend |
| Many low VL alerts on one check | Review whether the check fits your server | Raising every threshold at once |
| High VL with no punishment configured | Confirm the punishment settings before you judge the player | Assuming a ban happened |
What we have not verified
We have not tested which VL values best separate cheaters from legitimate players. Good thresholds depend on the check, the server, and the player base. Test changes on staging and review false positives before you enable punishments.
FAQ
Is a VL the same across anticheats?
No. Scales, scoring, and expiry differ by product. Read each anticheat's documentation before you set a threshold.
Do violations expire in FairPlay?
The FairPlay 4.0.5 defaults include a 10,000 ms violation-expiration window. Check the docs for your version before you rely on that value.
Why is a player flagged at a low VL but not banned?
Per the FairPlay docs, violation accounting and mitigations continue on each fail, and punishment settings are separate. Check punishments.yml for what triggers an action.
Should players see their own VL?
That is a policy choice. Exact values can help a player learn which settings to avoid, so many servers keep them staff-only.
Why do staff messages show fewer flags than the VL suggests?
The alert cooldown limits how often staff see repeated messages for one player and check. A short message log can sit beside a higher VL, so review the accounting, not only the messages.