Compatibility
Minecraft: Java Edition
26.1.2
Platforms
Links
Tags
Creators
Details
Licensed ARR
Published 3 days ago
PureFilter
PureFilter is an advanced, lightweight, and highly effective chat profanity filtering plugin designed for modern servers running on Paper 26.1.2 (and higher, requiring Java 25).
Unlike traditional filters that only check for exact word matches, PureFilter utilizes an intelligent Fuzzy-Matching engine. By processing and normalizing player messages on the fly, it effortlessly blocks even the most clever attempts to bypass the filter.
🚀 Key Features
- Intelligent Fuzzy-Matching Engine: Automatically detects and neutralizes bypass attempts, including:
- Leet-speak: Substitution of letters with numbers or symbols (e.g.,
0→o,3→e,4→a,5→s,!→i,$+s). - Chat Separators: Breaking up words with spaces, dots, dashes, underscores, or special characters.
- Unicode Homoglyphs / Cyrillic: Blocks lookalike characters from other alphabets used to disguise banned words.
- Repeated Characters: Automatically collapses duplicated letters.
- Leet-speak: Substitution of letters with numbers or symbols (e.g.,
- Three Operation Modes (
filter.mode):AUTO: Uses the powerful, aggressive built-in word lists for English (en.txt) and Polish (pl.txt).MANUAL: Completely ignores built-in lists and relies solely on your custom files inside thewords/custom/directory.AUTO_MANUAL: Combines both built-in lists and your custom word lists for maximum security.
- Automated Punishment System: Automatically dispatches any configured console commands instantly when a prohibited word is flagged (e.g., auto temp-mute).
- In-Chat Admin Alerts: Real-time staff notifications for players with the required permission, featuring explicit warnings when the strict AUTO mode is active.
- Modern Chat Support: Full Adventure API integration, providing native support for legacy color codes (
&c,&a) and modern HEX (#RRGGBB) format. - High Performance: Banned words are pre-computed and stored in a high-speed
HashSet, ensuring instant $O(1)$ lookups without affecting server thread performance.
🛠️ Commands & Permissions
Every subcommand features independent permission checks handled directly within the source code:
/purefilter reload(Alias:/pf reload) – Reloads the configuration and word lists.- Permission:
purefilter.admin.reload
- Permission:
/purefilter info(Alias:/pf info) – Displays plugin version, active filter mode, and loaded word count.- Permission:
purefilter.admin.info
- Permission:
/purefilter status(Alias:/pf status) – Displays whether the filter is currently enabled or disabled.- Permission:
purefilter.admin.status
- Permission:
Additional Permissions:
purefilter.admin– Parent permission node (automatically grants access toreload,info, andstatus). Default: OP.purefilter.admin.message– Allows receiving in-chat alerts when a player triggers the filter. Default: OP.purefilter.admin.override– Complete filter bypass. Messages from this player are never checked or blocked. Note: This permission is intentionally NOT a child ofpurefilter.adminand must be explicitly granted (e.g., via LuckPerms). Default: false.
⚙️ Default Configuration (config.yml)
The plugin automatically generates a clean config file supporting multilingual system messages out-of-the-box:
plugin:
enabled: true
language: en
prefix: "&8[&b&lPureFilter&8]&r "
filter:
mode: AUTO
manual-files:
# - mywords.txt
punishment:
commands:
- "tempmute {player} 5m"


