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.

Recommended alert fields and their purpose.
FieldWhy it mattersCaution
Timestamp with time zoneOrders events and matches console and video timelinesUse one zone across all servers
Player UUIDIdentifies the account when names changeName alone is not stable evidence
Check identifier and versionShows which rule fired and which release contained itRecord the exact name the anticheat logs
Violation level before and afterShows how the count changedDoes not prove the alert was correct
Action taken and reviewerShows what staff did and who did itUse staff IDs, not shared logins
Build and server identifiersLinks the alert to a specific server stateDo 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.

List anticheat log files older than 30 days before deleting anything.
find /srv/mc/logs/anticheat -type f -name '*.log' -mtime +30 -print
# review the list, then rerun with -delete only after approval

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

Related sources and official pages

Browse all anticheat guides