Moderation System¶
Moderation in Armory Bot is built around one idea: every action leaves a case behind. Warn, timeout, ban — each one lands in the case history, so any moderator can pick up where the last one left off.
Command Groups¶
/mod— main moderation actions/cases— case, notes, history, and report tools
Core Actions¶
Member actions (/mod)¶
- Kick, ban, softban, unban, tempban
- Timeout and untimeout
- Warn, warnings, clearwarn, clearwarns
- Purge message batches with optional filters
- Channel lock/unlock and slowmode
- Add/remove roles with hierarchy checks
- Massban helper for raids, bot-message cleanup, snipe, history import
Case tracking (/cases)¶
- View/list/update case reasons
- Stats and moderation activity summaries
- History export
- Internal moderator notes
- Incident report command
Warning and Escalation Behavior¶
Warnings are persisted and surfaced through /mod warnings and case records.
Warning threshold actions and automod policy settings are configured on the
Moderation and Automod dashboard pages (open with /dashboard) —
"configure on the web, act in Discord" (ADR-0015).
Configuration (Dashboard)¶
- Moderation page — mod log channel, public log channel, mute role, report channel/webhook, per-action defaults and DM templates
- Automod page — master toggle, spam/link/badword/mention/caps rules with per-rule thresholds and exemptions, warning threshold/action/decay
Honeypot Channel¶
The honeypot is a trap channel: post the bait message in it, and anyone who sends a message there gets banned. There's no command for this — it's configured entirely on the Moderation dashboard page.
Set an enable toggle, pick the channel, write the bait message, and choose how many days of that member's recent messages to delete on ban (0-7, default 1). Saving posts the bait message to the channel through the bot; editing and saving again updates that same message in place instead of posting a new one.
Nobody is safe except the guild owner. The exemption is owner-only — admins and moderators are not exempt and will be banned like anyone else if they post in the honeypot channel. The trap message itself is deleted; webhook and system messages are deleted but not banned, since there's no member to ban.
Every successful ban increments a lifetime catch counter shown read-only on
the dashboard, and posts a "catch #N" line to your mod log channel if one is
set. The ban itself is a normal case with reason "{name} triggered" — for
example "Honeypot triggered", or "Bear Trap triggered" if renamed — and
respects the ban announcement configured on the Welcome page, same as any
other ban.
The channel name shown on the dashboard is cosmetic and free to rename — leave it blank for the default "Honeypot".
Typical Workflow¶
- Add a warning:
- Escalate if behavior continues:
- Inspect history:
- Update case details when needed:
Bulk and Channel Controls¶
Purge¶
Lockdown and slowmode¶
For a server-wide emergency, /server lockdown locks every text channel at once.
Permissions¶
Moderation commands require:
- Manage Server permission, or
- Explicit moderation override using
/permissions grant command_group:moderation ...
Role assignment commands (/role add, /role remove) require the roles command category.
Logging and Audit¶
Moderation actions create case records and can be routed to a moderation log channel — set the mod log channel on the Moderation dashboard page, and event logging on the Logging page (both opened with /dashboard).
Troubleshooting¶
Action fails with permission error¶
- Confirm bot role is above target member role.
- Confirm bot has required Discord permission for the action.
- Confirm moderator has required command permission.
Warning escalation not matching policy¶
- Check policy values on the Moderation and Automod dashboard pages.
- Verify
/mod warningsoutput for the target user.
Purge removes fewer messages than expected¶
- Message filters (
user,contains) may reduce matches. - Discord bulk-delete constraints can limit removable messages.