Auto-moderation
VV-Bot stops invite links, words you choose, mass mentions, spam and raids by itself, and records each one as a moderation case.
How it works
The filtering is done by Discord's own AutoMod. VV-Bot creates its own AutoMod rules in your server from the settings you choose on the dashboard, and keeps them in place. This has three good sides:
- a message is blocked before anyone sees it;
- the bot does not need to read your members' messages to do this;
- you can see the rules yourself in Discord, under Server Settings, AutoMod. VV-Bot's rules are the ones named "VV-Bot: ...".
VV-Bot never changes or deletes any other AutoMod rule of your server. If someone changes or deletes one of VV-Bot's rules in Discord, VV-Bot puts it back the way the dashboard says. To change what is blocked, use the dashboard.
Switch it on
- On the dashboard, open your server, then Moderation, then Auto-moderation, and switch the feature on.
- Make sure VV-Bot's role has the Manage Server permission. Discord only lets a bot with it set up AutoMod rules and see what they block. To time out and remove members, the bot also needs Timeout Members and Kick Members, and its role must be above the members it acts on.
- Choose a staff alert channel that only staff can see. Blocked messages, timeouts and raids are reported there. Without one, the bot uses the admin alerts channel if you set one.
- Look at each filter and save. Within a few seconds the page shows "In place" for each filter that is on.
The filters
- Invite links
- Links that invite people to other Discord servers (discord.gg, discord.com/invite and common invite redirects). Invites to your own server stay allowed: the bot reads your server's invites to know them, so a new invite works a few seconds after it is made. On by default.
- Blocked words
- Discord's own word lists (slurs and hate speech, swear words, sexual words), plus your own words and phrases. Upper and lower case do not matter. A word matches as a whole word; a star matches more:
bad*also blocks "badly",*badalso blocks "notbad",*bad*blocks it anywhere. Allowed words are never blocked, even when they contain a blocked word. Discord's slurs list is on by default. - Links
- Links to websites, except the websites you allow (and their subdomains: allowing example.com also allows www.example.com, but not notexample.com). Pictures and files uploaded to Discord are never blocked. Off by default.
- Mass mentions
- A message that mentions more members and roles than you allow (5 by default). On by default.
- Spam
- Discord's own spam filter. On by default.
For each filter you choose whether staff are told in the staff alert channel, and for invite links, your own words, links and mass mentions whether Discord also times the member out each time. Discord's word lists and its spam filter cannot time anyone out; strikes can.
When a message is blocked
- The member sees a short notice from Discord saying why their message was not sent. Nobody else sees the message.
- If you chose it, Discord posts a notice with the blocked message in the staff alert channel.
- The blocked message counts as a strike. The first strike of a member opens a time window (10 minutes by default). All their strikes within that window are one case, so a member who floods the chat does not fill your case list. The case says which filter blocked them and, for word filters, which word Discord matched. It never contains the message itself.
- When a member reaches the strike limit within the window (3 by default), the bot times them out (10 minutes by default), records the timeout as a second case and tells them by DM if your moderation settings send DMs.
The cases appear with all other cases under Moderation, with "automod" as where they came from. The Auto-moderation page lists the members of the last 30 days with their case numbers.
Who is never filtered
- Roles that count as staff on VV-Bot (Helper and higher), unless you switch that off.
- Roles and channels you choose. Discord allows 20 roles and 50 channels in all.
- Members with Manage Server or Administrator. Discord never filters them.
Raid protection
A raid is many new accounts joining at once to spam or harass. When more members than you allow join within a short time (more than 10 within 30 seconds by default), VV-Bot turns raid mode on:
- it tells staff in the staff alert channel, with a button to end raid mode;
- for the next 15 minutes (you can change it), members whose Discord account is younger than 7 days are dealt with when they join: removed (the default; they get a message saying they are welcome to come back later), timed out until raid mode would end, or only counted;
- older accounts join as usual.
Raid mode ends by itself. Staff can end it sooner with the button on the alert, with /raidmode off or on the dashboard, and turn it on by hand with /raidmode on or on the dashboard.
Separately, you can set a minimum account age to join (off by default). Newer accounts are removed with a message saying when they can come back. Each removal and timeout is a case.
Commands
/automod- Shows what is blocked, whether VV-Bot's rules are in place, strikes and raid mode, with a Fix it button when something is wrong. Mods and higher.
/raidmode on- Turns raid mode on now.
minutes:sets how long. Mods and higher. /raidmode off- Turns raid mode off now. Mods and higher.
The settings themselves are on the dashboard. Seeing the Auto-moderation page needs the same level as /automod; changing its settings needs the level of /config set (Admin). Command overrides on the Commands page apply to both.
Discord's limits
Discord allows per server one spam rule, one rule with its word lists, one mass mention rule and 6 rules with your own words or patterns. VV-Bot uses up to three of those six. If your server already has its own rule of a kind Discord allows only once (for example Discord's own "Block mention spam"), VV-Bot cannot add its rule of that kind. The page then says "Discord's limit reached" and names the rule in the way: delete or switch off that rule in Server Settings, AutoMod, or switch the VV-Bot filter off.
A list of your own words can hold 1000 words of up to 60 characters, and 100 allowed words. You can allow 40 websites.
What is kept
- Cases: like every case, with the member's Discord id, the reason (the filter and the matched word, never the message) and when.
- Strike windows: the member's Discord id, how many messages were blocked, by which filters and the case numbers. Kept 30 days.
- Raid modes: when, how long, who started and ended them, and how many joined. Kept 90 days.
- The ids of VV-Bot's AutoMod rules and whether they were in place at the last check.
Joins are counted only in the bot's memory and are not stored. All of it is in your server's data download and is deleted with it.
Switching it off or removing VV-Bot
Switching auto-moderation off removes VV-Bot's AutoMod rules from your server within a minute. If you remove VV-Bot from your server first, Discord keeps its rules running: delete the rules named "VV-Bot: ..." in Server Settings, AutoMod.