Docs / Moderation

Moderation

MARVIN's Moderation feature gives you every standard mod action — warn, mute, kick, ban, unban, softban, plus private notes — with full logging and optional auto-escalation on repeated warnings. Every action works both as a Discord slash command and as a button on the Warnings & bans page in your dashboard.

Slash commands

Required permission shown in the right column. The bot also needs the equivalent permission to actually carry out the action.

CommandWhat it doesRequired perm
/warn <user> [reason]Logs a warning, DMs the user, may auto-escalate.Moderate Members
/note <user> <text>Private mod note (not DM'd).Moderate Members
/mute <user> <duration> [reason]Discord native timeout. Max 28d.Moderate Members
/unmute <user> [reason]Removes timeout.Moderate Members
/kick <user> [reason]Kicks + DMs (DM is sent before the kick).Kick Members
/softban <user> [reason] [delete_days]Ban + immediate unban — purges recent messages.Ban Members
/ban <user> [reason] [duration] [delete_days]Ban (optionally tempban). delete_days 0–7.Ban Members
/unban <user_id> [reason]Unban by user ID.Ban Members
/pardon <case_id> [reason]Marks an infraction revoked. Drops it from the 30d count.Moderate Members
/case <id>Show one infraction.Moderate Members
/cases <user>Last 25 cases for a user.Moderate Members
/selfmute <duration>Voluntary timeout. Max 7d.(anyone)

Duration formats: 30s, 5m, 2h, 7d, 4w. You can chain: 1h30m. Bare numbers are seconds.

Auto-escalation

Every /warn triggers an escalation check. The bot counts non-revoked warns for that user in the last 30 days and applies the highest-priority rule that's armed (ban > kick > mute). Set a threshold to 0 to disable that tier.

escalation:
  warns_per_30d_to_mute: 3       # → auto-mute for the configured duration
  mute_duration_seconds: 3600     # 1 hour by default
  warns_per_30d_to_kick: 5
  warns_per_30d_to_ban: 0         # off

Configure these on your server's dashboard → Features → Moderation. Pardoning a warning (/pardon or the dashboard button) drops it from the count, so escalation is reversible.

Dashboard

Every action above is available on Infractions in the per-guild dashboard:

  • The action panel at the top: pick action, paste user ID, set reason / duration, submit. Result lands in ~2s.
  • Per-row Pardon and Delete buttons. Pardon = revoke (auditable). Delete = wipe the row entirely.
  • Filter by user ID or by action type.

A dashboard action reaches the bot within about 2 seconds. The same result happens whether you used a slash command or the dashboard button.

What gets recorded

Every action creates:

  1. An entry in the member's case history (type, who did it, reason, duration) — view it with /cases or on the Warnings & bans page.
  2. An entry in your server's Activity log.
  3. A message in your mod-log channel (set it under Features → Activity log).
  4. A DM to the member with the reason, when their DMs are open.

Related: main docs · the Activity log feature for choosing where mod actions are posted · the Tickets feature (which can drop a note in a member's open ticket when they're actioned).