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 warn
Issue a warning. Warns count toward Warning Thresholds (see below) and are visible in strike history.
user: required reason: required
/modrecord unwarn
Remove a member's most recent warning.
user: required reason: optional
/modrecord note
Add a private staff note. Notes never DM the member and aren't shown in /modrecord strikes.
user: required text: required
/modrecord strikes
View a member's 10 most recent warnings plus a total count.
user: required
โš ๏ธ

/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

/kick
Kick a member. They can rejoin with a fresh invite.
user: required reason: optional
/mute
Apply the Muted role (see Mute Role Setup below).
user: required duration: required reason: optional
/timeout set
Apply a native Discord timeout โ€” the member can't send messages or speak in voice until it expires.
user: required duration: required reason: optional
/timeout remove
End an active timeout early.
user: required reason: optional
/ban
Permanently ban a member.
user: required reason: optional delete_days: optional
/unban
Lift a ban by user ID.
user_id: required reason: optional
โš ๏ธ

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

/purge
Bulk-delete recent messages (up to 100 fetched, capped to Discord's 14-day bulk-delete window).
amount: required user: optional
/slowmode
Set channel slowmode. Use 0 to disable.
seconds: required channel: optional

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.

ThresholdActionDefault duration
Auto-Kick at warningsKickโ€”
Auto-Mute at warningsMute (role)1 hour, adjustable
Auto-Timeout at warningsNative timeout1 hour, adjustable
Auto-Ban at warningsBanโ€”

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.