Shipping LanguageFilter: Session-Aware Moderation for Live Conversations

LanguageFilter now includes tools for moderation that needs to remember what happened earlier in a conversation—not just inspect one message at a time.

Keep moderation state per user

The new FilterContext and session-aware filter-chain APIs keep bounded message histories and rolling counters separate for each session. All four uGUI and TextMeshPro drivers accept session keys. You can explicitly reset a session, and idle sessions can be evicted without growing memory indefinitely.

That shared context powers two new filters:

  • SpamFilter detects repeated messages using normalized exact matching or configurable fuzzy matching over character trigrams.
  • ProfanityRateLimiter counts severity-qualified matches over a rolling window and raises warning or mute events when configured thresholds are reached. Your game decides how to enforce them.

Both filters return structured results, so moderation UIs can explain what matched instead of treating every changed message as a black box.

Keep your pipeline flexible

The update builds on LanguageFilter’s filter chains, per-match metadata, severity tiers, allowlists, and pluggable word-list sources. Sources can combine bundled data with a remote JSON list, which is cached locally for later launches. The package also includes 33 built-in languages and updated word-list coverage.

Stateful chains process repeat submissions rather than incorrectly reusing a cached result for identical text. Stateless filtering remains compatible with existing behavior.

The result: you can add conversation-level spam and rate checks while keeping your existing filters and UI integrations in place.

Get LanguageFilter on the Unity Asset Store.