Documentation

This page contains documentation for all of CoeBot's features. Note that ! is used as a prefix in the documentation, but may differ per channel.


General

Commands

!join

Tells CoeBot to join your channel. Must be executed in the bot's channel. Everyone

!part

Tells CoeBot to leave your channel. In a non-bot channel, only the broadcaster may use this command. Everyone

!bothelp

Returns a helpful message. Everyone


Custom commands

Triggers

!commands

Links to the list of commands for the channel. Subs

!command add <name> <text>

Creates a command !name that responds with the specified text. Mods

By default, commands are available to subs. Using adda or addm instead of add will pre-restrict the command to all users or moderators, respectively.

Example: !command add pan FOUND THE (_PARAMETER_CAPS_), HAVE YE? — Adds a command called "pan".

Example: !command adda useful Here's some useful info: example.org — Adds a command available to all users immediately.

!command delete <name>

Deletes a command. Mods

Example: !command delete pan — Deletes the command called "pan".

!command restrict <name> all|subs|vips|mods|owner

Restricts a command to a specific group. Mods

Example: !command restrict pan mods — Restricts "pan" to moderators and above.

!command editor <name>

Gets the last editor of a command. Mods

Example: !command editor pan — Gets the last editor of the "pan" command.

!command count <name>

Gets the number of times a command has been run. Mods

Example: !command count pan — Gets the number of times the "pan" command have been used.

!command rename <old> <new>

Renames a command. Mods

Example: !command rename pan oldpan — Renames the command "pan" to "oldpan".

!command get <name>

Gets the response for a command. Mods

Example: !command get pan — Gets the response for the "pan" command.

!command clone #<channel> <name>

Clones a command from another channel into this channel. Mods

Example: !command clone #coestar pan — Clones the "pan" command into the current channel as "pan".

!command exec <command string>

Executes the command string. Can be used to quickly test some commands before adding them Mods

Example: !command exec The time in Chicago is (_TIME_America/Chicago_).

Repeats

The repeat command sets up a command repetition. When enabled, the bot will repeat every X seconds so long as Y messages have passed.

!repeat add <name> <delay in seconds> [message difference]

Sets a command to repeat, and enables it. Mods

Example: !repeat add discord 300 10 — Sets the command "discord" to repeat every 300 seconds if at least 10 messages have passed.

!repeat delete <name>

Deletes a command's repeat info. Mods

Example: !repeat delete discord — Stops repeating the "discord" command and deletes its repeat info.

!repeat on|off <name>

Enables or disables a command's repetition. Mods

Example: !repeat on discord — Enables repetition of the "discord" command.

!repeat list

Lists command repetition info. Mods

Schedule

The schedule command sets up a command repetition via a cron expression. Like repeated commands, a message difference can be specified.

!schedule add <name> <pattern> [message difference]

Schedules a command, and enables it. Mods

Example: !schedule add discord *_5_*_*_* — Schedules the command "discord" to at 5AM every day.

Example: !schedule add discord hourly 10 — Schedules the command "discord" to run hourly if at least 10 messages have passed.

!schedule delete <name>

Deletes a command's schedule. Mods

Example: !schedule delete discord — Unschedules the "discord" command and deletes its schedule.

!schedule on|off <name>

Enables or disables a command's repetition. Mods

Example: !schedule on discord — Enables the schedule of the "discord" command.

!schedule list

Lists command schedules. Mods

Autoreplies

Autoreplies are like custom commands, but are run when a message matches a pattern.

!autoreply add <pattern> <response>

Adds an autoreply which will respond with the provided response when a message matches the pattern. Mods

In the pattern, spaces should be replaced with underscores.

Example: !autoreply add *what*game* This is (_GAME_). — Adds an autoreply that will reply with the current game if a message matches the pattern "*what*game".

Example: !autoreply add REGEX:^too_many_[^_]+$ TOO MANY COOKS (_REGULARS_ONLY_) — Adds an autoreply which uses a raw regex pattern.

!autoreply delete <num>

Removes an autoreply. Mods

Note that deleting an autoreply that isn't the last does not shift the numbers down. Use !autoreply compact to do this.

!autoreply editresponse <num> <response>

Edits an autoreply's response. Mods

!autoreply editpattern <num> <pattern>

Edits an autoreply's pattern. Mods

In the pattern, spaces should be replaced with underscores.

!autoreply compact <num>

Compacts autoreplies "num" and higher. This is useful after removing an autoreply in the middle of the list. Mods

!autoreply list

Links to the list of autoreplies for the channel. Mods

Lists

Lists are collections of command-like responses, which can be accessed directly, or via the (_LIST_<name>_RANDOM_) action. They share the same namespace as custom commands, and may contain command actions themselves.

!list add <name>

Adds a list. Mods

By default, lists are available to subs. Using adda or addm instead of add will pre-restrict the list to all users or moderators, respectively.

Example: !list add hatspells — Adds a list called "hatspells".

!list delete <name>

Removes a list. Mods

!list restrict <name> all|subs|vips|mods|owner

Restricts a list. Mods

!list rename <old> <new>

Renames a list. Mods

!<name>

Gets a random item from the list. Or use !<name> random. Varies

!<name> add <item>

Adds an item to the named list. Mods

Example: !hatspells add Solar Eruption — Adds "Solar Eruption" to the "hatspells" list.

!<name> delete <item>

Removes an item from the named list. Mods

Example: !hatspells remove Solar Eruption — Removes "Solar Eruption" from the "hatspells" list.

!<name> restrict

Same as !list restrict <name>. Mods

!<name> get <num>

Gets a specific item from the list. Varies

Variables

Variables store persistent information between commands, and are accessible directly or through actions.

!var set <name> <value>

Sets a variable. Mods

!var get <name>

Gets a variable's value. Mods

!var delete <name>

Removes a variable. Mods

!var increment <name> <amount>

Increments a variable as an integer. Mods

!var decrement <name> <amount>

Decrements a variable as an integer. Mods


Moderation

Shortcuts

+b <user>

Bans a user. Mods

-b <user>

Unbans a user. Mods

+t <user> [seconds]

Times out a user (with an optional duration). Mods

-t <user>

Removes a user's timeout. Mods

+p <user>

Purges a user's messages. Mods

!permit <user>

Permits a user to post one link. Mods

!clear

Clears chat. Mods

+m

Turns slow mode on. Mods

-m

Turns slow mode off. Mods

+s

Turns sub only mode on. Mods

-s

Turns sub only mode off. Mods

Ignores

Ignored users may not use CoeBot, but will still be subject to filters.

!ignore add <user>

Adds a user to the ignore list. Mods

!ignore delete <user>

Removes a user from the ignore list. Mods

!ignore list

Lists users in the ignore list. Mods

User levels

Custom user levels reclassify users to have different levels. Regulars are equivalent to subscribers, owners are equivalent to the channel broadcaster, and mods are mods.

!regular list

Lists regulars. Mods

!regular add|remove <user>

Adds or removes a user from the regular list. Mods

!owner|mod list

Lists users in that group. Broadcaster

!owner|mod add|remove <user>

Adds or removes a user from a list. Broadcaster


Fun

General fun

!conch

Magic 8 ball. Subs

!xkcd <num>

Gets the requested XKCD comic. Subs

!random coin

Flips a coin. Varies

!random <integer>

Picks a random number. Varies

!roll <dice>

Rolls the specified dice. Varies

Example: !roll 2d20 — Rolls two D20s.

!google <query>

Googles something. Subs

!link <query>

Links something. Subs

!me <phrase>

Sends a /me command. Mods

!urban <phrase>

Looks up something in the Urban Dictionary. Be warned, these are not filtered. Subs

Quotes

!quote

Gets a random quote. Subs

!quote add <quote>

Adds a quote. Mods

Example: !quote add "This is a quote!" — Adds a the quote "This is a quote!".

!quote delete <num>

Removes a quote. Mods

Note that deleting a quote that isn't the last does not shift the numbers down. Use !quote compact to do this.

!quote get <num>

Gets a quote. Subs

!quote random

Gets a random quote. Subs

!quote getindex <exact quote>

Returns the number of the exact quote specified. Subs

!quote edit <num> <quote>

Edts a quote. Mods

!quote search <phrase>

Searches all quotes for a phrase. Mods

!quote editor <num>

Gets the username of the last editor of the quote. Subs

!quote compact <num>

Compacts quotes "num" and higher. This is useful after removing a quote in the middle of the list. Mods


Utilities

General utilities

!lastfm

Links to the channel's LastFM profile. Everyone

!music

Gets the currently playing song. Everyone

!songlink

Gets a link to the currently playing song. Everyone

!whatshouldiplay

Picks a random game from the channel's Steam library. Broadcaster

!channelid

Gets the channel's Twitch ID. Everyone

!ht

Creates a highlight (viewable on the channel page). Everyone

!highlightthat

Same as !ht. Everyone

!#<channel>/<command>

Runs a command from another channel. Broadcaster

!hltb

Fetches the HowLongToBeat time for the current game, or an arbitrary game with a parameter. Subs

Twitch

!game

Gets the current game. Everyone

!game <new game>

Sets the current game. Only valid game names are allowed, but the bot will autocorrect or suggest game names when possible. Mods

!status

Gets the current status. Everyone

!status <new status>

Sets the current status. Mods

!uptime

Gets the current uptime. Everyone

!viewers

Gets the current viewer count. Everyone

!islive <user>

Checks if a user is live. Mods

!statusgame <new status>

Sets the current game to the current Steam game. and sets the status. Mods

!steamgame

Sets the current game to the current Steam game. Mods

Raffles

!raffle

Enters into the active raffle. Everyone

!raffle enable|disable

Enables/disables the raffle. Enabling the raffle clears the previous entries. Mods

!raffle reset

Resets the raffle entries. Mods

!raffle count

Counts the number of raffle entries. Mods

!raffle winner

Picks a random winner. Mods

!raffle winner <X>

Picks <X> random winners. Mods


Settings

General settings

!set prefix <prefix>

Sets the prefix used to access commands. Broadcaster

!set bullet <bullet>

Sets the bullet prepended to all bot messages. Broadcaster

!set cooldown <seconds>

Sets the command cooldown. Mods

!set shouldModerate on|off

Enables moderation. Mods

!set lastfm off|<name>

Sets the channel's LastFM profile name. Mods

!set enableWarnings on|off

Enable warnings before moderation actions. Mods

!set displayWarnings on|off

Show warnings on warns. Mods

!set timeoutDuration <seconds>

Sets the moderation timeout duration. Mods

!set extraLifeID <ID>

Sets the Extra-Life ID. Mods

!set subsMayLink on|off

Allow subscribers to link. Mods

!set mode all|subs|vips|mods|owner

Sets the minimum user level for the bot to respond to. Mods

!set steam <ID>

Sets the channel's Steam ID. Mods

!set urban on|off

Enables/disables the urban command. Mods

!set tweet <message>

Sets the ClickToTweet message. Mods

Roll

!set roll default <num>

Set the default roll amount. Mods

!set roll cooldown <seconds>

Set the roll cooldown. Mods

!set roll userlevel all|subs|vips|mods|owner

Set the minimum user level for roll/random. Mods


Filters

General filters

!filter on|off

Enables/disables all filters. Mods

!filter status

Shows the status of all filters. Mods

!filter me on|off

Enables/disables the /me filter. Mods

!filter messagelength <length>

Sets the maximum message length. Mods

!filter exempt all|subs|vips|mods|owner

Sets the minimum user level that will be exempt from filters. Defaults to subs, and cannot be higher than mods. For historical reasons, link filtering is controlled by subsMayLink. Mods

Capitals

!filter caps on|off

Toggles caps filtering. Mods

!filter caps status

Shows caps filter status. Mods

!filter percent <percent>

Sets minimum caps percentage to be filtered. Mods

!filter mincaps <num>

Sets minimum caps count to be filtered. Mods

!filter minchars <num>

Sets minimum message length to be filtered. Mods

Banned phrases

!filter banphrase on|off

Toggles banned phrase filtering. Mods

!filter banphrase list

Lists banned phrases. Mods

!filter banphrase add|delete <phrase>

Adds/removes a banned phrase. Mods

Symbols

!filter symbols on|off

Toggles symbol filtering. Mods

!filter symbols status

Shows symbol filter status. Mods

!filter symbols percent <percent>

Sets minimum symbol percentage to be filtered. Mods

!filter symbols min <num>

Sets minimum symbol count to be filtered. Mods

Emotes

!filter emotes on|off

Toggles emote filtering. Mods

!filter emotes max <num>

Sets max emotes allowed per message. Mods

!filter emotes single on|off

Toggles filter for single emote messages. Mods


Actions

These actions can be used in custom commands and list commands. Actions may be nested, for example:

(_TEXTAPI_https://duckduckgo.com/?q=(_QESC_(_P_)_)_)

Common

(_PARAMETER_)

The next command parameter (split by semicolon).

(_P_)

Same as PARAMETER.

(_PARAMETER_CAPS_)

The next command parameter, in all caps.

(_P_CAPS_)

Same as PARAMETER_CAPS.

(_PARAMETER_OR_<DEFAULT>_)

The next command parameter, or a default value if empty.

(_P_OR_<DEFAULT>_)

Same as PARAMETER_OR_<DEFAULT>.

(_PARAMETER_<X>_)

Parameter <X>.

(_P_<X>_)

Same as PARAMETER_<X>.

(_PARAMETER_<X>_OR_<DEFAULT>_)

Parameter <X>, or a default value if empty.

(_P_<X>_OR_<DEFAULT>_)

Same as PARAMETER_<X>_OR_<DEFAULT>.

(_PARAMETER_<X>_CAPS_)

Parameter <X>, in all caps.

(_P_<X>_CAPS_)

Same as PARAMETER_<X>_CAPS.

(_CAPS_<X>_)

Makes <X> all caps.

(_USER_)

The user's name.

(_USER_DISPLAY_)

The user's display name.

(_ONLINE_CHECK_)

If offline, the command is disabled.

(_GAME_)

The current game.

(_GAME_CLEAN_)

The current game, URL-safe.

(_GAME_IS_<GAME>_)

If present and the current game is not <GAME>, then the command will stop. Note that this cannot be used with nesting, e.g. you cannot do (_GAME_IS_(_PARAMETER_)_).

(_GAME_IS_NOT_<GAME>_)

Inverse of GAME_IS_<GAME>.

(_GAME_LINK_)

A link to the current game, at its relevent game store.

(_STATUS_)

The current stream status.

(_VIEWERS_)

The current viewer count.

(_CHATTERS_)

The current chatter count.

(_QUOTE_)

A random quote.

(_RANDOM_<MIN>_<MAX>_)

A random number between <MIN> and <MIN>, up to one decimal place.

(_RANDOM_INT_<MIN>_<MAX>_)

A random integer between <MIN> and <MIN>.

(_QUIET_<X>_)

Evaluates to the empty string, ignoring the value of <X>. Useful to silence actions with side effects, such as variable setting.

Moderation

(_SUBMODE_ON_)

Enables submode.

(_SUBMODE_OFF_)

Disables submode.

(_PURGE_)

Purges the messages of the user in the first parameter, or the sender if used in an autoreply.

(_BAN_)

Bans the user in the first parameter, or the sender if used in an autoreply, and returns the user.

(_TIMEOUT_)

Times out the user in the first parameter, or the sender if used in an autoreply, and returns the user.

(_DELETE_)

Deletes the message if used in an autoreply, and returns the user.

(_REGULARS_ONLY_)

Only allow regulars (subs) to use the command.

Date and time

(_DATE_)

The current date, UTC.

(_DATE_<TZ>_)

The current date, in the specified timezone (like "America/Chicago" or "MST").

(_TIME_)

The current time, UTC.

(_TIME_<TZ>_)

The current time, in the specified timezone (like "America/Chicago" or "MST").

(_TIME24_)

The current 24-hour time, UTC.

(_TIME24_<TZ>_)

The current 24-hour time, in the specified timezone (like "America/Chicago" or "MST").

(_DATETIME_)

The current date and time, UTC.

(_DATETIME_<TZ>_)

The current date and time, in the specified timezone (like "America/Chicago" or "MST").

(_DATETIME24_)

The current date and 24-hour time, UTC.

(_DATETIME24_<TZ>_)

The current date and 24-hour time, in the specified timezone (like "America/Chicago" or "MST")..

(_UNTIL_<TIMESTAMP>_)

Time until the specified timestamp (in RFC3339 or UNIX-timestamp form).

(_UNTILSHORT_<TIMESTAMP>_)

Time until the specified timestamp (in RFC3339 or UNIX-timestamp form), short style.

(_UNTILLONG_<TIMESTAMP>_)

Time until the specified timestamp (in RFC3339 or UNIX-timestamp form), long style.

Variables, lists, and commands

(_VARS_<NAME>_GET_)

Gets a variable.

(_VARS_<NAME>_GET_<CHANNEL>_)

Gets a variable from a specific channel.

(_VARS_<NAME>_SET_<VALUE>_)

Set's a variable to a value.

(_VARS_<NAME>_INCREMENT_<NUM>_)

Increments a variable if it is an integer.

(_VARS_<NAME>_DECREMENT_<NUM>_)

Decrements a variable if it is an integer.

(_LIST_<NAME>_RANDOM_)

A random item from a list.

(_COMMAND_<COMMAND>_)

Insert the specified command's response.

(_<COMMAND>_COUNT_)

The number of times a command has been used.

Meta

(_MESSAGE_COUNT_)

The current message count in this channel.

(_SILENT_)

Silences the message containing this action.

(_NUMCHANNELS_)

The number of channels the bot is active in.

(_BOT_HELP_)

The bot's help message.

(_CHANNEL_URL_)

The current channel's URL.

Third-party APIs

(_SONG_)

Current song.

(_SONG_URL_)

Current song's URL.

(_LAST_SONG_)

The previous song.

(_EXTRALIFE_AMOUNT_)

The current Extra-Life amount.

(_STEAM_PROFILE_)

The link to the channel's Steam profile.

(_STEAM_GAME_)

The current Steam game.

(_STEAM_SERVER_)

The current Steam game's server.

(_STEAM_STORE_)

A link to the current Steam game.

(_TWEET_URL_)

A link to Twitter which will send a tweet about the stream.

(_TEXTAPI_<URL>_)

Sends a GET request to the provided URL and returns the resulting body.

(_PESC_<TEXT>_)

Path-escapes the given text.

(_QESC_<TEXT>_)

Query-escapes the given text.