Color theme

Word Filter & Spam Protection

Eranio Published on: 13. October 2026

Word Filter & Spam Protection

On this page you set how chat messages containing certain words, links, or spam patterns should be handled automatically. Menu: Moderation → Word Filter & Spam Protection. This page is for Twitch only.

There are two separate systems that work independently and can both be active at the same time:

  1. Word list (the table on the page): you enter individual words, phrases, or regular expressions and determine per entry what should happen.
  2. Spam protection: a set of general rules against caps-lock spam, foreign links, message floods, and copy-pasta, with a strike system for repeated violations.

Both systems always ignore the broadcaster and existing moderators, even if a word or rule would technically apply.

Requirement: a bot

The word list requires a bot linked to your channel. If none exists, the page shows a note with links to Settings (Connect Twitch Account) and Bot Account (Set up own bot), and the table stays empty.

Who executes the actions?

Timeout, delete message, and permanent ban run via the Twitch API. By default your own connected Twitch account is used, which needs no additional setup. In the Settings menu under "Moderation via" you can instead choose your own bot. If you choose the own bot, it must actually have moderator status in your channel, or Twitch will reject the action. Only if no valid access token exists does the system fall back to chat commands. For this the bot must also be a moderator in your channel.

The word list

Table columns

Column Meaning
Word The stored word, phrase, or regular expression
Action What happens on a match: Ban, Timeout, Delete, Warning, or Whitelist
Timeout The set timeout duration in seconds. Only meaningful if Action = Timeout. For other actions a saved value still shows here but isn't used
Status Active or inactive (toggle in actions)

Filters above the table

Filter Meaning
Show list Show all / My list (entries you created) / Global list (entries from eranio.de)
Action Filter by a specific action
Status Active / Inactive / All

Add Word

Via the Add Word button at the top of the page you create a new entry.

Field What it means Default value
Word / Phrase The text to search for (e.g. spam) empty, required field, max. 100 characters
Evaluate as regex Enable this to use the word as a regular expression off
Action Timeout, Delete message, Permanent ban, Send warning, or Whitelist (allow) Timeout
Timeout duration (seconds) Only visible if Action = Timeout. Allowed are 1 to 1,209,600 seconds (max. 14 days) 300

Important for the regex toggle: enter only the actual pattern without surrounding slashes (so g[e3]ld\s*verdienen, not /g[e3]ld\s*verdienen/). The system adds the slashes and case-sensitivity switches automatically.

The search doesn't depend on exact spelling: texts are normalized before matching so slightly disguised variations (e.g. numbers instead of letters, Unicode look-alikes) can be detected.

What the actions do in chat

Action What happens in chat
Permanent ban The viewer is permanently banned without a separate chat message
Timeout The viewer is silenced for the set duration without a separate chat message
Delete message Only the triggering message is deleted without a separate chat message
Send warning The message stays, the bot writes an additional fixed system message in chat addressing the viewer and reminding them of chat rules. This message isn't customizable and always appears in English
Whitelist (allow) Creates no response. The entry is instead used to exclude texts or domains from the spam protection link filter and link tester (see below)

For ban and timeout, the system notes on Twitch as the reason that a forbidden word was detected.

Global blacklist

Besides your own list, eranio.de maintains a checked global list with words/links that should apply to all channels. Via Update global blacklist you get the current global list into your own:

  • New global entries are created for you.
  • If you've already created an identical word yourself, that entry is automatically linked with the global entry instead of existing twice.
  • For already linked entries, the word, regex toggle, and action are taken from the global list. Your own timeout duration stays and isn't overwritten.
  • If a global entry is removed or no longer released, your local copy is automatically deleted on the next sync.
  • If you delete an entry linked with the global list yourself, it can appear again on the next sync as long as it's still released globally.

In the "Show list" filter you recognize global entries by the selection "Global list".

Check message / link

With the Check message / link button you open a test window without anything actually happening in chat.

Field Meaning
Message or link to test The text you want to check
Report this undetected link to the global list now Only visible/effective if the test shows the text is currently not filtered. Submits the text as a suggestion for the global list

Possible results:

  • Approved (Whitelist): the text contains a known safe address (e.g. a Twitch clip or YouTube link) or a term you entered as whitelist.
  • Blocked (Spam protection): the text is recognized as a (even hidden or disguised) link.
  • Blocked (My blacklist): a word from your own list matches.
  • Blocked (Global blacklist): a word from the global list matches.
  • Not filtered: none of the above apply. With reporting enabled, the text is submitted for review for the global list. A submitted suggestion only becomes active after approval.

The test is an approximation of the actual live check in chat, but doesn't use exactly the same additional check that runs with the real link filter in spam protection for further false alarm protection. A result shown as "blocked" in the test can therefore rarely differ in real chat.

Configure spam protection

Via the Configure spam protection button you open the settings for the second system. The main switch Enable spam protection system must be on for any of the following filters to work. Chat commands (messages starting with ! and recognized by the bot) aren't caught by any of these filters.

Setting What it does Default on first setup
Enable spam protection system Main switch for the entire spam protection system on
Block caps lock & symbols Blocks messages with over 70% uppercase letters or over 50% special characters (only for messages over 15 characters) on
Block foreign links Automatically removes links from messages on
Rate limiting (spam protection) Limits how many messages someone can write in a time window on
Max. messages Number of allowed messages in the time window 5
Time window (seconds) Length of the time window for message counting 10
Block copy-pasta (repetitions) Blocks when someone repeats the same text directly one after another on
Minimum length (characters) Copy-pasta protection only applies from this text length, so short emotes like "LUL" stay untouched 20
Enable strike system Punish repeated violations increasingly harder instead of always just deleting on
1st timeout (seconds) Duration on first violation. 0 means: only delete/warn 300 (5 minutes)
2nd timeout (seconds) Duration on second violation 600 (10 minutes)
3rd timeout (seconds) Duration from third violation onwards 3600 (1 hour)

Notes on the link filter: The system recognizes not just normal links but also deliberately disguised spellings (e.g. with spaces between letters). Known, harmless addresses like Twitch clips or YouTube videos are always exempt, as are texts you've entered yourself with the "Whitelist" action in your word list. Unclear matches are additionally automatically double-checked by AI before a message is actually deleted.

The strike system counts violations per viewer for 10 minutes. After that, counting starts over at the first strike. On the first strike the system always performs a deletion (in addition to the set timeout duration if it's greater than 0). For deleted messages the bot additionally writes a system message with the reason in chat. If the strike system is off, every violation only gets deleted without timeout.

Every triggered spam protection action is recorded in the Mod Log.

Typical workflow

  1. Check under Settings that your Twitch account is connected (this is enough for the default "Moderation via Streamer Account").
  2. Create entries in the word list for terms that should be automatically punished, each with the desired action.
  3. If desired, get the reviewed entries from eranio.de via Update global blacklist.
  4. Test individual phrasings via Check message / link before going live with them.
  5. Open Configure spam protection and enable the desired general filters.
  6. Check the Mod Log to see what actually ran automatically.

FAQ

Timeout, delete, or ban isn't working. What's missing? Usually your connected Twitch account is enough without the bot needing to be a moderator anywhere. If you chose "Own bot" as the moderation account under Settings, that exact bot must actually be a moderator in your channel, or Twitch will reject the action.

I edited a global entry, then the old value was back. On the next sync via "Update global blacklist", the word, regex toggle, and action of linked entries are set back to the global status. Only the timeout duration stays your own setting.

Why does the timeout column show a value even though the action is "Delete" or "Ban"? The stored value is only used when the action is actually "Timeout". For other actions the number stays in the table but has no effect.

Are viewers who are VIPs or subscribers exempt from the filters? The broadcaster and existing moderators are always exempt. A general special status for VIPs or subscribers doesn't currently exist.

How do I report a link the system doesn't recognize yet? Test it via "Check message / link" and enable "Report this undetected link to the global list now". It will then be suggested for review and only becomes active after approval.

Does this page also apply to TikTok? TikTok: planned and in progress.