Minecraft anticheat guide
Copying Anticheat Config Between Your Own Servers Safely
Copy an anticheat config from one server to another without leaking secrets or carrying over host-specific values. Diff, redact, stage, and record each change.
How do you copy an anticheat config to a second server?
Copy the config as a reviewed template, not as a file dump. Remove host-specific values such as webhook URLs, hook targets, world names, and secrets. Diff the two servers, apply the shared policy, then test the result in an alert-only window. Leave the source server unchanged until the target passes.
Which settings are shared, and which belong to one server?
Policy settings usually match across servers in one network. Endpoints, identifiers, and credentials do not. Decide each row before you copy anything, and mark uncertain rows as per-server until you have checked them.
| Setting type | Usually shared? | Notes |
|---|---|---|
| Check enablement and thresholds | Often, after review | Confirm each value against your test results |
| Punishment tiers and mitigation policy | Often | Match only if the servers share a rule set |
| Webhook or alert endpoints | No | Each server posts to its own channel |
| Hook targets for other plugins | No | Depends on which plugins each server runs |
| World, region, or exemption lists | No | Names and IDs differ between servers |
| Staff bypass permissions | No | Set through your permission plugin per server |
| Plugin and PacketEvents versions | Match the release, not the file | Copy the version, not the config keys |
How do you redact secrets before you copy?
Search the config folder for likely secrets before you copy it. Replace each hit with a placeholder and note what it was. The example below uses generic key names for illustration only. Your plugin's keys will differ.
webhook-url: "<redacted: per-server webhook>"
api-token: "<redacted: per-server secret>"grep -rniE "webhook|token|password|secret" <config-folder>How do you apply the shared settings?
Apply only the shared lines. A full overwrite brings the source server's endpoints and identifiers into the target, and that mistake is hard to see until alerts post to the wrong place.
Why keep both servers on the same plugin version?
A config key that one plugin version reads may be ignored by another. Copying a config between different versions can therefore look like it worked while some settings have no effect. Match the anticheat and PacketEvents versions first, then copy the config. For upgrade steps, see the note on plugin data folders after an upgrade.
How do you test the copied config?
Run an alert-only window on the target staging copy. Compare alert counts and check types with the source server over the same kind of play. A large difference is a reason to check per-server values, not a reason to enable enforcement.
What do you do when the two servers disagree?
After the copy, the two servers may still differ in alert counts. Start by checking whether the difference comes from a per-server value, such as a world list or an exemption, or from a shared value that did not apply the way you expected. Write the difference down before you change either config.
If the difference is a shared value, fix it on the source and copy again so both servers keep one policy. If it is a per-server value, document why the difference is intended. Never resolve a disagreement by turning enforcement off on one side without a recorded reason.
What belongs in the copy record?
Record enough detail that a later admin can repeat or reverse the copy. Store the record with the change log, not in the config folder.
FAQ
Can I copy the whole plugin folder to another server?
Not safely. Copy only the reviewed config. Jars and data files can carry server identity, stored state, and evidence that belong to the source server.
Will punishment history come across with the config?
Not in the config file. Data written to the plugin's data folder may be stored there, so check where your plugin keeps its records before you copy any folder.
Do the two servers need identical settings?
No. Shared policy should match. Endpoints, identifiers, and world lists stay separate for each server.
How do I know the copy worked?
The startup log should show the expected values loaded, and a staging alert should match what you expected from the source server over the same kind of play.