Verification
Press Verify in the server
A moderator posts the Verify card once with /verifysetup. Members who already have the role are told so and nothing else happens.
Get a code by DM
PROTATE sends a DM that names your server. Pressing its button shows a random six-character code.
Type the code back
A correct code gives them your verified role, removes the unverified one if you use it, and goes in your log.
Codes expire after 3 minutes, members get 3 tries, and there is a button for a fresh code. PROTATE deletes the DMs it sends 3 minutes after sending them, so nothing lingers in a member's inbox. The role only matters if your channels use it, so make your main channels visible to Verified and leave one verify channel open to everyone.
AutoMod
Every message is checked for:
- words on your banned list
- server invite links
- more than 5 mentions in one message
- 12 or more letters that are mostly capitals (over 80%)
- 5 messages in 6 seconds from one member
A message that breaks a rule is deleted. The member gets a warning and a DM explaining why, and it goes in your log. Your moderators are never checked.
It repeats at every third warning after that.
Commands
The server owner can use all of these, and so can everyone with a role the owner adds with /addmod.
| Command | What it does |
|---|---|
| /setup | Sets the verified role, unverified role and log channel. Run it with nothing filled in to see what is set. |
| /verifysetup | Posts the Verify card in the current channel. |
| /warn user, reason | Adds a warning and sends the member a DM. |
| /warnings user | Shows a member's last ten warnings. Only you see the reply. |
| /clearwarnings user | Clears a member's warnings. |
| /timeout user, minutes, reason | Stops a member talking for up to 28 days. |
| /untimeout user | Ends a timeout early. |
| /kick user, reason | Removes a member after sending them the reason. |
| /ban user, reason | Removes the member, sends them the reason, and removes them again if they come back. Details below. |
| /unban user | Lets a banned member join again. |
| /banlist | Shows who is banned. Only you see the reply. |
| /addmod role | Lets everyone with that role use the moderation commands. Server owner only. |
| /removemod role | Takes that access away from a role. |
| /mods | Lists the roles that can use the moderation commands. |
| /purge count | Deletes the last 1 to 100 messages in the channel. |
Setting it up
- Add PROTATE to your server from Discover. You need the Manage Server permission.
- Give its role Kick Members, Manage Messages and timeout, and place that role above the roles it should moderate.
- Make a Verified role, and an Unverified role if you want one. Set your main channels to Verified only.
- Run
/setupwith the verified role's id and pick a log channel. Roles are entered by id for now. - Run
/addmodwith the id of your moderator role so those members can use the commands. The server owner always can. Settings, warnings and bans are kept separately for each server. - Run
/verifysetupin the channel where people should verify.
What it does not do
No image captcha
The code is plain text. It stops raids and people who skip steps, but a script that reads DMs could copy it.
Bans are kept by the bot
Jaxcord's bot API has no ban, so PROTATE keeps its own list. It removes a banned person when they join or speak and checks every server's member list every 15 seconds. They can get back in for a moment, and for as long as PROTATE is offline.