UnumBeta

Moderation and cases

Warn, mute, kick and ban from Discord, with every action written to a case you can look up later.

What it covers

Moderation is the commands your team runs in Discord, the case record each one writes, and the automod rules that act on messages without anyone being asked. All of it is on one dashboard page, under Moderation in the sidebar.

There is no on and off switch for this page. The commands are available as soon as Unum joins, and automod does nothing until you add a rule. Moderation cases and warnings are on every plan. AutoMod rules, cross-channel spam protection, player reports and warning escalation need Plus.

The commands

Every one of these replies privately, so only the moderator who ran it sees the confirmation. Nothing is announced in the channel.

/warn user reason
Records a warning. Both a user and a reason are required. The command itself sends the member nothing. If your server uses warning escalation (Plus), the warning counts toward its ladder, which can time out, kick or ban the member on its own; see Warning escalation below.
/mute user reason duration
Times the member out using Discord timeouts. Duration is in minutes and defaults to 10 if you leave it empty.
/kick user reason
Removes the member. The reason is optional.
/ban user reason duration
Bans the member. Leave duration empty for a permanent ban, or give it in minutes for a temporary one.
/unban user reason
Lifts a ban and records that too.
/case id
Prints one case back: its type, who it was about and the reason given.
/pardon member reason
Pardons the member's most recent unpardoned warning in this server that counts toward escalation, and replies with which one, its date and its reason. Warnings from Server Guard or synced from another server never count, so they are skipped. The reason is optional, up to 500 characters. A pardoned warning stays in the case history but stops counting.

A command fails when the target outranks Unum, and always fails against the server owner. See Permissions and role hierarchy.

Cases

Each action writes a case holding the type, the member it was about, the moderator, the reason and the time. Case History on the moderation page lists them newest first. Automod and the automatic features write cases too, under their own name rather than a person: AutoMod, Server Guard, Automatic escalation and Spam protection.

A temporary ban is stored as a tempban with an expiry. A background job checks for expired tempbans every five minutes and lifts them, then records an unban case, so a ban can outlive its duration by a few minutes. If the member was permanently banned after the temporary ban, the expiry leaves that ban in place.

Automod rules

A rule is a condition and an action. Add one under Automod Rules: pick a Rule Type, pick an Action, fill in the one setting the type needs, and press Add Rule. It applies from the next message.

Bad Words
A comma-separated list of up to 500 words or phrases, each up to 100 characters. Matching ignores case and only matches whole words, so "ass" does not catch "class". It works with accented and Indic scripts too.
Excessive Mentions
Trips above your Mention Threshold, a whole number from 1 to 50 that defaults to 5. A message with exactly five mentions passes.
External Links
Links to other sites. Add Allowed domains (for example youtube.com) to let a site and its subdomains through. GIF links (Tenor, Giphy) and Discord images and media are never flagged by this rule. Unknown or expired invites are not flagged either.
Server Invites
Invites to other Discord servers. Invites to your own server are never flagged, and neither is an invite Discord cannot resolve (unknown or expired).
Excessive Emojis
Trips above your Emoji Threshold, a whole number from 1 to 50 that defaults to 10. A family, flag or skin-toned emoji counts once.
Excessive Caps
Trips when more than 70 per cent of the letters are capitals and there are at least ten letters. Links, mentions and custom emoji names are not counted.

Then the action, which is what the member actually experiences:

Delete Message
The message goes, and nothing is recorded.
Warn User
The message is deleted, Unum posts a short note in the channel naming the member, and a warning case is written.
Mute User
A ten-minute timeout and a mute case. The ten minutes are fixed and cannot be changed.
Ban User
A ban and a ban case, in this server only.

Warning escalation

Warning escalation needs Plus. Once a member collects enough warnings, Unum can act on its own, with a ladder you configure from the Moderation page.

Pick a preset or build your own steps. Record only keeps the count but never acts, and is what every server starts on. Lenient steps up through timeouts to a kick; Standard and Strict go on to a ban. Once a member is past the last step, each further warning repeats it.

Lenient
Counts warnings from the last 14 days: at 4 warnings, timed out for 10 minutes; at 6 warnings, timed out for 1 hour; at 10 warnings, kicked.
Standard
Counts warnings from the last 30 days: at 3 warnings, timed out for 1 hour; at 5 warnings, timed out for 1 day; at 7 warnings, kicked; at 9 warnings, banned.
Strict
Counts warnings from the last 90 days: at 2 warnings, timed out for 1 hour; at 3 warnings, timed out for 1 day; at 4 warnings, kicked; at 5 warnings, banned.

Editing any preset step, or the counting window, switches you to Custom, with up to ten of your own steps. Each step needs more warnings than the one above it, and a ban must be the last step.

Only warnings created within the counting window, and after the ladder was turned on, count toward the ladder. Editing the steps restarts the ladder, so earlier warnings stop counting; changing only the window keeps the start. A warning that Server Guard issues, or one synced in from another server, never counts, and a pardoned warning stops counting right away. Pardon a warning from Case History on the Moderation page or with /pardon. A pardon never undoes an action already taken.

The DM toggle controls whether the member is sent a message when the ladder acts, on by default. An optional notice channel can also be set, where Unum posts one line for each automatic action, and for an action it could not take.

A warning counts toward the ladder only when the person who gave it outranks the member, so warnings never add up against anyone whose highest role is at or above that of the person who gave the warning. AutoMod warnings always count. Whether each warning counts is decided the first time Unum checks it after it is given, and that decision then never changes; if Discord cannot say who ranks higher, Unum checks again when the member gets another warning within 15 minutes, and otherwise the warning does not count.

Only the server owner and Administrators can change the ladder. It never acts on the server owner, bots, Administrators, members with Manage Server or the Bot Manager role. When Unum cannot check whether the member is staff, it does nothing and says so in the notice channel. A warning added from the dashboard must name a current member of the server.

Cross-channel spam

A separate page, Cross-Channel Spam, for the one pattern automod cannot see: the same message pasted into several channels at once. It watches a rolling 60-second window per member and counts how many different channels were hit. It is off until you turn it on.

Action on detection
Timeout (the default) or Ban.
Timeout duration (minutes)
Only used when the action is Timeout.
Channels to trigger (exact match)
How many channels the same text has to appear in. Messages shorter than 15 characters never count as an exact match.
Channels to trigger (with a link)
A lower count used when the message carries a real link or a Discord invite. GIF links and Discord images do not count, and neither do links to the safe content sites listed under the link burst. If Discord cannot say whether a member is exempt, they are treated as exempt. It must be less than or equal to the exact-match value.
Channels to trigger (link burst)
How many channels have to carry links to the same site, even when the messages differ. Links to YouTube, Twitch, Kick, X, Reddit, Instagram, TikTok, Spotify, SoundCloud and Discord messages never count as spam links, though they still count as repeated text.
Exempt roles
Never flagged. The server owner, Administrators, members with Manage Server, the Bot Manager role and bots are always exempt too.
Alert channel
Where the review embed is posted. Leave it unset and incidents are only recorded on the dashboard.

When it triggers, the tracked messages are deleted, the member is timed out or banned, a case is written if that worked, and the alert carries a Restore / Reverse button. Reversing unbans or clears the timeout. Recent Incidents on the page does the same job for anyone with dashboard access.

Player reports

Player Reports gives members a way to report each other in private rather than in public. Set it up with two fields on that page: a Forum Channel ID, which has to be a Discord forum channel, and Staff Role IDs as a comma-separated list.

  1. A member runs /report and picks someone. They cannot report themselves.
  2. A form asks for a reason, a description, and optionally evidence.
  3. A thread appears in your forum channel, numbered and named after the reported member, with the answers as an embed.
  4. Staff work the thread and finish with /report-close, which records the resolution and locks and archives the thread.

Only the reporter and holders of a staff role may post in a report thread. Anyone else has their message deleted and is sent a direct message saying why. Staff can widen that with /report-add, which authorises one more member for that thread. Open reports are listed on the dashboard page.

Linked servers

If your servers are joined in a group and Shared Moderation is on for it, a ban, temporary ban, kick or unban is repeated in every other server in the group, and each one gets its own case marked as synced from the server where it started. Mutes are not shared, and neither is anything warning escalation does: its actions stay in the server where the warnings were given. If a server in the group cannot be actioned, the command reply tells you how many failed rather than failing outright.

When something does not work

A command fails on one specific member
Their highest role sits above Unum's, or they own the server. See Permissions and role hierarchy.
Timeouts fail but bans work
Timeouts need Moderate Members, which is a separate permission from Kick Members and Ban Members.
Automod ignores a channel
Unum needs View Channel and Read Message History to see messages there, and Manage Messages to delete them. A channel override can deny any of those on its own.
A member can run moderation commands
Discord offers every command to everyone until you say otherwise. Restrict them in Server Settings, Integrations.
Nothing arrives in the spam alert channel
Check an alert channel is selected, and that Unum has View Channel, Send Messages and Embed Links in it. Incidents are still recorded on the dashboard when the post fails.
Reports do nothing
The forum channel has to be a forum channel, and Unum needs access to it to create threads. Without a saved configuration, /report answers that reports are not set up.
A moderator cannot open the dashboard page
Dashboard access needs the server owner, an Administrator, or the server's Bot Manager role, set under Settings, General.