Configuring Grim

Grim is customisable through a few config files. You don't need to touch them to get detections, but they let you tune sensitivity, turn checks on or off, and change alert text.

Let Warden AC write it for you
You don't have to edit these files by hand. The Warden AC dashboard has a built-in Config wizard (under the Grim section) that asks a few plain questions and generates a correct punishments.yml to copy in. This page explains what's happening underneath, which is handy if you'd rather tune it yourself. See Autobans & punishments.

Where the files live

After you start your server with Grim once, you'll find its config inside the plugins/Grim/ folder. The three you'll care about most are:

  • config.yml, the checks themselves and their sensitivity, plus general options.
  • punishments.yml, how checks are grouped into categories and what happens (alerts, kicks, bans) at each violation threshold. Covered on the next page.
  • messages.yml, the wording of alerts and messages, which you can translate or restyle.
Edit, then reload
After changing a Grim file, apply it with Grim's reload command (for example /grim reload) or restart the server. Keep a backup of a working config before you make big changes.

How Grim's checks work

Instead of counting suspicious actions like a traditional anticheat, Grim predicts what a legitimate player could physically do next and flags anyone who breaks that prediction. Each check raises a violation level (VL) when it's tripped. Grim measures that VL over a rolling window of time, by default, roughly the last few minutes, so a burst of violations builds up and then cools off if the player behaves.

In practice you rarely need to rewrite check internals. The common, safe adjustments are: turning a noisy check off, grouping checks so they share a threshold, and deciding what punishment a category leads to.

Turning a check off

Grim's config is category-driven. To stop a specific check from doing anything, you remove it from every category it appears in (in punishments.yml). If it isn't in any category, it won't alert or punish. That's the intended way to disable a check rather than deleting it outright.

Tuning sensitivity

Individual checks expose values in config.yml, things like how much "advantage" is tolerated before flagging, or timing balances for game-speed checks. Tightening them catches more but risks the odd false flag; loosening them is safer but lets marginal cases through. Change one thing at a time and watch your flag feed in Warden AC to see the effect before going further.

Illustrative only, check the Grim wiki for real keys
# config.yml (excerpt, names vary by Grim version)
Simulation:
  # smaller = stricter, larger = more lenient
  threshold: 0.0001
  setbackvl: 10

Timer:
  # milliseconds of drift tolerated before flagging
  drift: 120
These snippets are examples
Grim's exact option names and defaults change between versions. Treat the snippets here as a mental model, not copy-paste config, and always confirm against the official Grim wiki for your version.

PvP servers

On combat-heavy servers (duels, practice, ranked) the defaults can occasionally be either too strict or too loose for legit mechanics. If you run competitive PvP, expect to spend a little time calibrating combat-related checks. Your Warden AC flag feed is the fastest way to see which checks are firing on your legit players so you know what to adjust.

Alerts and messages

messages.yml holds the text Grim sends, alert formatting, punishment messages and so on. You can rewrite or translate these. Note this is separate from Warden AC: your dashboard shows flags regardless of how Grim's in-game alert text is styled.