Page cover image

Overseer

Make one false move and I'll take you down

What is Overseer?

Overseer is the name of our content blocker, which makes it harder to conduct spam. It analyses messages sent by regular members using a simple yet effective algorithm based on statistical analysis to flag spam. These algorithms are collectively referred to as "checks".

Setting up Overseer

Toggling the system

To toggle this system, you must have either the "Administrator" or "Manage Server" permission.

Run the following command

/overseer - toggle setting: The module itself
You may press TAB to quickly auto-complete queries

You can specify whether to explicitly enable or disable the system, or any other component of Overseer. By default, providing no "overwrite" argument will simply toggle the state.

Setting up logging

Whenever a user flags a check, a log will be generated including details about the user, the last message they sent, the check they triggered, and the channel the message was sent in. This log is only generated if the logging channel is set, and is valid.

Run the following command, and specify the channel

/overseer - log channel: 

Setting mute durations

Whenever a user flags a check, and the action for that check is set to "Mute", the user will be muted for the duration specified by this setting. The default is 15 minutes. The duration is calculated by looking for numbers followed by a time suffix, for example "1h30m".

Run the following command

/overseer - muteduration duration: 

Bypass permissions

By default, Overseer will always ignore any member that has either of the following permissions in the channel they send a message in:

  • Ban members

  • Mention everyone

  • Manage messages

Administrators already inherit these permissions, and are therefore also exempt.

Overview of checks

Overseer is divided into several checks, which are further subdivided into different types depending on the order they analyse the message in. We may not explicitly state the exact functionality of the checks, though some are intuitive enough to figure out.

Configuration

Toggling checks

To toggle a check, you use the same command "/overseer - toggle", where the setting is the check you want to toggle, explicitly enable, or explicitly disable.

Actions

Each check has a configurable action that determines how the user should be punished when the check is triggered. For example, if you want users to be auto-banned if they trigger the "Mentions" check, run the following command:

/overseer - mentions action: Auto-ban
The list of available actions is always "Mute", "Kick", "Soft-ban", and "Auto-ban"

This system attempts to detect invite links, specifically any message that lets the user click a button or a link; messages that do not present the user with a "Join" button (shown below) will not be detected as they are invalid.

Limitations

  • This system will not detect ambiguous messages such as "ubAay42hmX" or "gg/PSCyU44eHr"

  • This system does not verify the invite link is valid for the sake of performance.

  • This system only detects invite links that are well formed.

Settings

Any action from a mute, kick, soft-ban, or auto-ban to perform when this check is triggered.

Types

Type A

Detects certain edge-cases that would bypass Type B using mixed encoding of a URL.

Type B

Detects the majority of invite links using a simple regex pattern.

Samples

Well-formed indicates whether this message would show up with a clickable "Join" button on Discord's user interface.

Input
Detected
Well-formed

discord.gg/abcd

True

True

discordapp.com/abcd

True

True

discord.com/invite/abcd

True

True

discord.com/abcd

False

False

Mention blocker

This system will detect messages that mention too many users. Mentions are counted per message and per unique user mentioned, meaning that mentioning the same user several times in one message still counts as one mention. The purpose of this system is mainly to stop mass-mention scripts.

Limitations

  • This system may be bypassed using scripts with an extremely high interval

Settings

Any action from a mute, kick, soft-ban, or auto-ban to perform when this check is triggered.

Types

Type A

Detects mention spam that is spread over several messages

Type B

Detects too many mentions in a single message. Negates bot and self mentions

Samples of messages detected with default settings

"@User1 @User2 @User3 @User3 @User5 ... @User15 @User16"

Constraints

This system limits the amount of messages or characters sent within a specific time window. It aims to prevent users spamming messages or flooding the chat with messages that are too long.

Limitations

  • This system is subject to be completely bypassed if the spammer is aware of the settings

  • There is no "one-fits-all" setting because different servers have different activity levels

Any action from a mute, kick, soft-ban, or auto-ban to perform when this check is triggered.

Type A

Detects users that send too many messages within a time window

Type B

Detects users that send too many characters within a time window

Samples of messages detected with default settings

Input
Time taken to complete
Detected

"Message" x 6

<10 seconds

True

512 character message x 4

<10 seconds

True

"Message" x 500

>=1000 seconds

False

Heuristics

This system takes shortcuts when analysing messages to determine spam with a limited amount of information. If you want maximum protection, then this system may be recommended.

Limitations

  • This system may be deemed aggressive if users commonly spam similar or long messages. Use at your own risk.

Settings

Any action from a mute, kick, soft-ban, or auto-ban to perform when this check is triggered.

Types

Type A and Type B

May detect messages that are similar

Samples of messages detected with default settings

"Spam message #123"

"Spam message #983"

"Spam message #243"

Last updated