Actions
The full set is deliberately conventional: ban, temporary ban, softban, kick, warn, timeout, mute, jail, shadow-mute and the voice equivalents. Conventional matters here, because moderators arriving from another server should not need to learn a new vocabulary before they can act.
Every action takes an optional reason and, where it applies, a duration. Both end up in the case record, which is what makes the record useful later. Kick and warn notify the member by direct message, in the server language.
- ban, tempban, softban, unban
- kick, with a DM notice to the member
- warn, with automatic actions once a count is reached
- timeout and untimeout, using native Discord timeouts
- mute, unmute, and voicemute for voice channels
- jail and unjail - roles stripped, access narrowed to a restricted channel set
- shadowmute and unshadowmute - the member sees their own messages, nobody else does
- timedrole - a role that removes itself after a set time
- massnick and massrole for bulk changes
- clear by amount or by member, plus cleanup for orphaned roles, dead channels and permission rot
- lock, unlock, lockdown and slowmode
- role, nick, note, notes, case, filter, permcheck, altcheck
Case history
Each action gets a case number scoped to the guild. A case holds the target, the moderator, the reason, the duration and the timestamp, and /case looks one up by its ID.
This is the part that pays off during staff disputes. A warning issued eight months ago by a moderator who has since left is still attributable, still readable, and still counts toward the warning thresholds.
Warning escalation
Warnings can carry consequences without a moderator deciding each time. A rule is a count, a window in days and an action - three warnings in seven days means a mute, for example - and several rules can stack so that repeated offences escalate on their own.
The rules are edited in the Warnings tab of the dashboard, which is also where you see the ones already in place.
Alt-account check
/altcheck scores a member against a small set of heuristics and shows the result: account younger than 7, 30 or 90 days, a default avatar, joined less than a day ago, no roles. Each adds to a score, and bots score zero.
It is a check a moderator runs, not an automatic ban. That is deliberate - heuristics like these produce false positives, and a wrong automatic ban costs more trust than it saves time. The output is evidence for a human decision.
Appeals
/appeal lets a member state their case in up to a thousand characters, and the bot posts it to the appeals channel set in the moderation settings. It replaces the pattern where an appeal is a DM to whichever moderator the member can find.
The channel has to be configured first; without it the command tells the member to ask an administrator rather than silently doing nothing. /whywasibanned covers the other direction, letting a member look up why an action was taken.