How to Block Profanity on Discord? Banned Words and Regex
Stop profanity before the message hits the channel: learn about word-start matching in the banned word list and the * wildcard, regex patterns that catch spelling tricks, working with Discord's native AutoMod rules, exemptions, and choosing the right punishment.
This article was translated automatically from the Turkish original. Read the Turkish original

In this article
- Module, Manage Server permission, and rule quota
- How does the banned word list match?
- Step 1: Set up the list
- Step 2: Add regex for spelling tricks
- Step 3: Choose the penalty
- Exemptions: who is not caught by the filter?
- If innocent words are getting caught or the rule reverts
- Does the list catch context-dependent insults?
- Frequently asked questions
In short
In VeyroBot, profanity is blocked using two fields: Banned Word Filter and Regex Pattern Filter. Both are located in the Advanced AutoMod tab of the dashboard. VeyroBot translates these lists into rules named "VeyroBot · Banned words" and "VeyroBot · Banned patterns" within Discord's native AutoMod. A message caught by the rule never reaches the channel; VeyroBot applies your chosen punishment, warning record, and log message.
General setup with invite, link, and spam filters is explained in the AutoMod setup guide. This article focuses solely on the banned word list and regex patterns.
Module, Manage Server permission, and rule quota
- The AutoMod module must be enabled. If the Module status toggle in the Advanced AutoMod tab is turned off, VeyroBot removes its rules from Discord.
- The bot must have the Manage Server permission. Creating a Discord AutoMod rule requires this permission. If the permission is missing, your settings will be saved but the rule won't be set up; the dashboard will indicate this with a warning at the top of the tab.
- A moderation log channel must be selected. Caught words and applied punishments will be sent there. See the log channel guide for channel organization.
- There must be room in Discord's rule quota. Discord allows a maximum of 6 keyword rules per server. Each of VeyroBot's banned word, pattern, invite, and link filters uses one rule from this quota.
This topic in VeyroBot:Discord AutoMod and Automatic Moderation →
How does the banned word list match?
The list looks at the start of words: any word starting with the word you added will be caught; it is not enough for it to appear in the middle of a word. It is case-insensitive. In the examples below, "badword" is used in place of a real word.
badword | "badword" and "badwords" are caught, "superbadword" is not caught. |
*badword | The leading asterisk also searches inside the word: "superbadword" is also caught. |
badword* | It is accepted but doesn't change anything; the match is already at the start of the word. |
bad*word | It will not be saved. Discord does not support wildcards in the middle of a word; the dashboard rejects this entry. |
A standalone * is also not accepted. If an entry exceeds the 60-character limit, it will not be saved; the entire list can be a maximum of 4,000 characters.
Step 1: Set up the list
- Open the Dashboard → your server → Advanced AutoMod tab.
- Type the word into the Banned Word Filter box and press Enter. You can paste a ready-made list separated by commas and press Enter.
- Use the leading
*symbol only for words that are long enough and that you want to be caught inside other words as well. - Select Action to Apply in Case of Violation and press Save AutoMod Settings.
This filter does not have a separate on/off toggle: if the list is full, it works; if it is empty, it does not work, and VeyroBot removes the rule from Discord. The list comes empty; there is no ready-made profanity list, you add the words yourself.
Step 2: Add regex for spelling tricks
Members might try to bypass the list by writing numbers instead of letters or by putting spaces in between. The list only searches for the exact word you wrote; for these spellings, there is the Regex Pattern Filter. One pattern is written per line, and if the pattern matches anywhere in the message, the message is caught.
k[oö0]t[uü]\s*kelime | It catches the spellings "kötükelime", "kötü kelime", and "k0tukelime" with a single pattern. One of the characters inside the square brackets is accepted, and \s* matches even if a space is inserted in between. |
\bkötükelime\b | It only catches the exact word; "kötükelimeler" passes. If a short word in the list also catches the beginning of innocent words, move it here in this format. |
- A maximum of 10 patterns can be written; each can be a maximum of 200 characters.
- Case does not matter. VeyroBot automatically adds the
(?i)flag to the beginning of each pattern to ensure this. - Patterns containing backreferences (
\1), nested repetition ((a+)+), repeated optional groups ((a|ab)*), lookaheads or lookbehinds, and named groups are not saved. Patterns that match empty text—meaning they would catch every message—are also rejected. - If Discord still rejects a pattern, the pattern rule will not be updated, and the panel will show a warning. Since all patterns reside in a single rule, an invalid pattern prevents the others from being updated as well.
Step 3: Choose the penalty
The message caught by the rule is not sent, and the member sees a note on Discord like "VeyroBot AutoMod: your message was not sent (Banned Word)."; for patterns, it says "Banned Pattern" in parentheses. Then, VeyroBot applies the action you selected: warning only, 5 minutes, 10 minutes, 1 hour, or 1 day timeout, kick, or ban from the server. In the case of a ban, the member's messages from the last 1 hour are also deleted.
Action names in the panel start with "Delete message + ..."; in these two filters, the message is not deleted, it is never sent in the first place. Each violation opens a numbered case, adds a warning to the member's warning counter, and shows which word or pattern matched in the moderation log. The penalty for the two filters is selected separately; the default for both is Delete message + warn. Warnings feed into the graduated punishment system: by default, a 1-hour timeout is applied at 3 warnings, and a kick is applied at 5 warnings.
Exemptions: who is not caught by the filter?
- Staff. VeyroBot automatically adds roles with the Manage Messages permission to the exempt list of the Discord rule; roles that also carry Administrator or Manage Server permissions are not added to this list. VeyroBot does not penalize any member who has the Manage Messages permission. Do not test the filter with your own authorized account; use an unauthorized test account.
- Exempt channels and roles. The channels and roles you select in the exemptions card (up to 25 each) will not be caught by these filters. @everyone cannot be selected as an exempt role.
- Discord's 20-role limit. Discord accepts a maximum of 20 exempt roles in a rule, and automatically added staff roles also count toward this number. Any extra will not be written to the rule: messages from members with these roles may be blocked on Discord, but VeyroBot will not penalize them.
If innocent words are getting caught or the rule reverts
- Adding short words to the list. Since the match occurs at the beginning of the word, a three-letter word will also block innocent words starting with it. Write such words in regex as exact words using
\b. - Putting an asterisk on every word. A word starting with
*is also searched for inside other words. Adding a short word this way produces a high number of false positives. - Editing the rule from Discord settings. If you change the "VeyroBot · ..." rules from Discord's Server Settings → AutoMod section, VeyroBot will revert the rule to the panel setting when you save from the panel or when the bot restarts. Make the change from the panel.
- Deleting the rule from Discord. A deleted rule does not restore itself automatically, and the panel will display a warning. To set it up again, save the settings once from the panel.
- Choosing a severe punishment from day one. Run the new list with Delete message + warn first, check what gets caught in the moderation log, and then make the punishment more severe.
Does the list catch context-dependent insults?
Suitable for: public, fast-growing servers, or servers where moderators cannot read every message. It stops words you have explicitly banned before the message hits the channel. If you haven't specified which words are banned in your rules, check the server rules guide first.
Not suitable for: context-dependent insults. The list looks at the word, it does not read intent: it won't catch a rude sentence that doesn't contain a banned word, but it will catch a word within a quote or a joke. These situations require a moderator's decision; to choose the punishment duration, see the temporary ban and timeout guide.
Frequently asked questions
Does it come with a pre-made Turkish profanity list?
No. The list comes empty, and you add the words yourself. Starting with a short list and expanding it by checking the moderation log minimizes false positives.
If the same message triggers both the word and pattern filters, are two warnings issued?
No. A second rule triggered by the same member in the same channel within 3 seconds is considered the same message; only a single punishment and a single warning are issued.
Can I temporarily turn off only the profanity filter?
Yes. Empty the list and save; VeyroBot will remove the word rule from Discord. Copy the list somewhere first. Turning off the AutoMod module, on the other hand, removes all of VeyroBot's rules and recreates them when you turn it back on.
Can I keep my own Discord AutoMod rules alongside these rules?
Yes. VeyroBot only manages its own "VeyroBot · ..." rules and does not touch the server's other rules. VeyroBot will not issue punishments, warnings, or logs for messages caught by your own rules. Make sure your rules do not exceed the quota of 6 keyword rules.
For a general introduction to the feature, you can check the Discord AutoMod bot page; for a settings summary, see the Discord's native AutoMod and channel and role exemptions documents; and to manage warnings, you can refer to the warnings, warn, and vaka-gecmisi cards.
Last update: September 26, 2026. The matching rules, pattern limits, exemptions, and punishment flow in this article have been verified from the AutoMod rule synchronizer and panel validation in the current version of VeyroBot.