Tuning Guide

Every check's envelope is deliberately generous out of the box: prefer a smaller set of explainable, tested checks over many aggressive checks that create false positives. Tune down only after confirming false positives are actually gone on your own hardware/TPS/player base — start with observe-only still effectively true (leave enforcement off) while you do.

Triggering a backup on suspected dupe evidence

FlagForge does not implement backup or rollback itself — that's an explicit non-goal, and the plugin is designed to integrate with whatever backup tooling you already run, not replace it. actions.yml's suspected-dupe-backup-trigger correlation rule is the integration point: it matches the same evidence-family combination as confirmed-inventory-generation (a sustained item-generation-rate finding plus an inventory-conservation mismatch), but at much lower confidence thresholds, since firing a cheap, non-destructive snapshot is reasonable on far weaker evidence than an actual CANCEL/KICK would justify.

It ships fully inert on every install via two independent gates: the global enforcement switch/observe-only mode (like every other COMMAND-class rule in actions.yml), and having no command: configured at all. To opt in, set command: to your backup plugin's manual-snapshot console command, or the vanilla fallback:

suspected-dupe-backup-trigger:
  # ...
  command: "save-all"

The two dupe-related correlations intentionally sit at different confidence bars because of checks.yml's coverage-complete flag on inventory.reconciliation.a: with the shipped default (coverage-complete: false), that check's confidence tops out around 0.6 (HEURISTIC evidence), so confirmed-inventory-generation's 0.90 bar realistically requires coverage-complete: true (and verified full adapter coverage) to ever match, while suspected-dupe-backup-trigger's 0.55 bar is reachable on a default install. Run /ff correlations to see every configured correlation rule's thresholds and whether a rule's confidence requirement is currently unreachable given your coverage-complete setting.