This document is describes how Discord’s privileged intents namely – MESSAGE_CONTENT and GUILD_MEMBERS are used by Rebel Bot and what that means for an end user’s data.

Introduction to Rebel Bot

Rebel Bot (herein referred to as RB) is a general purpose Discord bot owned by the Rebel Federation (RF), a volunteer run online gaming community that has over 25,000 members across various platforms. RB exclusively operates on Discord servers that are part of the RF. While it primarily serves as a fun economy bot for the average user, it also serves as a highly capable and versatile tool for automation, moderation, analytics and management for moderators and admins of the various Discord servers of RF. It has been developed and maintained by F6 (hephaestus0810 on Discord) since early 2020. Terms Of Service for RB can be found here.

Usage Of Privileged Intents

As part of it’s moderation and monotoring functionalities, RB uses two privileged intents – MESSAGE_CONTENT and GUILD_MEMBERS

Usage of MESSAGE_CONTENT

This intent provides access to the text message content in every user’s message that the bot sees. This data is used to power the following auto moderation features
1. Filtering based on exact match strings, wild card strings and regular expressions

2. Anti filter evasion by automatically accounting for special characters and zalgo text

3. Anti filter evasion by detecting changes to messages after an edit

4. Anti Phishing and Anti Spam

The following shows a few examples of the above. All names, IDs, photos and links have been redacted for privacy purposes.

Exact word filter in action

Wild card i.e. *word* filter in action

zalgo evasion caught

Filter evasion detected

Editing a message to evade the filter will also get caught

Phishing links get caught by the filter too

Once the message has been removed, the user is punished based on the server’s punishment configuration for phishing – a ban in this case

As you can see, the above features especially the anti special character and anti zalgo evasions make RB’s auto moderator quite powerful. It allows server admins/moderators to focus on adding only the filter word(s) rather than account for all possible filter evasions of said word(s). It also logs deleted messages, providing moderators a permanent record of moderation actions which in turn can aid a moderator in deciding future disciplinary action(s) in case of repeated rule violations.

In addition to these automated features, if enabled, RB can log all deleted and edited messages in the server (or in select channels of a server). This too provides a permanent record which can aid server moderators when peforming moderating actions. Examples of the above can be found below

Edited message gets logged

Deleted message gets logged

Rebel Bot does NOT store any message content information. All message content is processed (for moderation) and discarded. The logs that are shown above are from the Discord server where the auto moderation / message edit / message deletion happened. This channel is accessible only to server moderators and admins. None of the message data is used for training any LLM or any other ML/AI purpose.

 

Usage of GUILD_MEMBERS intent

This is intent is used primarily for logging information to a moderator only log channel. All names, IDs, photos and links have been redacted for privacy purposes. It uses the following –

1. GUILD_MEMBER_ADD – Logging user joins, Invite Tracking, Auto assigning roles upon joining, custom welcome messages

User join logged, join role added and invite used tracked by RB

Custom welcome message from RB. This can be configured by server admins to use embeds too

2. GUILD_MEMBER_UPDATE – Log user role updates, log name changes (this can trigger name based filtering too), Anti Mute evasion and Auto Pay (if enabled)

Logging user role updates

Automatically award user in server currency for getting a role

If a user gets muted (added role) as a punishment, automatic anti mute evasion ensures that if they leave and rejoin (to evade the mute), they remain muted after rejoining

Changing nicknames also get filtered and logged

3. GUILD_MEMBER_LEAVE – Used to log when a user left and what roles they had upon leaving

When a user leaves, their username/id and their roles get logged

Additionally this intent is used to power a few commands – notably find and massrole as shown below.

Find allows admins/mods to find out a list of users who have a specified first_role and who have/don’t have a specified second_role

This command allows admins/mods to add/remove a target_role from all users with a specified search_role

Just like MESSAGE_CONTENT, the above information is NOT stored in any external platform. The logged data is permanently stored in a Discord server channel and is exclusively meant for that server’s moderators/admins for the sake of user analytics. None of this data is shared with a third party now is it monetized.

To the best of our knowledge, many of the features available via RB are either not present on other verified Discord bots or they’re behind a paywall. At RF, we strive to provide a safe and inclusive environment for all members by empowering our moderators and admins with comprehensive moderation and logging tools through Rebel Bot. To this end, it is vital that these intents remain available for Rebel Bot.

If you have any questions, concerns or comments, please reach out to me via Discord or the RF server!

~F6 (hephaestus0810)
Lead Developer and Maintainer of Rebel Bot

Unknown's avatar

F6sixer

Fortis Fortuna Adiuvat

Leave a Reply