owobot - The coolest bot ever written
Introduction
owobot is a powerful Discord bot designed to handle a wide range of tasks in your server, from moderation to entertainment. It takes advantage of several cutting-edge discord features, such as message buttons and modals.
Features
Vetting
In order to catch trolls and other troublemakers before they get access to your server, owobot can be configured to require new users to go through a vetting process before gaining access to the server.
To create your vetting message, just choose any message, click More > Apps > Make Vetting Message, and that's it! owobot will delete the message and post a new one with a message button which can be used by users to request vetting.
When users click the request vetting button, owobot will send a vetting request in the vetting request channel.
If a moderator accepts the request, a new ticket will be created in which mods can talk to the user. When they're finished, they can either kick the user which will automatically close the ticket, or they can approve the user using the /approve command.
Commands:
/vetting rolecan be used by anyone with theManage Serverpermission to set the server's vetting role. owobot will assign this role to all new users./vetting req_channelcan be used by anyone with theManage Serverpermission to set the server's vetting request channel. This is where owobot will post vetting requests./approvecan be used by anyone with theKick Memberspermission to approve users that are in vetting.
Tickets
owobot can create tickets to allow users to privately talk to your server's moderators. Only one ticket per user can exist at any time. When a ticket is closed, a log containing all the messages in the ticket is sent to the event log ticket channel.
Commands:
/ticketcan be used by any user to create a ticket for themselves/mod_ticketcan be used by anyone with theManage Channelspermission to create a ticket for another user/close_ticketcan be used by anyone with theManage Channelspermission to close a user's ticket/ticket_categorycan be used by anyone with theManage Serverpermission to set the category in which ticket channels are created.
Eventlog
The eventlog sends important events such as kicks/bans, role changes, etc. to a configurable discord channel.
Commands:
/eventlog channelcan be used by anyone with theManage Serverpermission to set the channel for the event log/eventlog ticket_channelcan be used by anyone with theManage Serverpermission to set the channel in which ticket conversations logs will be sent
Reactions
owobot has a very powerful reaction system which can find content inside of messages and then react with an emoji or reply with text.
A single reaction consists of a match type, match, reaction type, reaction, and an optional random chance.
The match type can either be contains or regex. The contains matcher checks if a message contains the match. The regex matcher checks if a message matches a regular expression and extracts any submatches. If you're using the regex matcher with the text reaction type, you can include submatches in your reply by putting the submatch index in curly braces (for example: {1} or {5}).
The optional random chance allows you to add reactions that only occur a certain percentage of the time. Setting it to 10, for example, means the reaction will only happen in 10% of detected messages.
Commands:
/reactions addcan be used by anyone with theManage Expressionspermission to add new reactions/reactions listcan be used by anyone with theManage Expressionspermission to get a list of all existing reactions/reactions deletecan be used by anyone with theManage Expressionspermission to delete an existing reaction
Note
The
/reactions deletecommand has an extra check to make sure the user hasManage Expressions, so you can safely add a role override on the/reactionscommand without allowing anyone without that permission to delete reactions.
Reaction Roles
Reaction roles allow users to easily assign roles to themselves using message buttons.
Reaction roles are organized in categories, which can have a name and a description. You can't have more than one category with the same name in a given channel.
Commands:
/reaction_roles new_categorycan be used by anyone with theManage Serverpermission to create a new reaction role category in the current channel/reaction_roles remove_categorycan be used by anyone with theManage Serverpermission to remove an existing reaction role category from the current channel/reaction_roles addcan be used by anyone with theManage Serverpermission to add a reaction role to a category/reaction_roles removecan be used by anyone with theManage Serverpermission to remove an existing reaction role from a category
Tip
There's a
/neopronouncommand that any user can use to assign themselves a pronoun role. It will never assign a role that provides any permissions, so it's safe to allow for everyone.
Polls
owobot can easily create polls for your members to vote in. Polls use message components and privacy tokens to ensure that votes are always private and even the person running the bot can't find out who voted for what.
A poll can be created using the /poll command. owobot will create a message with just the title and two buttons: Add Options and Finish. Clicking the Add Options button opens a modal (pop up) where you can type the text for a new option. Once that's done, owobot edits the message and asks the poll owner to react with the emoji they'd like to use for that poll. Once they react, that option is added. Options can keep being added until the Finish button is clicked, which finalizes the poll, creates a thread, and opens it up to votes.
Commands:
/pollcan be used by any user to create a poll
Starboard
The starboard is a way for your users to feature the messages they like. Users can react to messages with stars, and once a configurable threshold of stars is reached, the message will be posted to the starboard channel.
Commands:
/starboard starscan be used by anyone with theManage Serverpermission to set the star reaction threshold for the starboard (The default is 3)/starboard channelcan be used by anyone with theManage Serverpermission to set the starboard channel for the server.
Rate Limiting
owobot will rate limit events such as channel deletions, kicks, and bans, ensuring that compromised mod accounts can't destroy the server. If a user gets near the rate limit, they'll receive two warnings and then they'll be kicked from the server.
Here are the current rate limits:
channel_delete: 10 / minutekick: 10 / minuteban: 7 / 5 minutes