Minecraft anticheat guide
Anticheat Alert Logging Policy and Retention Rules
Decide what anticheat alerts to log, how long to keep them, who can read them, and how to protect webhook URLs and player evidence on Discord.
Log enough to explain each alert later
An alert log should let a reviewer reconstruct why a check fired, what staff did, and which build produced the result. Keep the minimum set of fields that answers those questions, store them in one place, and set a retention window before the first alert is logged.
Notification thresholds and cooldowns are a separate setting from logging. The Discord webhook threshold article covers those values, so this article focuses on what you keep and for how long.
Choose the fields to record
Write a field list and keep it stable across releases. A change in field names makes older logs harder to compare.
| Field | Why it matters | Caution |
|---|---|---|
| Timestamp with time zone | Orders events and matches console and video timelines | Use one zone across all servers |
| Player UUID | Identifies the account when names change | Name alone is not stable evidence |
| Check identifier and version | Shows which rule fired and which release contained it | Record the exact name the anticheat logs |
| Violation level before and after | Shows how the count changed | Does not prove the alert was correct |
| Action taken and reviewer | Shows what staff did and who did it | Use staff IDs, not shared logins |
| Build and server identifiers | Links the alert to a specific server state | Do not include network addresses |
Keep chat and location data out of routine logs
Routine alert logs do not need full chat history, exact location trails, or unrelated personal data. Include them only inside an investigation ticket that has a stated reason and a deletion date. A smaller log is easier to protect and easier to delete on schedule.
Set retention by data type
Use separate windows for different kinds of data. The numbers below are examples of an owner's policy, not a recommendation from any anticheat project. Choose windows that match your appeal process and your local data-protection obligations.
Delete old logs on a schedule
Retention rules do nothing if no one applies them. Preview files that match the window first, then delete them after a reviewer confirms the list. Keep a note of the deletion date and the operator who ran it.
find /srv/mc/logs/anticheat -type f -name '*.log' -mtime +30 -print
# review the list, then rerun with -delete only after approvalLimit who can read the logs
Read access and punishment access are different permissions. Give reviewers read access to the alert records they need, and keep configuration and deletion rights with administrators. Build those groups in LuckPerms with the staff-group layout described in the staff bypass section above.
Redact before sharing evidence
When you share evidence outside the staff team, such as with a player, a developer, or a support channel, remove details the recipient does not need. Keep the check identifier, the time window, and the relevant measurement. Remove chat, addresses, and other players' identities unless the recipient has a specific need for them.
Store the redacted copy separately, and record who received it.
Treat webhook URLs as secrets
A webhook URL lets anyone post into the channel it belongs to. Keep it in the server configuration only, never in a public repository, screenshot, or support thread. Rotate the webhook if it appears in any public place.
Post a summary to the channel, not raw evidence. Use a private channel for staff alerts, and limit who can mention roles from automated messages. The Discord webhook threshold article explains the notification settings for FairPlay's webhook feature, and the setup article covers delivery troubleshooting.
Review thresholds against logged outcomes
A notification threshold decides what reaches the channel. It does not decide whether a player is punished. Review the outcomes of notified alerts every month. If most notified alerts are dismissed as false positives, raise the notification threshold or tune the check, and record the change.
What we have not verified
This article does not state how any anticheat formats or stores its logs, and it does not confirm that the examples in the retention table match any specific tool. Confirm the log location, format, and rotation settings on your own server before applying the policy.
FAQ
Should we keep alert logs forever?
Usually no. Keep the decision records and appeal evidence for the period your policy sets, and delete routine logs on a schedule so the archive stays small and easier to protect.
Is a player name enough to identify an alert?
No. Names change, and two accounts can share a name over time. Store the UUID with the alert so the record stays attached to the right account.
Can we post alerts straight into a public Discord channel?
Avoid that. Public channels can expose player details and encourage public pressure on a case. Send summaries to a private staff channel and keep detailed evidence in your restricted log store.