Skip to content

Getting Started

This document will cover how to get started with using Bernard.

Inviting Bernard To Your Server

First, you will need to select which server you would like to invite Bernard to. Select your server from the dropdown menu as shown below.

Bernard Choose Server

Next, you will be asked to specify what permissions Bernard needs within your server. An example of this prompt is shown below.

Bernard Invite Server Permissions

An explanation of the required permissions and why each one is needed is documented in the Permissions section of the documentation.

Note

Denying Bernard one of the above permissions may prevent some features from working as expected!

Complete the captcha verification to finish inviting Bernard to your server.

Bernard Captcha Verification

After inviting Bernard to your server, Bernard will automatically create a new category of text channels called "bernard-channels". Within this category, a new channel named "bernard-notifications" will be created that is visible to Bernard, the server owner, and all current roles with Administrator privileges (if applicable).

Bernard Invite To Server

By default, all OmniLog events (such as a member joining or leaving the server, a message being deleted or edited, etc.) will be recorded in this channel. OmniLog event routing can be changed to more specific commands with the !omnilogs channel suite of commands. Bernard will introduce itself within the #bernard-notification channel, as shown below.

Bernard Default Notifications Channel

Configure Roles In Your Discord Server

Generally, you will want to formally define the moderation structure of your server prior to modifying or creating roles. The reasoning and process behind this are documented in the Server Moderation Structure Best Practices document.

The steps below will create three new roles in a fresh Discord server. Each role will have a name corresponding with the Four-Tier Moderation Structure.

Step 1: Within your Discord server, left-click on the server's name near the upper-left corner of the Discord application. From the drop-down menu that appears, select the Server Settings option.

Open Discord Server Settings

Step 2: Click the Roles tab on the left-hand side of the server settings menu.

Open Discord Server Role Settings

In the upper-left corner of the menu that appears, there is a list of roles in the server. The example above shows a role named @everyone - this is known as the "default role", which is the role that all members possess when they first enter the server. This list of roles forms a top-to-bottom hierarchy. Roles towards the bottom of the hierarchy cannot punish (kick, ban, etc.) roles at the top of the hierarchy. We recommend reviewing Discord's Role Management 101 article for more information about the role hierarchy in Discord and how it relates to punishments.

Step 3: Add a new role to the server by clicking the "+" icon above the list of roles. Observe how a role named "new role" is added to the list.

Add Role To Discord Server

Step 4: Rename the new role in the server by modifying the "Role Name" field to your desired name. The example below renames this new role to "Administrators".

Rename Role In Discord Server

Step 5: Save changes made to your Discord server by clicking the green "Save Changes" button at the bottom of the window.

Save Discord Server Changes

Step 6: Repeat Steps 3 through 5 to create two additional roles - "Head Moderators" and "Moderators". Verify that they appear in the role hierarchy as shown below by dragging them within the list such that Administrators, Head Moderators, and Moderators are present from top-to-bottom.

Add Additional Discord Roles

Assign Administrative Capabilities To Roles

Once your administrative roles and hierarchy are defined and created, you must assign each role administrative capabilities through Bernard. This will allow roles to run specific commands within your server. The administrative capabilities that match with each tier's responsibilities are documented below.

Tier Name Administrative Capabilities
Administrators N/A (Role has Administrator permissions in server)
Head Moderators PERMA_BAN_MEMBERS, TEMP_BAN_MEMBERS, PERMA_UNBAN_MEMBERS, TEMP_UNBAN_MEMBERS, KICK_MEMBERS, WARN_MEMBERS, ROLE_VIEW, INVITE_BAN_MEMBERS, INVITE_PROTECT, TEMP_MUTE_MEMBERS, PERMA_MUTE_MEMBERS, TEMP_UNMUTE_MEMBERS, PERMA_UNMUTE_MEMBERS, VIEW_MY_RAPSHEET, VIEW_OTHER_RAPSHEET
Moderators PERMA_BAN_MEMBERS, TEMP_BAN_MEMBERS, PERMA_UNBAN_MEMBERS, TEMP_UNBAN_MEMBERS, KICK_MEMBERS, WARN_MEMBERS, ROLE_VIEW, INVITE_BAN_MEMBERS, TEMP_MUTE_MEMBERS, PERMA_MUTE_MEMBERS, TEMP_UNMUTE_MEMBERS, PERMA_UNMUTE_MEMBERS, VIEW_MY_RAPSHEET, VIEW_OTHER_RAPSHEET

The following set of commands will assign these administrative capabilities to the above roles where necessary:

  • For the Head Moderators role:
!role capability add @Head Moderators PERMA_BAN_MEMBERS TEMP_BAN_MEMBERS PERMA_UNBAN_MEMBERS TEMP_UNBAN_MEMBERS KICK_MEMBERS WARN_MEMBERS ROLE_VIEW INVITE_BAN_MEMBERS INVITE_PROTECT TEMP_MUTE_MEMBERS PERMA_MUTE_MEMBERS TEMP_UNMUTE_MEMBERS PERMA_UNMUTE_MEMBERS VIEW_MY_RAPSHEET VIEW_OTHER_RAPSHEET
  • For the Moderators role:
!role capability add @Moderators PERMA_BAN_MEMBERS TEMP_BAN_MEMBERS PERMA_UNBAN_MEMBERS TEMP_UNBAN_MEMBERS KICK_MEMBERS WARN_MEMBERS ROLE_VIEW INVITE_BAN_MEMBERS TEMP_MUTE_MEMBERS PERMA_MUTE_MEMBERS TEMP_UNMUTE_MEMBERS PERMA_UNMUTE_MEMBERS VIEW_MY_RAPSHEET VIEW_OTHER_RAPSHEET

As each command is executed, Bernard will confirm whether the administrative capability was successfully associated with the role.

Bernard Add Administrative Capability

Once all commands are executed, you can use the !role capability list command to display all administrative capabilities associated with all roles.

Bernard List Administrative Capabilities

Configure AutoMod

Bernard's AutoMod suite is a set of different features that help automatically moderate behavior within your Discord server. Most servers will greatly benefit from Bernard's default AutoMod settings, which are fine-tuned to catch and remove most offensive content (such as slurs) while allowing content that can be aggressive, but not necessarily offensive (such as profanity). However, Bernard's AutoMod is very versatile and configurable to meet your server's needs.

Configure AutoMod Text Filters

Detailed information about how Bernard's AutoMod Text Filters feature works can be found here. However, you do not need in-depth knowledge about how the system works to start using it - in fact, Bernard is designed to minimize the amount of configuration needed for AutoMod to function in most servers.

To get started with AutoMod's Text Filters, you'll need to follow the steps eblow.

View Filter Categories & Filters

When first working with text filters in a brand new server, it's best to get familiar with the default filter categories and filters. You can view a list of default filter categories with the !category list command.

Bernard AutoMod List Filter Categories

You can view all filters within all filter categories using the !filter list command.

Bernard AutoMod List Filters

To refine this output to just a list of filters within a specific filter category, you can also define the name of a filter category with the !filter list [category_name] command. An example is shown below, where the filters in the "urls" filter category are displayed.

Bernard AutoMod List Filters in URLs Filter Category

Change Filter Status

You can change the status of a specific filter with the !filter status <filter_name> <new_status> command. An example of this is shown below, where the status of the "discord-invites" filter is set to an "Enforcing" status.

Bernard AutoMod Set discord-invites Status to Enforcing

An example of how to disable a filter is shown below, where the "discord-invites" filter is set to a "Disabled" status.

Bernard AutoMod Set discord-invites Status to Disabled

Add Filter Category & Filter Immune Entities

Oftentimes, you may not want certain individuals or roles (generally referred to as "entities") to be punished if they violate Bernard's AutoMod. For example, maybe you want your moderation team to be able to use slurs or profanity so they can politely discuss the usage of that language within an internal moderation channel. You may also want to allow trusted members of your community to post invite links to other Discord servers.

You can use the !category immune add <category_name> [targets] command to make specific entities immune to a filter category. Similarly, you can use the !filter immune add <filter_name> [targets] command to make specific entities immune to a filter. An example of this is shown below, where the "Community" role is made immune to the "discord-invites" filter.

!filter immune add discord-invites @Community

A similar example for the entire "urls" filter category can be found below.

!category immune add urls @Community

Note

The !category immune add and !category immune remove commands are simply macros for the !filter immune add and !filter immune remove commands for all filters within a filter category. Immune entities are tracked on a per-filter basis. This means that if a new default filter is added to a default filter category, immune entities for the filter category will not be carried over to the new filter. Keep up-to-date with Bernard's changelog and Default Filters documentation to become aware of new default filters added over time so that you can update your server's configuration accordingly.

Tune Filter Scores

A lot of thought and tuning has gone into Bernard's default filter scores. However, we recognize that not all Discord communities are identical - the vulgarity of a word or phrase may be different in one server compared to another. For that reason, you can modify the score of a filter with the !filter score <filter_name> [score] command. An example is shown below, where the score of the "discord-invites" filter is changed to have a value of 50.

!filter score discord-invites 50

Note

If you would like to block a specific word or phrase in your server, but do not necessarily want the user to be punished for using that phrase, change the filter of the score to be 1. Make sure to disable score history tracking for the filter using the !filter track-score-history <filter_name> <boolean> command, too!

Configure AutoMod Video Analysis

Bernard will automatically analyze video attachments, embeds, and Tenor GIFs (collectively referred to as a "video") for malicious content. Specifically, Bernard can detect whether a video has the potential to crash one's Discord client with extremely high accuracy and speed.

By default, Bernard will automatically delete a video that contains malicious content. This feature is enabled by default when Bernard joins a server - no specific configuration is needed for Bernard to take action on videos containing malicious content.

However, you may want to configure Bernard to automatically ban a user who posts a video with malicious content. The length of the ban can be configured with the !automod files crash punishment <duration> command. An example of this is shown below, where a 30-day ban is placed on a user who posts a video with malicious content.

!automod files crash punishment 30d

If you would like to disable AutoMod video analysis in your server, you can do this with the !automod files crash status <new_status> command. An example is shown below, where AutoMod video analysis is disabled.

!automod files crash status disable

An example of how to re-enable this feature in a server is shown below.

!automod files crash status enable

If you find a video that crashes Discord that Bernard did not detect and delete, please let us know! Join Bernard's Support Discord server and post the video in the "filter-submissions" channel.

Configure Flavor Text

Coming soon!