Moderation is a compound plugin: one master switch, several tabs. This page covers everything except AutoMod, which is large enough to have its own page.
| License | Premium |
| Tabs | Logging · Cases · Raid Protection · AutoMod · Channel Locks · Feedback · Sticky · Commands |
Every moderation action Cloudy performs is written to a numbered case: #1, #2, #3, counting
up per server and never reused. A case records who was acted on, who acted, the reason, the time and
— for temporary punishments — when it expires.
This is the difference between "I think we banned them for spam last spring" and /case 47.
| Recorded | Types |
|---|---|
| Notes | note |
| Warnings | warn |
| Timeouts | timeout, untimeout |
| Removals | kick, ban, tempban, softban, unban, massban |
| Cleanup | purge |
| Automatic | automod |
/case <number> shows one case in full. /modlogs <member> shows that member's complete history,
newest first. /warnings <member> shows only their active warnings.
The dashboard shows the same history with search and filters, and it is read-only there — cases are created by moderation actions, not by hand.
A warning does two things at once: it creates a case and adds a strike to the member's escalation ledger. The ledger is what AutoMod escalation counts, and strikes can decay after a configurable number of days.
/delwarn removes the strike but keeps the case. That is deliberate: forgiving someone should not
erase the record that it happened.
Punitive actions — warn, timeout, kick, ban — DM the member by default, so nobody is left guessing. Notes never do; they are an internal staff annotation the member never sees.
Set an appeal URL in the settings and Cloudy attaches it to the DM for kicks, bans, tempbans and softbans. It can be a form, a second server, an email address — anything reachable by someone who has just lost access to yours.
Cloudy watches the join rate. When more than n members join within m seconds, raid mode switches on automatically.
| Setting | Default | Meaning |
|---|---|---|
| Join threshold | 10 | Joins needed to trigger |
| Window | 60 s | The span they must fall within |
| Auto-lift | 30 min | Raid mode ends by itself after this |
The defaults suit a mid-sized server. A server that regularly runs advertised events should raise the threshold; a small private server can lower it considerably.
| Action | Effect |
|---|---|
| Alert | Nothing is done to them — staff is notified only |
| Quarantine | A role is applied that removes their access |
| Kick | They are removed and can return later |
| Ban | They are removed permanently |
Quarantine is the default, and the right choice for almost every server. It is the only reversible option: a genuine member caught by a false positive gets their role removed and is fine. A ban issued to fifty real members during a false positive is fifty apologies.
Quarantine requires a role to apply. Create one with no permissions and deny it View Channel in your public categories.
Raid mode posts to an alert channel and can ping an alert role — this is the one notification you want to reach a phone at 3 a.m.
With raise verification level on, Cloudy also lifts the server's own verification requirement for the duration and restores your original setting when raid mode lifts.
Independent of raid mode: reject or flag accounts that are too new.
Set a minimum account age in days — 0 disables the check — and choose what happens to accounts
below it:
| Action | Effect |
|---|---|
| Alert | Staff is notified, the member joins normally |
| Role | A role is applied, e.g. a restricted "new account" role |
| Kick | The account is removed and can return once it ages |
| Ban | The account is removed permanently |
Seven days stops most throwaway spam accounts. Thirty is aggressive and will catch real people who made an account to join your server — pair a high value with Alert or Role rather than Kick.
With this on, Cloudy mirrors some of its rules into Discord's own AutoMod, so they are enforced by Discord at the moment a message is sent rather than by a bot reading it afterwards.
Cloudy creates and maintains these rules itself; do not edit them by hand in server settings, as the next sync overwrites your changes. Switching the option off removes the rules it created.
See AutoMod for what is mirrored and what is not.
Six independent categories. Each has a toggle and its own channel — the toggle decides whether the category is written at all, the channel decides where. A category that is on without a channel logs nothing.
One embed per new member, with avatar, account age and — where Discord provides it — the invite code they joined through. The account age is the single most useful field here: a wave of accounts created the same day is a raid.
Logged when a member leaves or is kicked. Discord does not distinguish the two in the gateway event, so pair this with mod-action logging if you need to tell voluntary leaves from kicks.
Bans, kicks, timeouts and warnings, including the moderator, the reason and the case number. AutoMod hits are mirrored here too, with the rule that fired.
Edited and deleted messages with content, author and channel. The highest-volume category, and the most sensitive one — put it in a staff-only channel.
Channels created, deleted and renamed, plus permission updates.
Joins, leaves and channel switches in voice. Noisy on active servers; give it its own channel or leave it off.
A read-only list of the channels currently locked with /channel lock. Locking denies
Send Messages for @everyone in that channel and remembers the previous state so /channel unlock
restores it exactly.
/lockdown does the same for the whole server at once — the button to reach for while a raid is
in progress, not afterwards.
Locks survive a bot restart and are not cleared by a server reset — they live in Discord's permission overwrites, not in Cloudy's configuration.
An overview of open feedback requests and their stats. Read-only.
A sticky message is pinned to the bottom of a channel: whenever someone posts, the bot deletes its own previous copy and reposts it underneath. Ideal for channel rules that must stay visible in a busy chat.
One sticky per channel. Creating a second one for the same channel replaces the first.
Required
The channel this sticky stays pinned to.
Up to 256 characters · optional
Optional heading above the message body.
1–2000 characters · required
The body. Supports Markdown; reposted to the bottom of the channel on activity. You can also design it as a full embed with the embed builder.
Sticky changes are pushed to the bot immediately, not on a poll — a saved edit is live within seconds.
Removing a sticky from the dashboard stops the reposting. /sticky-remove-msg does the same from
inside Discord.
| Command | Does | Requires |
|---|---|---|
/warn | Warn a member — case plus a strike | Moderate Members |
/delwarn | Remove a strike, keep the case | Moderate Members |
/note | Add a private staff note, no DM | Moderate Members |
/timeout | Put a member in timeout | Moderate Members |
/untimeout | End a timeout | Moderate Members |
/kick | Kick a member | Kick Members |
/ban | Ban a member from the server | Ban Members |
/tempban | Ban for a set duration, lifted automatically | Ban Members |
/softban | Ban and immediately unban — clears their recent messages | Ban Members |
/unban | Lift a ban | Ban Members |
/massban | Ban many IDs at once | Administrator |
| Command | Does | Requires |
|---|---|---|
/case | Show one case by number | Moderate Members |
/modlogs | Full history for one member | Moderate Members |
/warnings | Active warnings for one member | Moderate Members |
| Command | Does | Requires |
|---|---|---|
/purge | Bulk-delete messages, with filters | Manage Messages |
/del-msg | Delete a specific message | Manage Messages |
/slowmode | Set slowmode on a channel | Manage Channels |
/channel lock | Lock a channel | Manage Channels |
/channel unlock | Unlock a channel | Manage Channels |
/lockdown | Lock or unlock the entire server | Manage Server |
/sticky-remove-msg | Remove a sticky message | Manage Messages |
/new-changelog | Post a changelog entry | Manage Server |
/massban deliberately requires Administrator rather than Ban Members: it is the most
destructive command Cloudy has, and Ban Members is a permission plenty of servers hand to junior
staff.
The permission column is what the member running the command needs. Cloudy additionally needs the same permission itself, and its role must sit above the target's highest role — see Permissions.