Skip to content
EntrophyEntrophy

Admin Enforcer

Moderators decide. The bot does the rest.

Enforcer is policy-driven, hands-off moderation: the bot flags possible violations, a moderator reviews the exact chat context and picks a decision, the bot performs it and talks to the player — and every step is bookkept in a read-only ledger and the database.

Enforcer command reference →

How it works

Flag → review → decide → ledger → appeal

  1. 1. Policy

    A server admin writes a policy: what it matches (keywords, regex, link domains, invites, mention counts, attachment types), which channels it watches, who is exempt, and a suggested action. No slur lists ship with Entrophy — servers bring their own.

  2. 2. Flag

    A message matching a policy — or a moderator using the "Flag for review" message action — creates a pending record and posts it to a staff-only flag-queue channel. Nothing happens to the player yet.

  3. 3. Review

    A moderator opens "View context" to read the exact surrounding chat (live, or a stored snapshot if the messages are gone) and "Suspect history" for prior records — before deciding anything.

  4. 4. Decide

    The moderator picks Warn, Timeout, Mute, Kick, Ban, or Dismiss. The bot executes it through the moderation plugin — hierarchy checks, a case number, and a DM to the player — so staff never have to confront anyone directly.

  5. 5. Ledger

    Every flag and every decision is written to a read-only ledger channel and the database: record number, user, time, action, who decided, and the policy matched. Staff-only by default, optionally server-wide for transparency.

  6. 6. Appeal

    The player can appeal directly with `/enforcer appeal <record #>`. The appeal opens through the moderation plugin's workflow and both the opening and the decision are written to the ledger too.

Workflow diagram

The path a flagged message takes

Enforcer workflow diagram
Message / manual flag
Policy match
Flag-queue embed
Moderator reviews context
Decision executed
Ledger entry

Bookkeeping

What the ledger actually looks like

A real ledger entry (illustrative — names and content below are examples, not real data) posted to a staff-only channel the bot alone can write to.

Entrophy — Enforcer ledger

Record #E-142 — DECISION

User
@example.user (912...045)
When
Today at 4:12 PM
Action
Timeout — 1 hour
Decided by
@example.moderator
Policy
External links — unapproved domains
Case
#118
Context
"...check out this giveaway link..." [Jump to message]

Source: automatic flag · Entrophy Enforcer

Privacy & transparency

What's actually stored, and what isn't

  • Automatic flagging requires the Message Content privileged intent; without it, Enforcer runs in manual-flag-only mode and still works.
  • Context snapshots (the messages around a flag) are stored only because this feature needs them to be reviewable later — that is disclosed in `/plugin status`, the dashboard, and the plugin README.
  • A server can turn context capture off entirely; the ledger then keeps a jump link instead of an excerpt.
  • Optional AI risk scoring is labelled assistive-only on every flag it touches — it explains, it never decides, and it never acts.
  • Two moderators can never act on the same flag twice; a decision locks the record the instant the first moderator responds.

FAQ

Common questions

Does Enforcer replace the moderation plugin?
No — Enforcer is built on top of it. Every decision Enforcer executes (warn, timeout, kick, ban) is a real moderation case, with the same hierarchy checks, DM notice, and appeal workflow the moderation plugin already provides.
What happens without the Message Content intent?
Automatic flagging needs it to read message text. Without it, Enforcer still works in manual mode: staff can flag any message with the "Flag for review" action, or flag a user directly with `/enforcer flag`.
Can a moderator DM the flagged player directly?
That is exactly what Enforcer is designed to avoid. The bot is the only one that contacts the player — with the case number, the record number, and instructions to appeal — so the interaction stays professional and consistent no matter which moderator is on duty.
Is the ledger really tamper-evident?
The ledger channel is configured so only the bot can post in it — permission overwrites deny everyone else send access. The database record is the source of truth and every entry keeps its record number, so a gap or edit is visible.
What does the AI assist feature actually decide?
Nothing. When enabled, it adds a risk score and a plain-language explanation to a flag, clearly labelled "assistive — not a decision". A human moderator still has to choose Warn, Timeout, Mute, Kick, Ban, or Dismiss.