Minecraft anticheat guide

FairPlay Config File Terms and Keys Explained

Plain definitions of FairPlay config files and keys, including punishments.yml, mitigations.yml, webhook.yml, and transaction.yml, and how to change them.

What do anticheat config terms mean?

Anticheat config files hold the settings for checks, punishments, alerts, and diagnostics. FairPlay generates these files and documents their key names. The table names each file or key, explains what it controls, and shows what you will see when you open it.

FairPlay config files and keys, with what each controls.
TermPlain definitionWhat you will see in the file
config.ymlThe main settings file. It covers Bedrock eligibility, cancellation messages, alerts, checks, confirmation handling, and diagnostics.Groups for each area. Player logs in it can contain violations, chat, joins, and leaves.
punishments.ymlControls violation timing, staff alert cooldowns, and shared punishment actions.Action and tier entries, and a defaults-revision field that FairPlay manages.
mitigations.ymlHolds per-check mitigation controls, reach compensation, and separate kick and ban gates.Per-check groups, an increaseReach setting, and totem, Elytra, and macro-spear controls.
hooks.ymlSettings for hooks into other anticheats, including which checks a hook excludes.plugin-name, the event class, and blacklisted-checks.
webhook.ymlDiscord alert delivery. It holds the URL, violation threshold, cooldown, and allowed role mentions.enabled, minimum-vl, and cooldown-ms. Webhooks are disabled by default.
banwave.ymlBan-wave scheduling and queue values.An empty schedule list and a queue limit of 5,000 by default.
snapshot.ymlCoverage, expiry, and capture limits for the virtual world view used by checks that read snapshots.Subchunk radius, expiry, and per-tick capture values.
transaction.ymlTransaction provider selection and native probe settings.mode, probe-interval-ms, pending-timeout-ms, and pending-size.
Per-check YAMLThe file for one check or a shared group of checks, located by its @ConfigInfo file name and YAML path.A nested path under the file named by @ConfigInfo.
blacklisted-checksA hook setting that lists checks to exclude from that hook.A list key in hooks.yml.
defaults-revisionA migration value FairPlay manages.A field in punishments.yml. Leave it unchanged.
Reload versus restartSome settings apply after a reload. Others need a server restart.The setting guide and the configuration troubleshooting guide say which applies.

How do you trace one setting in a real config file?

Start from the key you want to change, then find the file that owns it. The example below shows the documented webhook keys. Confirm the nesting and the current values in your own generated file before you edit.

Documented webhook.yml sample defaults. Confirm nesting in the generated file.
# webhook.yml, documented sample defaults
enabled: false
minimum-vl: 2.0
cooldown-ms: 2000

Which config terms are easy to mix up?

Several files sound alike but cover different decisions. Use this table before you open a file, so you change the right setting the first time.

Commonly confused config file and key pairs.
PairThe differenceWhere to check
punishments.yml vs mitigations.ymlpunishments.yml holds timing and tiered actions. mitigations.yml holds per-check controls and the kick and ban gates.Tier entries versus per-check groups.
hooks.yml vs webhook.ymlhooks.yml connects FairPlay to other anticheat plugins. webhook.yml sends alerts to Discord.plugin-name and event class versus URL and threshold.
banwave.yml vs punishment tiersbanwave.yml controls scheduled and queued ban waves. Tiers pick the action for one player at a level.Schedule and queue values versus tier entries.
Per-check YAML vs main configA per-check file sets one check or group. The main config covers the whole plugin.The @ConfigInfo file name and YAML path.
Reload vs restartA reload applies some settings immediately. A restart is needed for the rest.The setting guide and the troubleshooting guide.
transaction.yml vs snapshot.ymltransaction.yml chooses the transaction provider. snapshot.yml sets virtual world coverage and capture limits.Provider mode versus radius and expiry values.

How should you change a config file?

Change settings in small steps so you can tell which change caused a result. Back up the file first and record every change.

What we have not verified

This page lists the documented key names and defaults for one FairPlay release. Nesting, defaults, and available values can change, so the generated file is the authority. This page makes no claim about the effect of any value on detection.

FAQ

Why did my config edit not take effect?

Check whether the setting supports reload. The configuration troubleshooting guide lists settings that need a restart.

Should I edit defaults-revision?

No. FairPlay manages that migration value. Leave it as generated.

Where do per-check settings live?

Find the check in the checks reference, then use its @ConfigInfo file name and YAML path. Confirm the exact key in the generated file before editing.

Is the Discord webhook on by default?

No. Webhook alerts are disabled by default. Set the URL, threshold, and cooldown before you enable them.

Which file should I open to stop one check from running through a hook?

Look at blacklisted-checks in hooks.yml. It lists checks excluded from that hook. Confirm the current list on your server, because the defaults are only a starting point.

Related sources and official pages

Browse all anticheat guides