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
- Prefixing
⚠ 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 saysKEKW
in chat!chatfilter add --timeout KEKW
- Times out any user that saysKEKW
in chat for 10 minutes!chatfilter add --timeout=300 KEKW
- Times out any users that saysKEKW
in chat for 300 seconds (5 minutes)!chatfilter add KEKW
- Clears any individual messages containingKEKW
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
- Prefixing
⚠ 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.