Moderation App
Automatically filter harmful content, catch spam, and keep your community safe.
You can install and manage Root's own Apps on desktop or mobile. Apps from other developers, and Bots, are installed from Root on desktop. Once installed into a community, Apps and Bots can be used on Root desktop and mobile.
What is Moderation?
Moderation is a community app that helps community owners maintain a healthy environment by automatically removing harmful messages and detecting spam. The app scans messages against built-in slur and profanity lists, custom word filters, and spam detection rules. When a rule is triggered the message is deleted automatically. Disciplinary actions like kicks and bans remain in the hands of human moderators. A full audit log and analytics dashboard give admins visibility into moderation activity.
Moderation uses your language if it is English, Spanish, French, Portuguese, German, Italian, Polish, Turkish, Indonesian, or Dutch. Otherwise it uses English.
How it works
When a member sends a message in a monitored channel, the app evaluates it against three rules in order: content filter, Rapid Message Limit, then spam detection. The first rule that triggers stops evaluation and the message is deleted. Edited messages are re-checked by the content filter. Every deletion is recorded in the audit log.
Content filter
The content filter checks messages against word lists. Three categories of words can be filtered independently:
| Category | Description |
|---|---|
| Slurs | A built-in list of slur terms. Enabled by default. |
| Profanity | A built-in list of profanity terms. Enabled by default. |
| Custom words | Words added by admins for the community. Enabled by default. |
The filter normalizes text (lowercasing, common letter substitutions) before checking, so variations like "l33t" still match. Admins can also maintain an allowed words list. Words on this list are never filtered, even if they match a rule.
Optionally, the app can warn the member when content is filtered. Admins choose how the warning is delivered in the General tab under Warn members by: a message in the channel, a private notification, or both.
Spam detection
Spam detection identifies repeated identical messages from the same user. Admins configure a threshold (how many identical messages trigger the rule) and a time window (how far back to look). Detection can be scoped per channel or server-wide.
For example, with a threshold of 3 and a window of 60 minutes, if a user sends the same message four times within an hour, all four copies are deleted. Any later copies in the window are deleted too.
Rapid Message Limit
The Rapid Message Limit catches members who flood the chat, even when every message is different. Admins set Max Messages (how many messages a member can send) and a Time Window (seconds). Messages over the limit are deleted. The limit counts each member across all channels. Edited messages do not count.
Monitored channels
The app acts on every text channel it has access to. There is no per-channel selection.
Roles and permissions
Moderation uses one permission group configured by community owners:
| Role | Description |
|---|---|
| Moderation Admins | Users and roles who can access moderation settings and the audit log. |
What admins can do
- View the dashboard, audit log, and analytics
- Configure content filter settings and manage word lists
- Configure spam detection
- Set analytics data retention
- Kick, ban, and remove messages from members (each also needs the matching Root permission)
- Find any member on the Members page
What other members can do
- View the dashboard and analytics (read-only)
Dashboard
The dashboard provides an overview of moderation activity in the last 24 hours. It displays two summary cards (Actions (24h) and Content Filtered), a Monitored Channels panel, and a list of recent activity showing the latest moderation events. Admins can kick, ban, or remove messages from a member in Recent Activity.
Audit log
The audit log is a searchable, paginated record of every moderation action. Admins can filter by:
- Username: search for actions targeting a specific member.
- Action type: All Actions, Delete message, Kick, or Ban.
- Rule type: All Rules, Content Filter, or Spam Detection.
Each entry shows the time, action taken, target user, rule that triggered it, and the matched term (if applicable). Select an entry to open its details. For a ban, the details also show the Ban length.
Analytics
The analytics view shows moderation trends over a selectable period (last 24 hours, 7 days, or 30 days). It includes:
- Summary cards with totals and percentage breakdowns.
- Actions over time: a stacked bar chart showing daily activity by rule type.
- Rule breakdown: a horizontal bar chart comparing content filter and spam actions.
- Top channels: the five most actioned channels.
Kick, ban, or remove messages
Admins can kick or ban a member, or remove their recent messages, from these places:
- Recent Activity on the dashboard.
- A row in the Audit Log. On a phone or in a narrow window, the rows have no buttons. Select the entry to open its details, and use the buttons there.
- The Members page, which finds any member. See Find any member.
In Recent Activity and the audit log table, the buttons show only an icon.
What you need
To use an action, you must be in Moderation Admins and also have the matching permission in Root:
| Action | Root permission |
|---|---|
| Kick | Kick Member |
| Ban | Create Bans |
| Remove messages | Delete Messages or Channel Full Control |
If you are in Moderation Admins, Community Full Control gives all three, and so does being the community owner. Only permissions from your roles count. Access rules on single channels do not change what you can do here. You only see the buttons for the actions you can use. For more about these permissions, see the Permission reference.
Kick a member
- Select Kick next to the member.
- If you want, type a reason in Reason (optional). It is saved in the audit log. The member does not see it.
- To also delete their recent messages, choose a time in Also remove their messages. The default is Keep their messages. This option only shows if you can remove messages.
- Select Kick.
The member is removed from the community. They can rejoin with an invite.
Ban a member
- Select Ban next to the member.
- Choose a Ban length: 1 hour, 1 day, 7 days, 30 days, or Permanent. The default is 1 day.
- If you want, type a reason in Reason (optional). It is saved in the audit log and in Root's ban list, and the member sees it in their ban notification.
- To also delete their recent messages, choose a time in Also remove their messages. This option only shows if you can remove messages.
- Select Ban.
The member is removed from the community and cannot rejoin until the ban ends. Root ends a timed ban by itself.
Remove messages
This deletes a member's messages from a recent time period, in every channel Moderation can see.
- Select Remove messages next to the member.
- In Remove messages from, choose The last hour, The last 24 hours, or The last 7 days. The default is The last 24 hours.
- Select Remove messages.
The removal runs in the background, so you can keep working. In a busy community it can take a few minutes. A panel at the bottom of the screen shows how many channels have been checked and how many messages were removed. To end it early, select Stop. When it finishes, one Remove messages entry is added to the audit log.
Members you can't act on
Moderation does not kick, ban, or remove messages from:
- The community owner.
- Yourself.
- Other Moderation Admins.
You also can't kick or ban someone who is no longer in the community.
Find any member
Use the Members page to act on someone who is not in the audit log. Only Moderation Admins see this page.
- Select Members in the sidebar.
- Type at least 3 letters of a name, or paste a user ID.
- Select Kick, Ban, or Remove messages next to the member.
The page shows the first 25 matches. Type more of the name to narrow the list. If you have none of the Root permissions in What you need, the page shows a message instead of the search box.
Configure the content filter
Admins can manage the content filter from the Content Filter tab in settings.
- Open settings and select the Content Filter tab.
- Toggle Enable Content Filter to turn filtering on or off.
- When enabled, toggle individual categories:
- Filter Slurs: filter messages matching built-in slur terms.
- Filter Profanity: filter messages matching built-in profanity terms.
- Filter Custom Words: filter messages matching your custom word list.
- Warn Users: tell the member when a message is filtered. How they are told depends on how members are warned.
Manage custom words
- In the Content Filter tab, find the Banned Words section.
- Type a word in the input field and select Add.
- Select Show Banned Words to view and manage existing words.
- Use the search field or category filter to find specific words.
- Toggle a word on or off. Custom words also have a delete button to remove them. Words from the built in lists can only be turned off.
Manage allowed words
- In the Content Filter tab, find the Allowed Words section.
- Type a word and select Add.
- Words on this list are never filtered, even if they match a filter rule.
Configure spam detection
Admins can manage spam detection from the Spam Control tab in settings.
- Open settings and select the Spam Control tab.
- Toggle Enable Spam Detection to turn it on or off.
- When enabled, configure:
- Spam Threshold: number of identical messages before the rule triggers (2 to 10).
- Time Window (minutes): how far back to look (1 to 1,440).
- Detection Scope: track per channel or server-wide.
- Warn Users: tell the member when spam is detected. How they are told depends on how members are warned.
Set the Rapid Message Limit
- Open settings and select the Spam Control tab.
- Toggle Enable Rapid Message Limit to turn it on or off.
- When enabled, configure:
- Max Messages: how many messages a member can send within the window (2 to 100).
- Time Window (seconds): the rolling window the limit applies to (1 to 3,600 seconds).
- Warn Users: tell the member when they hit the limit. How they are told depends on how members are warned.
Set how members are warned
A warning tells a member that Moderation removed their message. You set warnings up in two places:
- Turn warnings on for each rule. Turn on Warn Users for the content filter, spam detection and the Rapid Message Limit. They are off to start with. With Warn Users off, that rule removes messages without warning anyone.
- Choose how warnings look. Open settings and select the General tab. The settings under Warnings apply to every rule.
| Setting | What it does |
|---|---|
| Warn members by | Message in the channel posts the warning where the member posted, so everyone in the channel sees it. This is the default. Private notification sends it only to the member, and reaches them even when they're offline. Both does both. |
| Warning language | The language for all warnings. Members and the whole channel read them, so warnings use this one language. |
| Warning message | Your own wording. Leave it empty to use Moderation's own text. |
What members see
With Moderation's own text, a warning in the channel looks like this:
@Alex, your message was removed for spam.
A private notification looks like this:
Your message was removed
Removed for spam.
The reason depends on the rule that removed the message:
| Rule | Reason in the warning |
|---|---|
| Content filter | violating content guidelines |
| Spam detection | spam |
| Rapid Message Limit | exceeding the rate limit |
A warning never repeats what the member said, or which word matched. A member is warned at most once every 10 minutes in each channel.
Write your own warning message
- Open settings and select the General tab.
- Type your message in Warning message, using these placeholders:
{mention}becomes the member's name. You type{mention}exactly like that, and Moderation fills in the right member each time.{reason}becomes the reason from the table above.
- Click away from the field to save.
Both placeholders are optional. Write the message in your warning language. It can be up to 300 characters.
For example, this message:
{mention}, your message was removed because it doesn't follow the community's rules. Please review them in #welcome.
shows in the channel as:
@Alex, your message was removed because it doesn't follow the community's rules. Please review them in #welcome.
In a private notification, your message replaces the text under the title, and {mention} becomes the member's username. The title stays Your message was removed.
To go back to Moderation's own text, clear the field.
Configure data retention
Admins can set how long audit log entries are kept from the General tab in settings.
- Open settings and select the General tab.
- Set Analytics Retention (days) to the number of days you want (7 to 365). The default is 30.
- Entries older than the retention period are automatically deleted during daily cleanup.
Limits
| Item | Limit |
|---|---|
| Custom word length | 100 characters |
| Spam threshold | 2 to 10 |
| Spam time window | 1 to 1,440 minutes |
| Rapid Message Limit max messages | 2 to 100 |
| Rapid Message Limit time window | 1 to 3,600 seconds |
| Analytics retention | 7 to 365 days |
| Kick or ban reason | 500 characters |
| Warning message | 300 characters |