Moderation
Warnings, kicks, bans, mutes, and timeouts โ each logged to your Moderation Log, optionally DMed to the member, with a full per-member strike history.
Overview
All moderation actions run through one shared execution path that checks Aegis's role hierarchy against the target, performs the action, optionally sends the target a DM, writes a row to the dashboard's Mod Log, and posts an embed to whatever channel you've routed that event type to under Logging.
The hierarchy check is Discord's own: Aegis's highest role must sit above the target's highest role, and Aegis needs the relevant permission (Kick/Ban/Moderate Members/Manage Roles). There's no separate check stopping a mod from targeting another mod or admin โ hierarchy is the only gate, other than the server owner always being unbannable.
Commands
Warnings & Notes
/modrecord unwarn only ever removes the most recent warning โ there's no way to target a specific older one from Discord. To delete an arbitrary warning by ID, use the Strike History view on the dashboard's Moderation page.
Punishments
delete_days on /ban doesn't currently delete the banned member's messages โ it's accepted in the command but has no effect. Run /purge separately if you need their messages gone.
/mute and /timeout set share the same duration choices: 1 Minute, 5 Minutes, 10 Minutes, 1 Hour, 1 Day, 1 Week. There's no "permanent" option in the slash command itself.
Utility
Warning Thresholds
Configure automatic punishments that fire when a member's total warning count crosses a threshold, from Moderation โ Warning Thresholds on the dashboard. Each threshold defaults to 0 (disabled) until you set it.
| Threshold | Action | Default duration |
|---|---|---|
| Auto-Kick at warnings | Kick | โ |
| Auto-Mute at warnings | Mute (role) | 1 hour, adjustable |
| Auto-Timeout at warnings | Native timeout | 1 hour, adjustable |
| Auto-Ban at warnings | Ban | โ |
If a warning crosses multiple thresholds at once, only one action fires, in this fixed priority: Ban โ Kick โ Mute โ Timeout โ regardless of which numeric threshold is actually lower.
Thresholds count total lifetime warnings, not recent ones. There's no separate "clear warnings" action exposed today โ the counter only moves through /modrecord unwarn (last warning) or deleting individual entries from the dashboard's strike history.
DM Notifications
Under Moderation โ DM on Punishment, each action has its own independent toggle and optional custom message: Warn, Mute, Timeout, Kick, Ban, and Unmute/Unwarn (one toggle covers both undo actions). Leave the message blank to send Aegis's built-in embed (reason, duration, and total warnings where relevant) instead.
A separate DM on Auto-Punishment toggle covers the Warning Threshold escalations specifically, with its own message supporting {user} {server} {action} {warnings} placeholders. Default: "You have received an automated punishment after reaching {warnings} warnings. Action: {action}. Open a ticket to appeal."
All DMs are best-effort โ if the member has DMs closed or has blocked the bot, it fails silently and never blocks the underlying action.
Moderation Log
Every action posts an embed to whichever channel you've routed its event type to on the Logging page โ Kick, Mute, Timeout, Warn, Unwarn are grouped under "Moderation"; Ban, Unban, Purge under "Admin". Anything left unrouted falls back to the page's Default Log Channel.
Strike History (Dashboard)
The dashboard's Moderation โ Members tab lists every member with warnings or notes. Opening a member shows their full strike history and staff notes, with inline edit/delete on both.
Mute Role Setup
/mute and the mute-based Warning Threshold/Anti-Scam punishments all use one auto-managed role literally named "Muted" (auto-created, gray, repositioned just below Aegis's own top role). It denies sending messages, reacting, speaking, and streaming โ but leaves View Channel and Use Application Commands alone, so muted members can still see what's happening and reach staff via commands.
If channel permissions ever drift (new channels added before the overwrite synced, manual edits, etc.), use Repair Mute Role on the dashboard's Roles page to re-apply the correct overwrites everywhere in one click.