What the moderation system does
Every moderation action — a slash command, an auto moderation hit or a decision taken in the
dashboard — is stored as a numbered case. Cases can be looked up, revoked and appealed, and
they are mirrored into the moderation log channel.
Open Moderation → Settings in the dashboard:
- Moderator roles — members holding one of them may use the /mod commands. Administrators
always can.
- Moderation log channel — every case is posted there.
- Notify punished members — sends a direct message with the reason, the duration and a link
to the appeal form.
- Warn escalation — punish a member automatically once they reach a given number of active
warns. Warns can also expire after a number of days.
- Auto moderation — six filters (invites, links, blocked words, word lists, mention spam and
spam) that run on Discord's own AutoMod, see below.
Every filter you switch on is created as a rule in Server Settings → Safety Setup → AutoMod and
kept in sync with the dashboard when you save. Discord itself does the matching, so a filter also
catches edited messages and works while the bot is restarting. The filters are:
- Invite filter — invites to other Discord servers.
- Link filter — every link that is not on the whitelist.
- Blocked words — words and phrases (up to 1000, a * at the start or the end is a wildcard),
regular expressions (up to 10, Rust syntax, no look-around) and a list of allowed words.
- Word lists — Discord's built-in lists of profanity, sexual content and slurs, plus allowed
words.
- Mention spam — more than 1–50 different member or role mentions in one message, with optional
mention raid protection.
- Spam — Discord's own detection of spam content, nothing more to configure.
Each filter has the same options: the message can be blocked (optionally with a text shown to its
author, up to 150 characters), Discord can post an alert to a channel of your choice, channels and
roles can be ignored, and moderators can be exempt. Discord needs at least one action per rule, so
if you neither block the message, nor pick an alert channel, nor use a timeout, the message is
blocked anyway.
Discord blocks the message, posts the alert and applies the timeout by itself. Then the bot records a
case (shown in the case log with the source “Auto moderation”) and applies the punishment of the
filter: a warn, a kick or a ban. A timeout (the “Mute” punishment) is applied by Discord for the
invite, link and blocked-word filters, and by the bot for the others.
- Manage Server to create, update and delete the AutoMod rules (and Moderate Members for
timeouts). Without it the settings are saved, but Discord is not updated: the page says so, and
every filter shows “Cannot check Discord”.
- Next to every enabled filter the page shows whether its rule exists in Discord: Active in
Discord, Not created (it is created on the next save), Missing in Discord or Disabled in
Discord (somebody deleted or switched off the rule there; saving restores it).
- Discord allows one rule each for spam, word lists and mention spam per server, and six rules with
keywords (the bot uses three). If the server already has a rule of the same type of its own, saving
shows a warning and that filter is not created: remove the other rule, or keep it and leave the
filter off.
The whitelist is not a list of plain domains: it accepts one wildcard character, *, which stands
for “anything”, at the start or the end of a pattern. Everything else is matched literally, and a
pattern always covers the deeper pages of whatever it matched. Discord's allow list takes 100
entries and every pattern uses two to four of them; the counter above the list shows how many are
left.
| Pattern | Ignores |
| --- | --- |
| youtube.com | the domain, all of its subdomains and every page |
| *.wikipedia.org | subdomains only, not wikipedia.org itself |
| discord.com/channels/* | only links pointing at a channel |
| *docs* | any link containing “docs” |
The settings page has a tester: paste a link and it tells you which pattern lets it through. The
tester is an approximation, Discord has the final word. Plain domains you configured before keep
working exactly as they did.
Moderation → Report & appeal forms is a form builder. Add as many questions as you need — short
text, long text, numbers, yes/no, a list of choices, a user or channel ID, a message link or a
plain link — mark them required or optional and choose the channel the submissions are posted to.
Each form has its own public link:
https://<dashboard>/submit/<server id>/report
https://<dashboard>/submit/<server id>/appeal
/mod link prints both links in Discord.
Reports are open to members of the server. Appeals are open to members, to banned users and to
anyone who was punished on the server before — a banned user can still open the appeal page and
send the form.
A submission arrives in two places at once:
- In the configured Discord channel, as an embed with Take in review, Approve and
Reject buttons. Approving or rejecting asks for a response that is sent to the author.
- In Moderation → Submission queue, with the same actions.
Approving an appeal automatically revokes the case it was filed against: the ban is lifted, the
time out is removed and a counterpart case is written to the log.
/mod warn, /mod unwarn, /mod mute, /mod unmute, /mod kick, /mod ban, /mod unban,
/mod note, /mod case, /mod cases, /mod purge, /mod slowmode, /mod link.
Durations accept values like 30m, 2h, 7d; a bare number is read as minutes. Mutes use the
native Discord time out and are capped at 28 days. Temporary bans are lifted by the bot once they
expire.
Moderation → Audit log records what happens on the server. The bot creates a webhook in the
channel you choose and posts through it, so the entries stay visually separate from the bot's own
messages.
Twenty-one events are covered, grouped into four categories:
- Members — joins, leaves, kicks, bans, unbans, role changes, nickname changes, timeouts.
- Messages — deletion, edits shown
as a diff, bulk deletion.
- Voice — joining, leaving and switching channels.
- Server — channels, roles and server settings.
Each category — Members, Messages, Voice and Server — can post to a channel of its own, so the
voice noise does not bury the bans. Every event can also be switched off on its own, or sent to yet
another channel. The most specific setting wins: the event's channel, then its category's channel,
then the default audit log channel. Leave a field empty to fall back to the next one.
You can also ignore whole channels or roles, skip everything bots do, and give the webhook its own
name and avatar.
- Manage Webhooks in every channel the log posts to — without it the bot cannot create the
webhook and the log stays silent.
- View Audit Log on the server, so bans, kicks and role changes can name the moderator behind
them.
Discord sends only the new version of an edited message, and nothing at all for a deleted one, so
the previous text comes from the bot's own cache (the last 500 messages per channel). Older
messages, or messages from before the last restart, are logged with “content unavailable” instead.