# Moderation

KickBot moderation runs in the background while you stream. When a chat message matches one of the rules you have turned on, KickBot deletes it before it lands in your channel and adds an entry to the **Moderation Logs** so you can see what was caught.

{% hint style="info" %}
This guide assumes you have a KickBot account with your Kick channel connected.
{% endhint %}

{% hint style="info" %}
The streamer and any moderators on your Kick channel are immune to every filter on this page. KickBot will not delete their messages, even if they trip a rule.
{% endhint %}

## Built-in filters

Navigate to [kickbot.com/dashboard/moderation](https://kickbot.com/dashboard/moderation). The **Moderation Filters** card has five toggles for the most common patterns. Flip on the ones you want and click **Save Changes**.

<figure><img src="/files/uKnWzO6HCZHaJNu3QdnX" alt="KickBot moderation filters card with bad word, repeated text, excessive caps toggles plus custom banned words and regex patterns."><figcaption><p>The Moderation Filters card holds every rule on a single page.</p></figcaption></figure>

* **Bad Word Filter.** Deletes messages that contain swear words from KickBot's built-in profanity list.
* **Repeated Text.** Deletes messages with long runs of the same character or phrase.
* **Excessive Caps (>70%).** Deletes any message where more than 70% of the letters are uppercase.
* **Zalgo Text.** Deletes messages that use stacked combining marks (the glitchy "zalgo" effect).
* **Message Length Limit.** Off by default. When on, set a character cap between 0 and 500. Messages longer than the cap are deleted.

Each toggle is independent, so you can enable any combination.

## Custom banned words

The **Custom Banned Words** box is a place to add your own list. One word or phrase per line. KickBot deletes any message whose text contains an entry on the list.

{% hint style="info" %}
Each entry must be at least two characters and you can store up to 100 entries. Anything shorter or extra is dropped when you save.
{% endhint %}

For example, a list with `spamword`, `badlink123`, and `blocked phrase` will catch a message like "check out spamword.io" but leave "spam" alone.

## Regex patterns

For matches that are not just literal strings, the **Regex Patterns** box accepts standard regular expressions. One pattern per line, up to 20 patterns.

{% hint style="warning" %}
Patterns prone to catastrophic backtracking (nested quantifiers like `(a+)+` or `(a*)+`) are rejected when you save. Stick to straightforward patterns to keep your filter fast.
{% endhint %}

A few examples:

* `discord\.gg/\w+` blocks Discord invite links.
* `bit\.ly/\w+` blocks bit.ly shortlinks.
* `(buy|sell)\s+followers` blocks "buy followers" and "sell followers" spam.

If a pattern fails to compile, that line is dropped on save and the rest still go through.

## Moderation logs

The **Moderation Logs** card under the filters lists messages that have been caught. Each row shows the chatter's username, which filter triggered, the original message, and a timestamp. Scroll the list to load more entries.

{% hint style="info" %}
The logs only fill in once a filter actually catches something during a live stream. If yours is empty, that is normal until your filters start matching real chat.
{% endhint %}

## Troubleshooting

If chat messages are slipping through that you expect to be caught:

* **Confirm the filter is on.** A toggle reverting silently means the page never saved. Click **Save Changes** and watch for the success toast.
* **Check whether the chatter is a moderator.** The streamer and Kick moderators are immune. If a mod is testing a banned word, the filter will not fire on them.
* **Confirm KickBot is a moderator on your Kick channel.** Without mod permission, KickBot cannot delete messages. Add it at [dashboard.kick.com/community/roles/moderator](https://dashboard.kick.com/community/roles/moderator).
* **Recheck the regex.** Patterns shorter than two characters or with nested quantifiers are dropped when you save, so they will not appear in your saved list.

<figure><img src="/files/syrItIdJvjYQiV6W7PYo" alt="Moderator Immunity callout: the streamer and moderators are immune to all filters."><figcaption><p>The dashboard surfaces the immunity rule in the right-hand sidebar.</p></figcaption></figure>

## FAQ

<details>

<summary>How do I add banned words on Kick?</summary>

Navigate to [kickbot.com/dashboard/moderation](https://kickbot.com/dashboard/moderation) and type each word on its own line in the **Custom Banned Words** box. Click **Save Changes**. Up to 100 words are stored.

</details>

<details>

<summary>Can KickBot auto-mod Kick chat?</summary>

Yes. Once you turn on filters and save, KickBot reads chat in real time and deletes any message that matches your rules. No human action is needed mid-stream.

</details>

<details>

<summary>What happens to a message that breaks a filter?</summary>

KickBot removes it from chat and writes the chatter, the rule that fired, and the original text into the **Moderation Logs** table on the same page.

</details>

<details>

<summary>Will moderation delete my own messages?</summary>

No. Streamer and Kick moderator accounts are immune to every filter, including the custom word and regex lists. Moderation only acts on regular viewer messages.

</details>

<details>

<summary>Can I shorten the maximum chat message length?</summary>

Yes. Turn on **Message Length Limit** and pick a character cap up to 500. Longer messages are deleted automatically.

</details>

## Still stuck?

Email <support@kickbot.com> or post in the `#support` channel of the [KickBot Discord](https://discord.gg/MAg3gBbc89) and we will help work it out.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kickbot.com/dashboard/chat-bot/moderation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
