Language and Profanity Filter is the ultimate text-moderation toolkit for your Unity project — chat, usernames, user-generated content, anywhere players can type.
Out of the box you get profanity filtering for 33 languages: Arabic, Bengali, Chinese, Czech, Danish, Dutch, English, Esperanto, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Spanish, Swahili, Swedish, Tagalog, Thai, Turkish, Ukrainian, and Vietnamese. Every word can be tagged Mild / Moderate / Severe so you can ship strict in production while logging everything for moderation review.
🛡️ A full pattern-filter suite ships alongside the wordlists:
- PII / contact info - phone numbers, credit cards (Luhn-validated), IP addresses, crypto wallet addresses, emails, websites
- Off-platform contact - Discord / Telegram / WhatsApp / Signal / Snapchat invites, configurable @ / # social handles, @-mention resolution against a pluggable user directory
- Bypass defeat - Unicode homoglyph normalisation, zero-width strip, Zalgo strip, per-language leet maps with Off / Conservative / Aggressive aggressiveness, context-aware allowlists for false positives like "Scunthorpe"
- Chat hygiene - repeated-character collapsing, all-caps shouting, excessive whitespace, emoji cap (cluster-aware: skin-tones, ZWJ families, and flags count as one)
🧩Compose anything: drop multiple filters into a `FilterChain` asset and treat them as a single filter. Per-row enable / Solo / Disable-all from a custom reorderable inspector - no code edits needed to A/B a moderation policy.
📊 Structured results: every filter exposes `FilterValuesDetailed(string)` returning per-match metadata (offset, length, original, replacement, severity, filter name) for moderation queues, audit logs, analytics, undo, and "show the user what got blocked" UIs.
🌐 Pluggable wordlist sources: ship a base list bundled, then layer a URL-hosted JSON override on top so you can update slang and trending evasions without re-publishing the game. Ships with `EmbeddedLanguageDataSource`, `RemoteJsonLanguageDataSource` (auto-cached to `Application.persistentDataPath`), and `CompositeLanguageDataSource`.
🧰 Editor tooling
- Test Bench (Tools → Language Filter → Test Bench) — live preview any filter or chain as you type, see per-match severity highlights, copy one-line `[TestCase]` fixtures straight into NUnit
- Wordlist Importer - ingest TSV / CSV / JSON / TXT with severity, preview the diff, rewrite the language block
- Custom inspectors + opt-in toggles so the raw word list never accidentally lands on screen
🎨 Two output styles: replace matches with a placeholder (e.g. `***`) or wrap them with a prefix/suffix (e.g. `<b>` / `</b>`) for rich-text strikethrough.
⚙️ Built for production: ReDoS-safe (every regex has a match timeout + max-input-length guard), thread-safe regex caches, allocation-free no-match path, optional TMP support via a separate `LanguageFilter.TMP` assembly, comprehensive unit tests + a property-based fuzz suite.
Description sourced from the Unity Asset Store listing.