SylonSylon
All featuresWord Filter
Word Filter

Word Filter

Block any word you choose across your Discord server — enforced instantly when messages are sent and edited, resistant to spacing, symbols and leetspeak evasion.

Overview

Sylon lets you define exactly which words are not allowed on your server. Every message is checked the moment it is sent and again whenever it is edited, so nobody can slip a blocked word past the filter by editing it in later. Matching is normalization-aware: it sees through leetspeak (a$$, 5h1t), homoglyphs, accents, letter spacing (a s s) and repetition (assss), while still avoiding false positives like "class".

How it works

1

Your words + built-in lists

Add any words you want blocked, and optionally switch on a built-in profanity preset for your server's language plus English.
2

Evasion-resistant matching

Smart mode normalizes symbols, accents, spacing and repeated letters so common bypass tricks are caught, without flagging innocent words that merely contain a blocked one.
3

Delete, then optionally punish

The offending message is always removed. You can leave it at that, or apply a timeout, kick or ban after a configurable number of violations.

Key capabilities

Custom blocked-word list per server
Optional built-in profanity list per language
Enforced on message send and edit
Evasion-resistant matching (symbols, spacing, leetspeak, accents)
Smart / whole-word / anywhere matching modes
Delete-only or escalating timeout, kick or ban
Exempt roles, members and channels, with a mod-log undo button

Setup

1.Open the dashboard, go to the Word Filter tab and enable it.
2.Add your own words, or switch on the built-in profanity list.
3.Pick a match mode and decide what happens on a violation.
4.Set a log channel and exempt any roles, members or channels that should be ignored.

How it works in detail

How matching works

Text is normalised before it is compared: Unicode is decomposed, diacritics are stripped, look-alike characters and leetspeak are folded to their plain letters, and separators inserted between letters are ignored. A word written with accents, symbols or spacing tricks is still caught.

Match modes

Smart mode catches a word inside surrounding text without flagging innocent words that merely contain it. Whole word only matches when it stands alone. Substring matches anywhere, which is the bluntest and the most likely to over-match. A `*` wildcard can stand in for any run of characters.

The built-in list

Turning it on adds a curated profanity set for the server’s language plus English. The full list is visible on the dashboard, so it is never a black box, and any single word in it can be exempted without disabling the rest.

When it runs

Every message is checked when it is sent and again when it is edited, so a clean message cannot be edited into a blocked one after the fact.

Settings

Blocked Words
Matching ModeSmart catches evasion like a$$, a s s and leetspeak while avoiding false positives. Whole word is strict. Anywhere matches inside other words.
PunishmentThe action taken against the user when the limit is reached. Timeout temporarily restricts, Kick removes from server, Ban permanently bans.
Log ChannelThe channel where the bot will send log messages for this feature.
Exempt RolesMembers with this role will be exempt from this protection.
Exempt MembersSpecific members this system completely ignores, in addition to the exempt role.
Exempt ChannelsMessages in these channels will not be checked by this protection.

Good to know

Sylon needs Manage Messages to delete a blocked message.
The default punishment is none — the message is removed and logged without acting against the member.
Exempt roles, members and channels are skipped entirely, including the built-in list.

Frequently asked questions

Does it catch words people try to disguise?

Yes. Smart mode sees through symbols (a$$), spacing (a s s), leetspeak (5h1t), accents and repeated letters, so common evasion attempts are still blocked.

Will it wrongly block innocent words?

No. In smart and whole-word modes a blocked word only trips as its own word, so "class" is never caught by a blocked "ass". Use the anywhere mode or a * wildcard only if you want inside-word matching.

Does it check edited messages too?

Yes. The filter re-checks a message whenever it is edited, so a blocked word cannot be added after the fact.

Related features