Skip to content
EntrophyEntrophy

moderation

Enforcer

Policy-driven, hands-off moderation: the bot flags possible violations from a server policy and a moderator decides — everything is bookkept in a read-only ledger and the database. Moderators never DM or confront the suspect directly; the bot mediates every action.

Disabled by default (opt-in)Requires the MessageContent privileged intent

Policy-driven moderation where staff never have to confront a player directly.

Why gaming communities love it

  • The bot flags the message, shows the moderator the exact context, and the moderator just picks Warn, Timeout, Kick or Ban — the bot does the talking to the player.
  • Every flag and every decision lands in a read-only ledger channel, so a competitive community can show sponsors and players a transparent, tamper-evident moderation record.
  • Built for servers that run tournaments or paid coaching, where a single unfair-looking mod interaction can blow up in public — Enforcer keeps the process consistent and documented.
  • Optional AI risk scoring is clearly labelled assistive-only; it never decides or acts on its own.

Full command reference

Commands for this plugin
CommandDescriptionWho can use itExample
/enforcer setupSet up (or repair) the ledger channel, flag-queue channel, and mute role.Everyone/enforcer setup [ledger_channel:#general] [ledger_visibility:"ledger_visibility"] [flag_channel:#general] [mute_role:@Moderators] [capture_context:true] [repair:true]
/enforcer statusShow Enforcer setup status, health, and configuration.Everyone/enforcer status
/enforcer policy createCreate a policy with one matcher (add more from the dashboard).Everyone/enforcer policy create name:"name" description:"description" severity:"severity" matcher_type:"matcher_type" matcher_value:"matcher_value" [case_sensitive:true] [whole_word:true] [suggested_action:"suggested_action"] [scope_channel:#general] [exempt_role:@Moderators]
/enforcer policy listList every policy.Everyone/enforcer policy list
/enforcer policy viewView a policy in detail.Everyone/enforcer policy view policy:"policy"
/enforcer policy editEdit a policy.Everyone/enforcer policy edit policy:"policy" [name:"name"] [description:"description"] [severity:"severity"] [suggested_action:"suggested_action"] [matcher_type:"matcher_type"] [matcher_value:"matcher_value"]
/enforcer policy deleteDelete a policy.Everyone/enforcer policy delete policy:"policy"
/enforcer policy toggleEnable/disable a policy.Everyone/enforcer policy toggle policy:"policy"
/enforcer policy testTest sample text against policies without flagging anyone.Everyone/enforcer policy test text:"text" [policy:"policy"]
/enforcer policy importImport a starter policy pack.Everyone/enforcer policy import pack:"pack"
/enforcer flagManually flag a user for non-message behaviour (no message to point at).Everyone/enforcer flag user:@user reason:"spamming links" [policy:"policy"]
/enforcer searchSearch the ledger.Everyone/enforcer search [user:@user] [kind:"kind"] [decision:"decision"] [policy:"policy"] [since:"since"]
/enforcer recordView a ledger record in detail.Everyone/enforcer record number:10
/enforcer historySummarize a user's Enforcer history.Everyone/enforcer history user:@user
/enforcer exportExport ledger records as CSV.Everyone/enforcer export [since:"since"]
/enforcer appealAppeal an Enforcer record (member-facing).Everyone/enforcer appeal record:10
/enforcer muteMute a user with the configured mute role, through the standard decision pipeline.Everyone/enforcer mute user:@user [duration:1h] [reason:"spamming links"]
/enforcer unmuteRemove the mute role from a user.Everyone/enforcer unmute user:@user [reason:"spamming links"]
/Flag for review
Message context menu
Helper+/Flag for review