Mod-log, DMs and auto-escalation
Everything on this page lives on the dashboard's Moderation page. Saving it requires the Manage Server permission, since these settings decide who gets banned automatically.
The mod-log channel
The mod-log is your staff's paper trail: one message per moderation event, in one channel, in order.
Pick it under Mod-log channel. The bot needs Send Messages and Embed Links there. Text, announcement, voice and stage channels all work, and so do forum and media channels:
- pick a forum and FlaviBot opens a new post for every event
- pick a forum, then a specific post, and everything goes into that post
Each entry carries the action and its case number, the member (with their ID), the moderator, the reason, the duration when there is one, and how long ago it happened. Colours run from grey for a note through amber, orange and red as the sanction gets heavier, so a glance down the channel surfaces the worst events.
Posting to the mod-log is best effort. If the channel was deleted or the bot lost access, the case is still recorded, you just lose that one message.
Show notes in mod-log is off by default: private staff notes stay out of the channel. Turn it on if your staff prefers everything in one stream.
What the member is told
Four switches, all on by default:
| Switch | Fires on |
|---|---|
| DM target on warn | /warn |
| DM target on mute | /mute |
| DM target on kick | /kick |
| DM target on ban | /ban, /tempban, /softban |
The DM says what was done, in which server, for how long when there is a duration, and the reason you typed.
Three cases never produce a DM, whatever these switches say:
- notes, which are internal by design
- warns handed out by a Discord AutoMod rule, otherwise a spam filter would DM someone five times in a row
- any target who is not on your server, for example a ban by ID of someone who never joined
For kicks and bans the DM is sent before the action, because afterwards there is no shared server left through which to reach them.
Letting members appeal
Set an appeal link (a full web address, up to 512 characters) and every moderation DM gains an Appeal button pointing at it.
Bind a ban appeal form in the Appeal form field just below and /ban
and /tempban DMs point their button at that form instead. /softban DMs,
like warn, mute and kick DMs, keep using the plain link, so it is worth setting
both. See responses and ban
appeals.
Warn decay
By default a warn stays active forever. Set Warn decay to a number of days (1 to 365) and a warn stops counting after that long.
Decay never deletes anything. An expired warn is still in the member's history, tagged as expired, it simply no longer counts toward auto-escalation.
One thing to know: the expiry is stamped on the warn when it is issued. Changing the setting later applies to new warns, not to the ones already on record.
Auto-escalation
Auto-escalation is the rule "three strikes and you are out", written down once so no moderator has to remember it.
Each rule reads N active warns, then do X, and says which cases it counts:
| Field | Accepted values |
|---|---|
| active warns | 1 to 50 |
| action | mute, kick or ban |
| duration (mute only) | at least 60 seconds, at most 28 days |
| counts | at least one of: direct warns, mutes, kicks, bans, tempbans, softbans |
What a rule counts
Every /mute, /kick, /ban, /tempban and /softban records a warn as
well as the sanction itself. That warn is how the sanction gets its case number
and its line in the member's history, and it counts toward auto-escalation like
any other warn. So by default a member muted three times has three active warns,
and a rule at 3 fires.
Under each rule, the Counts checkboxes decide which of those warns the rule adds up:
| Checkbox | The warns it covers |
|---|---|
| Direct warns | /warn, and the warns handed out by a Discord AutoMod rule or an autoresponder action |
| Mutes, Kicks, Bans, Tempbans, Softbans | the warn each of those sanctions records |
Everything is ticked on a new rule, and on every rule saved before the checkboxes existed, so nothing changes until you untick something. Unticking only changes what the rule counts: the sanction is still recorded, keeps its case number, and stays in the mod-log and the member's history.
Two examples:
- Only real warns lead to a sanction. Tick only Direct warns on a rule at 3: a member muted three times is not touched, a member warned three times is.
- A separate ladder for repeat mutes. Next to that rule, add a rule at 2 counting only Mutes, set to ban: the second mute bans the member, whatever their warn count.
Which rule applies
After every strike, FlaviBot looks at the rules that count that strike. A rule that ignores it is skipped, so a mute never fires a rule that only counts direct warns.
Rules that count the same cases form a ladder, and the highest rule reached applies. With rules at 3, 5 and 10, a member landing on their sixth warn gets the 5 rule, not the 3 rule. Two rules on the same ladder cannot share a threshold.
Rules that count different cases are separate ladders, and may share a threshold. When one strike reaches rules on several ladders at once, the heaviest sanction applies, only that one: ban, then kick, then the longest mute.
What never counts: notes, revoked cases, decayed warns, and the sanctions auto-escalation applies itself (otherwise a rule would feed itself forever).
Two safeguards are always on. The server owner is never auto-escalated, and the same warn can never trigger the same sanction twice, so two moderators warning at the same instant cannot produce a double ban.
An automatic sanction is recorded exactly like a manual one: it gets a case number, appears in the mod-log and in the member's history, and is attributed to the bot. Its reason says what was counted: "Auto-escalation: reached 3 active warns" for a rule that counts everything, "reached 2 active mutes" or "reached 3 active direct warns" for a rule that counts one kind.
