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

!joinEveryone

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

!partEveryone

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

!bothelpEveryone

Returns a helpful message.


Custom commands

Triggers

!commandsSubs

Links to the list of commands for the channel.

!command add <name> <text>Mods

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

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>Mods

Deletes a command.

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

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

Restricts a command to a specific group.

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

!command editor <name>Mods

Gets the last editor of a command.

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

!command count <name>Mods

Gets the number of times a command has been run.

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

!command rename <old> <new>Mods

Renames a command.

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

!command get <name>Mods

Gets the response for a command.

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

!command clone #<channel> <name>Mods

Clones a command from another channel into this channel.

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

!command exec <command string>Mods

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

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]Mods

Sets a command to repeat, and enables it.

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>Mods

Deletes a command's repeat info.

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

!repeat on|off <name>Mods

Enables or disables a command's repetition.

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

!repeat listMods

Lists command repetition info.

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]Mods

Schedules a command, and enables it.

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>Mods

Deletes a command's schedule.

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

!schedule on|off <name>Mods

Enables or disables a command's repetition.

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

!schedule listMods

Lists command schedules.

Autoreplies

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

!autoreply add <pattern> <response>Mods

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

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>Mods

Removes an autoreply.

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>Mods

Edits an autoreply's response.

!autoreply editpattern <num> <pattern>Mods

Edits an autoreply's pattern.

In the pattern, spaces should be replaced with underscores.

!autoreply compact <num>Mods

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

!autoreply listMods

Links to the list of autoreplies for the channel.

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>Mods

Adds a list.

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>Mods

Removes a list.

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

Restricts a list.

!list rename <old> <new>Mods

Renames a list.

!<name>Varies

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

!<name> add <item>Mods

Adds an item to the named list.

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

!<name> delete <item>Mods

Removes an item from the named list.

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

!<name> restrictMods

Same as !list restrict <name>.

!<name> get <num>Varies

Gets a specific item from the list.

Variables

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

!var set <name> <value>Mods

Sets a variable.

!var get <name>Mods

Gets a variable's value.

!var delete <name>Mods

Removes a variable.

!var increment <name> <amount>Mods

Increments a variable as an integer.

!var decrement <name> <amount>Mods

Decrements a variable as an integer.


Moderation

Shortcuts

+b <user>Mods

Bans a user.

-b <user>Mods

Unbans a user.

+t <user> [seconds]Mods

Times out a user (with an optional duration).

-t <user>Mods

Removes a user's timeout.

+p <user>Mods

Purges a user's messages.

!permit <user>Mods

Permits a user to post one link.

!clearMods

Clears chat.

+mMods

Turns slow mode on.

-mMods

Turns slow mode off.

+sMods

Turns sub only mode on.

-sMods

Turns sub only mode off.

Ignores

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

!ignore add <user>Mods

Adds a user to the ignore list.

!ignore delete <user>Mods

Removes a user from the ignore list.

!ignore listMods

Lists users in the ignore list.

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 listMods

Lists regulars.

!regular add|remove <user>Mods

Adds or removes a user from the regular list.

!owner|mod listBroadcaster

Lists users in that group.

!owner|mod add|remove <user>Broadcaster

Adds or removes a user from a list.


Fun

General fun

!conchSubs

Magic 8 ball.

!xkcd <num>Subs

Gets the requested XKCD comic.

!random coinVaries

Flips a coin.

!random <integer>Varies

Picks a random number.

!roll <dice>Varies

Rolls the specified dice.

Example: !roll 2d20 — Rolls two D20s.

!google <query>Subs

Googles something.

!link <query>Subs

Links something.

!me <phrase>Mods

Sends a /me command.

!urban <phrase>Subs

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

Quotes

!quoteSubs

Gets a random quote.

!quote add <quote>Mods

Adds a quote.

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

!quote delete <num>Mods

Removes a quote.

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>Subs

Gets a quote.

!quote randomSubs

Gets a random quote.

!quote getindex <exact quote>Subs

Returns the number of the exact quote specified.

!quote edit <num> <quote>Mods

Edts a quote.

!quote search <phrase>Mods

Searches all quotes for a phrase.

!quote editor <num>Subs

Gets the username of the last editor of the quote.

!quote compact <num>Mods

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


Utilities

General utilities

!lastfmEveryone

Links to the channel's LastFM profile.

!musicEveryone

Gets the currently playing song.

!songlinkEveryone

Gets a link to the currently playing song.

!whatshouldiplayBroadcaster

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

!channelidEveryone

Gets the channel's Twitch ID.

!htEveryone

Creates a highlight (viewable on the channel page).

!highlightthatEveryone

Same as !ht.

!#<channel>/<command>Broadcaster

Runs a command from another channel.

!hltbSubs

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

Twitch

!gameEveryone

Gets the current game.

!game <new game>Mods

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

!statusEveryone

Gets the current status.

!status <new status>Mods

Sets the current status.

!uptimeEveryone

Gets the current uptime.

!viewersEveryone

Gets the current viewer count.

!islive <user>Mods

Checks if a user is live.

!statusgame <new status>Mods

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

!steamgameMods

Sets the current game to the current Steam game.

Raffles

!raffleEveryone

Enters into the active raffle.

!raffle enable|disableMods

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

!raffle resetMods

Resets the raffle entries.

!raffle countMods

Counts the number of raffle entries.

!raffle winnerMods

Picks a random winner.

!raffle winner <X>Mods

Picks <X> random winners.


Settings

General settings

!set prefix <prefix>Broadcaster

Sets the prefix used to access commands.

!set bullet <bullet>Broadcaster

Sets the bullet prepended to all bot messages.

!set cooldown <seconds>Mods

Sets the command cooldown.

!set shouldModerate on|offMods

Enables moderation.

!set lastfm off|<name>Mods

Sets the channel's LastFM profile name.

!set enableWarnings on|offMods

Enable warnings before moderation actions.

!set displayWarnings on|offMods

Show warnings on warns.

!set timeoutDuration <seconds>Mods

Sets the moderation timeout duration.

!set extraLifeID <ID>Mods

Sets the Extra-Life ID.

!set subsMayLink on|offMods

Allow subscribers to link.

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

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

!set steam <ID>Mods

Sets the channel's Steam ID.

!set urban on|offMods

Enables/disables the urban command.

!set tweet <message>Mods

Sets the ClickToTweet message.

Roll

!set roll default <num>Mods

Set the default roll amount.

!set roll cooldown <seconds>Mods

Set the roll cooldown.

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

Set the minimum user level for roll/random.


Filters

General filters

!filter on|offMods

Enables/disables all filters.

!filter statusMods

Shows the status of all filters.

!filter me on|offMods

Enables/disables the /me filter.

!filter messagelength <length>Mods

Sets the maximum message length.

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

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.

Capitals

!filter caps on|offMods

Toggles caps filtering.

!filter caps statusMods

Shows caps filter status.

!filter percent <percent>Mods

Sets minimum caps percentage to be filtered.

!filter mincaps <num>Mods

Sets minimum caps count to be filtered.

!filter minchars <num>Mods

Sets minimum message length to be filtered.

Banned phrases

!filter banphrase on|offMods

Toggles banned phrase filtering.

!filter banphrase listMods

Lists banned phrases.

!filter banphrase add|delete <phrase>Mods

Adds/removes a banned phrase.

Symbols

!filter symbols on|offMods

Toggles symbol filtering.

!filter symbols statusMods

Shows symbol filter status.

!filter symbols percent <percent>Mods

Sets minimum symbol percentage to be filtered.

!filter symbols min <num>Mods

Sets minimum symbol count to be filtered.

Emotes

!filter emotes on|offMods

Toggles emote filtering.

!filter emotes max <num>Mods

Sets max emotes allowed per message.

!filter emotes single on|offMods

Toggles filter for single emote messages.


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.