Minecraft anticheat guide
Anticheat Threshold Tuning as a Repeatable Process
A repeatable loop for changing anticheat thresholds after launch: one change at a time, a fixed observation window, labeled alerts, and a keep or revert call.
Change one threshold, observe, then decide
Tune thresholds in a fixed loop. Record a baseline, change one value, observe for a set window, label the alerts that came from that window, then keep or revert the change. Changing several thresholds at once makes it impossible to tell which one caused the result. Write each cycle in the change log, so the next decision starts from evidence instead of memory.
Record the baseline before you change anything
A baseline is the alert picture before your change. Count alerts by type and by player for a window that includes your normal peak hours, and note any unusual event in that window. Without this record, a quiet day after a change tells you nothing about whether the change helped.
Run one tuning cycle
Each cycle has six stages. Finish one stage before starting the next, and keep the output of every stage in the change log entry for that cycle.
| Stage | What you do | Output |
|---|---|---|
| 1. Baseline | Count alerts by check and player over the agreed window | Baseline table with counts and noted events |
| 2. Hypothesis | Write what you think is wrong, such as alerts clustering after teleports | One sentence per hypothesis |
| 3. Single change | Change one threshold or one exemption | Config diff committed on a branch |
| 4. Observe | Keep the same window length and the same reviewers | Alert counts for the new window |
| 5. Label | Sort the new alerts into real, unclear, or false | Labeled list with reasons |
| 6. Decide | Keep, revert, or extend the observation | Entry in the change log |
Worked example: one cycle on a combat check
The baseline for a combat check shows 40 alerts across a weekday evening, with most players receiving one or two. Reviewers suspect alerts cluster after ender pearl use, but nobody has labeled them yet. Stage one labels the sample first. Of 15 pearl-related alerts, 12 are unclear and 3 are real. The team logs the pearl hypothesis, makes one exemption change, and observes the next window with the same reviewers. Only then does the team decide whether the exemption helped.
Decide at the end of each cycle
The end of a cycle is a decision, not a feeling about the numbers. Use the outcomes below and write the one you chose in the log.
Common mistakes in threshold tuning
Most bad tuning history comes from a few habits. Watch for them in your own log.
Compare windows fairly
Most bad tuning decisions come from comparing windows that are not alike. Fix the comparison rules before the cycle starts.
Set stop rules before the cycle starts
A common mistake is to keep nudging a threshold because each new value looks slightly better. Fixed stop rules prevent that drift.
What this process does not prove
The loop shows how alert volume and labels changed on your server. It does not prove that a threshold is accurate in general, that every cheater will be flagged, or that a legitimate player will never be flagged. Keep those claims out of staff notes until you have evidence that goes beyond your own alert samples.
FAQ
How long should one observation window last?
Choose a length that covers your normal peak and quiet hours at least once, then keep it fixed for that check. The right length depends on player count and how often the check fires, so write the choice down.
Can we tune several checks at the same time?
Only when they affect separate alert types and separate reviewers. If two checks read the same signal, such as movement, change them one after the other.
What if alerts drop to zero after a change?
Zero alerts can mean the threshold is now too loose, the check is no longer reaching players, or the window was quiet. Run a controlled test in staging before you keep the change.
Who approves a threshold change?
The owner of the check or the rollout owner approves it. Reviewers who labeled the alerts should be consulted, but they should not be the only approvers, since they see only a sample.
Should we tune on production or staging?
Observe on production, because staging traffic rarely looks like live play. Run controlled tests in staging, and keep the production observation window fixed for the whole cycle.