Minecraft anticheat guide
Per-Gamemode Anticheat Profiles for One Network
How to keep one base anticheat profile for a network, document the few settings each game mode may change, and avoid copying configs by hand.
Use one base profile with documented overrides
Use one base anticheat profile for every game mode, then record only the settings each mode is allowed to change. Keep the override list short, give each override a reason and an owner, and generate mode configs from the base file when you can. Profiles that drift apart are hard to review and easy to misconfigure.
Decide which settings may vary by mode
Not every setting should change between modes. Settings that control logging, alert routing, and staff access should match everywhere, because a difference there hides evidence. Settings that describe how players move, fight, or build can differ, but only with a written reason.
| Setting group | Keep identical across modes? | Typical reason to vary |
|---|---|---|
| Logging, alert routing, and staff permissions | Yes | None in normal operation |
| Punishment tiers and automatic bans | Usually yes | A mode with a different risk profile may need a different tier, approved by the owner |
| Movement-related checks | No, review each mode | Elytra, flight, mounts, or custom movement features change normal movement |
| Combat-related checks | No, review each mode | Combat style and knockback differ between PvP and PvE modes |
| Building and block-interaction checks | No, review each mode | Creative and build modes place and break blocks at different rates than survival |
| Ignored worlds or regions | Only with a written reason | Build plots or event arenas may need exclusions, but each exclusion removes coverage |
Lay out the profile files
Keep one base file and one override file per mode. The layout below is a placeholder. Use the file names and loader behavior your anticheat expects, and confirm how it reads overrides before you copy any file.
anticheat-profiles/
base.yml # shared settings, approved by the rollout owner
overrides/
pvp-arena.yml # only keys that differ from base.yml
survival-smp.yml
creative-plots.yml
generated/ # output of a merge step, never edited by handBuild and review the override list
Each override needs the same four facts: the mode, the key, the base value, and the mode value. Add the reason and the approver. A short, reviewed list is the main thing that keeps per-mode profiles manageable.
Test each profile on its own mode
A profile that passes review on paper can still misfire in play. Before a mode uses a new profile, run it on a staging copy with that mode's plugins and typical player behavior. Watch for alert types that appear only in that mode. Record the tester, the mode, and the profile version. Do not use another mode's test results as proof.
Worked example: an arena inherits a survival value
A survival override loosened a movement check, because the SMP has steep terrain and elytra use. The arena profile was built by copying the survival file, so it inherited the looser value. Arena players never use that terrain, so the looser value only hid movement the arena should have flagged. Nobody noticed for two weeks, because the arena's alert volume was low. The fix was one line. Finding it took a diff of each mode file against base.yml, which is why every override needs a stated reason.
Common mistakes with mode profiles
Per-mode setups usually fail through copying and neglect, not through a single bad setting.
Know when one profile is enough
Per-mode profiles reduce accidental drift, but they do not show that any profile is accurate. They also add review work for every change. A network with one or two similar modes can often run one profile with a short, documented list of exceptions, which is easier to keep correct.
FAQ
Can one profile cover every mode on our network?
Often for the base settings, yes. Modes with different movement or combat rules usually need documented overrides. If the override table keeps growing, that is a sign the modes need separate profiles.
How do we treat a minigame that runs inside our network?
Treat it as its own mode when its rules differ from survival. Its arena may need separate review, and its players may join and leave faster than players in the rest of the network.
Should lobbies use the strictest profile?
Not automatically. Lobbies carry different risks, mostly around join traffic and exploits. Set the lobby profile for the risks it actually has, and review the lobby together with any mode players can move into from it.
What if our plugin supports per-world exceptions?
Use them only where you have a written reason, such as an event arena with known teleport behavior. Record each exception, because a broad exception also hides any cheating inside that world.
How do we know a new mode needs its own profile?
Start from base.yml and list the differences you expect. If that list covers most of the movement and combat checks, the mode has different rules and needs its own tested profile. If it touches only a few settings, an override is enough.