Skip to content

Configuration

All files live under plugins/DaisyFilter/.

FilePurpose
config.ymlCore toggles: server label, monitor-only mode, surfaces, command profiles, filter limits, performance.
messages.ymlPlayer-facing and staff-alert messages (MiniMessage).
categories.ymlCategory severities and dispositions (see categories.md).
actions.ymlAction/effect wiring (see actions.md).
custom-rules.ymlServer-defined literals and RE2/J-safe regular expressions.
spam.ymlSliding windows, duplicate/similarity, caps/punctuation/character limits.
escalation.ymlSeverity-point escalation and opt-in punishments (disabled by default).
allowlist.ymlBenign words and permitted domains that suppress matches.
webhook.ymlOptional metadata-only incident logging to a Discord webhook (off by default).
storage.ymlSculkData database connection.
moderation-storage.ymlEvidence privacy, retention, and write-queue settings.
gui.ymlGUI appearance.
runtime-overrides.ymlMachine-managed; written by the GUI and monitor/alerts commands. Do not hand-edit.
lists/Editable copies of the bundled and custom word lists.
exports/Generated export archives.
secrets/Generated encryption keys. Never commit or share.

Run /daisyfilter reload. DaisyFilter re-reads the configuration files and recompiles the rule pack and allowlist off-thread, swapping the live snapshot atomically only if compilation succeeds; a failed reload keeps the previous snapshot active.

Some settings require a restart:

  • the storage backend (storage.yml database type),
  • spam/abuse tuning (spam.yml),
  • escalation structure (escalation.yml).

runtime-overrides.yml is never destructively rewritten over your commented human-authored files — it only holds machine-managed state.

  • monitor-only: force MONITOR for everything (logs and alerts, never blocks). Toggle at runtime with /daisyfilter monitor on|off.
  • surfaces: enable/disable chat, commands, signs, books, anvils individually.
  • filter.max-input-length: bounded scan input (code points).
  • commands.monitored-roots / recipient-roots: which commands are scanned and which skip a recipient argument.

Menu layout is fixed (consistent, hand-tuned), but appearance is themable:

  • theme.pink / blue / lilac / mint: brand colours (hex) used for headings, accents, and the pink-to-blue gradient.
  • theme.border-material / filler-material: the pane materials framing menus. Unknown material names fall back to the defaults with a console warning.
  • theme.use-player-heads: show real player-face skulls on player menus (built from the stored UUID — no main-thread lookup). Disable for plain heads.
  • theme.glow-primary-actions: add a glow to primary buttons (Punish, Confirm).
  • titles.*: optional per-menu title overrides (dashboard, violations, incident, profile, history, audit, mutes, punish). Blank uses the built-in title; MiniMessage is supported. Re-apply with /daisyfilter reload.