Introduction

Commands

AutoexecBot comes with several built-in commands to help with moderating chat, diagnosing issues with the bot, and fun chat games. This section highlights those commands and their usage.

For more information on the individual commands, see the following sections:

Name Filter

Name filtering is used to ban chatters and new followers with offensive names that may not match your community guidelines for your channel. It is an optional feature and you are not required to use it in your channel. It provides the ability to add and remove name filters and allows for users to be whitelisted, if their name is caught by an over-eager filter. The filters use a custom filter syntax designed for AutoexecBot to allow for flexible matching against phrases.

All of the commands listed on this page are restricted to usage by the channel broadcaster and moderators only.

⚠ There's currently no way to list all of the existing filters. This is a feature that will be added in the future once the website is available.

Subcommands

The name filter functionality uses a series of subcommands to allow for configuration, which are documented below.

Add a new filter

Usage

!namefilter add [filter]

This subcommand is used to add a new filter to the name filters. The filter parameter is required and follows the filter syntax outlined in the next section.

Remove an existing filter

Usage

!namefilter remove [filter]

This subcommand is used to remove an existing filter from the name filters. The filter parameter is required and follows the filter syntax outlined in the next section.

Adding a user to the name whitelist

Usage

!namefilter allow [name]

This subcommand is used to add the given username to the whitelist of allowed users. The name parameter is required and must be an exact match for the name of the user, however the name is not case sensitive.

This command will also unban the user if they had been banned.

Removing a use from the name whitelist

Usage

!namefilter allow [name]

This subcommand is used to remove the given username from the whitelist of allowed users. The name parameter is required and must be an exact match for the name of the user, however the name is not case sensitive.

This command will also ban the user if they have not been previously banned.

Filter Syntax

AutoexecBot provides a special syntax for matching names, words, and phrases in chat that allows for some flexibility in what gets matched. These filters are always case-insensitive. There's several available operators for constructing a filter. This section explains those operators and their usage.

⚠ Currently the filter syntax will only match on words as it does not currently support spaces. The ability to match on broader phrases, including spaces may be added in the future.

Wildcard - Zero or more

It is possible to match on a wildcard in text zero or more times using the * operator. This operator acts as a placeholder for any character repeated zero or more times.

Example 1

KEK*

This would match on any text that starts with KEK. Such was KEK, KEKW, KEKWW, etc.

Example 2

KE*K

This would match on any text that begins with KE and ends with K such as KEK, KEEK, KEEKK, etc.

Wildcard - One or more

It is possible to match on a wildcard in text one or more times using the + operator. This operator acts as a placeholder for any character repeated one or more times.

Example 1

KEK+

This would match on any text that starts with KEK and is followed by one or more characters. Such as KEKW, KEKA, KEKAA, KEKWA, etc.

Example 2

KE+K

This would match on any text that starts with KE followed by any character and the letter K. Such as KEEK, KEKK, KEKEK, etc.

Wildcard - At most one

It is possible to match on at most one wild card value using the ? operator. It is a placeholder for any character used zero to one times.

Example 1

KEK?

This would match on any text starting with KEK followed by zero to one more letter. Such as KEK, KEKA, KEKB, KEKC, etc.

Example 2

KE?K

This would match any text that starts with KEK, followed by zero or one character and the letter K. Such as KEK, KEKK, KESK, etc.

Fuzzy letter match

It is a common case where users will use the letter i and letter l interchangably with the casing changed, due to their similar appearance under some fonts. To help with this issue a special "fuzzy letter match" is provided for this case. The [i] operator will match either the letter i or letter l.

Example

boo[i]i.

This would match either booli or booii.

Repeating

Sometimes users will repeat the same character multiple times in order to circumvent filters. To help with this, the repeating operator % can be used to indicate that the following character (including the fuzzy letter match) can be repeated one or more times.

Example 1

KEK%W

This would match KEKW, KEKWW, KEKWWW, etc.

Example 2

bool%[i]

This would match booli, booll, boolii, boolll, boolli, etc.

Operator escape sequences

Sometimes it is necessary to filter on the characters listed as operators in this document verbatim and not as the operators themselves. The filter syntax provides escape sequences prefixed with \ to match on those characters reserved as operators. The following is a comprehensive list of escape sequences.

  • \\ - Matches on the character \
  • \* - Matches on the character *
  • \+ - Matches on the character +
  • \? - Matches on the character ?
  • \% - Matches on the character %
  • \[ - Matches on the character [
    • Prefixing [i] with \ such as \[i] would match [i] exactly and not use the fuzzy match operator

⚠ Currently there is no way to escape the sequence r# at the beggining of a filter. This will be corrected in a future update.

Regular Expressions

⚠ This is a feature for advanced users only! Improper use can lead to unintended consequences, such as all users being banned from your channel. USE AT YOUR OWN RISK. If you do not know what a regular expression is, this feature is probably not for you.

Prexifing any filter with r# will parse all text after the r# as a regular expression, following the syntax outlined in the Rust regex crate documentation.

Example 1

r#(a|b)+

This would match all text that's any combination of the letters a and b repeated one or more times. Such as a, b, ab, ba, aa, bb, etc.

Chat Filter

Chater filtering is used to moderate chat messages that may not match your community guidelines for your channel. It is an optional feature and you are not required to use it in your channel. It provides the ability to add and remove chat filters and setting the level of moderation to apply to the message. The filters use a custom filter syntax designed for AutoexecBot to allow for flexible matching against phrases.

All of the commands listed on this page are restricted to usage by the channel broadcaster and moderators only.

⚠ There's currently no way to list all of the existing filters. This is a feature that will be added in the future once the website is available.

Subcommands

The chat filter functionality uses a series of subcommands to allow for configuration, which are documented below.

Add a new filter

Usage

!chatfilter add (moderation level) [filter]

This subcommand is used to add a new filter to the chat filters. The filter parameter is required and follows the filter syntax outlined in the next section. The (moderation level) parameter is optional, defaulting to clearing the individual message from chat and can be configured as follows:

  • --timeout - Times the user out for the default 10 minutes
  • --timeout=[duration] - Times the user out for the specified duration in seconds
  • --ban - Bans the users from chat

Some example uses:

  • !chatfilter add --ban KEKW - Bans any user that says KEKW in chat
  • !chatfilter add --timeout KEKW - Times out any user that says KEKW in chat for 10 minutes
  • !chatfilter add --timeout=300 KEKW - Times out any users that says KEKW in chat for 300 seconds (5 minutes)
  • !chatfilter add KEKW - Clears any individual messages containing KEKW from chat

Remove an existing filter

Usage

!namefilter remove [filter]

This subcommand is used to remove an existing filter from the chat filters. The filter parameter is required and follows the filter syntax outlined in the next section.

Filter Syntax

AutoexecBot provides a special syntax for matching names, words, and phrases in chat that allows for some flexibility in what gets matched. These filters are always case-insensitive. There's several available operators for constructing a filter. This section explains those operators and their usage.

⚠ Currently the filter syntax will only match on words as it does not currently support spaces. The ability to match on broader phrases, including spaces may be added in the future.

Wildcard - Zero or more

It is possible to match on a wildcard in text zero or more times using the * operator. This operator acts as a placeholder for any character repeated zero or more times.

Example 1

KEK*

This would match on any text that starts with KEK. Such was KEK, KEKW, KEKWW, etc.

Example 2

KE*K

This would match on any text that begins with KE and ends with K such as KEK, KEEK, KEEKK, etc.

Wildcard - One or more

It is possible to match on a wildcard in text one or more times using the + operator. This operator acts as a placeholder for any character repeated one or more times.

Example 1

KEK+

This would match on any text that starts with KEK and is followed by one or more characters. Such as KEKW, KEKA, KEKAA, KEKWA, etc.

Example 2

KE+K

This would match on any text that starts with KE followed by any character and the letter K. Such as KEEK, KEKK, KEKEK, etc.

Wildcard - At most one

It is possible to match on at most one wild card value using the ? operator. It is a placeholder for any character used zero to one times.

Example 1

KEK?

This would match on any text starting with KEK followed by zero to one more letter. Such as KEK, KEKA, KEKB, KEKC, etc.

Example 2

KE?K

This would match any text that starts with KEK, followed by zero or one character and the letter K. Such as KEK, KEKK, KESK, etc.

Fuzzy letter match

It is a common case where users will use the letter i and letter l interchangably with the casing changed, due to their similar appearance under some fonts. To help with this issue a special "fuzzy letter match" is provided for this case. The [i] operator will match either the letter i or letter l.

Example

boo[i]i.

This would match either booli or booii.

Repeating

Sometimes users will repeat the same character multiple times in order to circumvent filters. To help with this, the repeating operator % can be used to indicate that the following character (including the fuzzy letter match) can be repeated one or more times.

Example 1

KEK%W

This would match KEKW, KEKWW, KEKWWW, etc.

Example 2

bool%[i]

This would match booli, booll, boolii, boolll, boolli, etc.

Operator escape sequences

Sometimes it is necessary to filter on the characters listed as operators in this document verbatim and not as the operators themselves. The filter syntax provides escape sequences prefixed with \ to match on those characters reserved as operators. The following is a comprehensive list of escape sequences.

  • \\ - Matches on the character \
  • \* - Matches on the character *
  • \+ - Matches on the character +
  • \? - Matches on the character ?
  • \% - Matches on the character %
  • \[ - Matches on the character [
    • Prefixing [i] with \ such as \[i] would match [i] exactly and not use the fuzzy match operator

⚠ Currently there is no way to escape the sequence r# at the beggining of a filter. This will be corrected in a future update.

Regular Expressions

⚠ This is a feature for advanced users only! Improper use can lead to unintended consequences, such as all users being banned from your channel. USE AT YOUR OWN RISK. If you do not know what a regular expression is, this feature is probably not for you.

Prexifing any filter with r# will parse all text after the r# as a regular expression, following the syntax outlined in the Rust regex crate documentation.

Example 1

r#(a|b)+

This would match all text that's any combination of the letters a and b repeated one or more times. Such as a, b, ab, ba, aa, bb, etc.

Chat Games

AutoexecBot comes with some built-in chat games. This section covers those games, how to activate them, and what they do.

Diagnostics

From time to time, when asking for support for your copy of AutoexecBot you may be asked to provide some diagnostic information. This section covers the commands that can be used by bot admins, channel broadcasters, and moderators to obtain that information.

Runtime

Usage

!runtime

The bot will report how long it has been running for. This is useful for helping to know when the bot was last restarted, to look for any potential crash events.

Version

Usage

!version

The bot will report its current version. This is useful for reporting which version of the bot is running in your channel when asking for support.