Every chat message runs through a filter chain in this order:
Each filter supports the same actions:
Word filter
Anti-caps
Blocks, masks, or lowercases messages that are mostly uppercase.
Anti-unicode
Blocks invisible characters used to bypass filters: zero-width spaces, direction overrides, BOM, tag characters (U+E0000+), and soft hyphens.
Anti-advertisement
Matches URLs and Discord invites with configurable regex patterns plus a whitelist.
The default TLD list omits me on purpose — help.me would false-positive on normal prose.
Anti-spam
A global per-player cooldown plus flood detection.