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
!joinEveryoneTells CoeBot to join your channel. Must be executed in the bot's channel.
!partEveryoneTells CoeBot to leave your channel. In a non-bot channel, only the broadcaster may use this command.
!bothelpEveryoneReturns a helpful message.
Custom commands
Triggers
!commandsSubsLinks to the list of commands for the channel.
!command add <name> <text>ModsCreates a command
!namethat responds with the specified text.By default, commands are available to subs. Using
addaoraddminstead ofaddwill 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>ModsDeletes a command.
Example:
!command delete pan— Deletes the command called "pan".!command restrict <name> all|subs|vips|mods|ownerModsRestricts a command to a specific group.
Example:
!command restrict pan mods— Restricts "pan" to moderators and above.!command editor <name>ModsGets the last editor of a command.
Example:
!command editor pan— Gets the last editor of the "pan" command.!command count <name>ModsGets 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>ModsRenames a command.
Example:
!command rename pan oldpan— Renames the command "pan" to "oldpan".!command get <name>ModsGets the response for a command.
Example:
!command get pan— Gets the response for the "pan" command.!command clone #<channel> <name>ModsClones 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>ModsExecutes 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]ModsSets 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>ModsDeletes a command's repeat info.
Example:
!repeat delete discord— Stops repeating the "discord" command and deletes its repeat info.!repeat on|off <name>ModsEnables or disables a command's repetition.
Example:
!repeat on discord— Enables repetition of the "discord" command.!repeat listModsLists 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]ModsSchedules 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>ModsDeletes a command's schedule.
Example:
!schedule delete discord— Unschedules the "discord" command and deletes its schedule.!schedule on|off <name>ModsEnables or disables a command's repetition.
Example:
!schedule on discord— Enables the schedule of the "discord" command.!schedule listModsLists command schedules.
Autoreplies
Autoreplies are like custom commands, but are run when a message matches a pattern.
!autoreply add <pattern> <response>ModsAdds 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>ModsRemoves an autoreply.
Note that deleting an autoreply that isn't the last does not shift the numbers down. Use
!autoreply compactto do this.!autoreply editresponse <num> <response>ModsEdits an autoreply's response.
!autoreply editpattern <num> <pattern>ModsEdits an autoreply's pattern.
In the pattern, spaces should be replaced with underscores.
!autoreply compact <num>ModsCompacts autoreplies "num" and higher. This is useful after removing an autoreply in the middle of the list.
!autoreply listModsLinks 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>ModsAdds a list.
By default, lists are available to subs. Using
addaoraddminstead ofaddwill pre-restrict the list to all users or moderators, respectively.Example:
!list add hatspells— Adds a list called "hatspells".!list delete <name>ModsRemoves a list.
!list restrict <name> all|subs|vips|mods|ownerModsRestricts a list.
!list rename <old> <new>ModsRenames a list.
!<name>VariesGets a random item from the list. Or use
!<name> random.!<name> add <item>ModsAdds an item to the named list.
Example:
!hatspells add Solar Eruption— Adds "Solar Eruption" to the "hatspells" list.!<name> delete <item>ModsRemoves an item from the named list.
Example:
!hatspells remove Solar Eruption— Removes "Solar Eruption" from the "hatspells" list.!<name> restrictModsSame as
!list restrict <name>.!<name> get <num>VariesGets a specific item from the list.
Variables
Variables store persistent information between commands, and are accessible directly or through actions.
!var set <name> <value>ModsSets a variable.
!var get <name>ModsGets a variable's value.
!var delete <name>ModsRemoves a variable.
!var increment <name> <amount>ModsIncrements a variable as an integer.
!var decrement <name> <amount>ModsDecrements a variable as an integer.
Moderation
Shortcuts
+b <user>ModsBans a user.
-b <user>ModsUnbans a user.
+t <user> [seconds]ModsTimes out a user (with an optional duration).
-t <user>ModsRemoves a user's timeout.
+p <user>ModsPurges a user's messages.
!permit <user>ModsPermits a user to post one link.
!clearModsClears chat.
+mModsTurns slow mode on.
-mModsTurns slow mode off.
+sModsTurns sub only mode on.
-sModsTurns sub only mode off.
Ignores
Ignored users may not use CoeBot, but will still be subject to filters.
!ignore add <user>ModsAdds a user to the ignore list.
!ignore delete <user>ModsRemoves a user from the ignore list.
!ignore listModsLists 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 listModsLists regulars.
!regular add|remove <user>ModsAdds or removes a user from the regular list.
!owner|mod listBroadcasterLists users in that group.
!owner|mod add|remove <user>BroadcasterAdds or removes a user from a list.
Fun
General fun
!conchSubsMagic 8 ball.
!xkcd <num>SubsGets the requested XKCD comic.
!random coinVariesFlips a coin.
!random <integer>VariesPicks a random number.
!roll <dice>VariesRolls the specified dice.
Example:
!roll 2d20— Rolls two D20s.!google <query>SubsGoogles something.
!link <query>SubsLinks something.
!me <phrase>ModsSends a /me command.
!urban <phrase>SubsLooks up something in the Urban Dictionary. Be warned, these are not filtered.
Quotes
!quoteSubsGets a random quote.
!quote add <quote>ModsAdds a quote.
Example:
!quote add "This is a quote!"— Adds a the quote "This is a quote!".!quote delete <num>ModsRemoves a quote.
Note that deleting a quote that isn't the last does not shift the numbers down. Use
!quote compactto do this.!quote get <num>SubsGets a quote.
!quote randomSubsGets a random quote.
!quote getindex <exact quote>SubsReturns the number of the exact quote specified.
!quote edit <num> <quote>ModsEdts a quote.
!quote search <phrase>ModsSearches all quotes for a phrase.
!quote editor <num>SubsGets the username of the last editor of the quote.
!quote compact <num>ModsCompacts quotes "num" and higher. This is useful after removing a quote in the middle of the list.
Utilities
General utilities
!lastfmEveryoneLinks to the channel's LastFM profile.
!musicEveryoneGets the currently playing song.
!songlinkEveryoneGets a link to the currently playing song.
!whatshouldiplayBroadcasterPicks a random game from the channel's Steam library.
!channelidEveryoneGets the channel's Twitch ID.
!htEveryoneCreates a highlight (viewable on the channel page).
!highlightthatEveryoneSame as
!ht.!#<channel>/<command>BroadcasterRuns a command from another channel.
!hltbSubsFetches the HowLongToBeat time for the current game, or an arbitrary game with a parameter.
Twitch
!gameEveryoneGets the current game.
!game <new game>ModsSets the current game. Only valid game names are allowed, but the bot will autocorrect or suggest game names when possible.
!statusEveryoneGets the current status.
!status <new status>ModsSets the current status.
!uptimeEveryoneGets the current uptime.
!viewersEveryoneGets the current viewer count.
!islive <user>ModsChecks if a user is live.
!statusgame <new status>ModsSets the current game to the current Steam game. and sets the status.
!steamgameModsSets the current game to the current Steam game.
Raffles
!raffleEveryoneEnters into the active raffle.
!raffle enable|disableModsEnables/disables the raffle. Enabling the raffle clears the previous entries.
!raffle resetModsResets the raffle entries.
!raffle countModsCounts the number of raffle entries.
!raffle winnerModsPicks a random winner.
!raffle winner <X>ModsPicks <X> random winners.
Settings
General settings
!set prefix <prefix>BroadcasterSets the prefix used to access commands.
!set bullet <bullet>BroadcasterSets the bullet prepended to all bot messages.
!set cooldown <seconds>ModsSets the command cooldown.
!set shouldModerate on|offModsEnables moderation.
!set lastfm off|<name>ModsSets the channel's LastFM profile name.
!set enableWarnings on|offModsEnable warnings before moderation actions.
!set displayWarnings on|offModsShow warnings on warns.
!set timeoutDuration <seconds>ModsSets the moderation timeout duration.
!set extraLifeID <ID>ModsSets the Extra-Life ID.
!set subsMayLink on|offModsAllow subscribers to link.
!set mode all|subs|vips|mods|ownerModsSets the minimum user level for the bot to respond to.
!set steam <ID>ModsSets the channel's Steam ID.
!set urban on|offModsEnables/disables the urban command.
!set tweet <message>ModsSets the ClickToTweet message.
Roll
!set roll default <num>ModsSet the default roll amount.
!set roll cooldown <seconds>ModsSet the roll cooldown.
!set roll userlevel all|subs|vips|mods|ownerModsSet the minimum user level for roll/random.
Filters
General filters
!filter on|offModsEnables/disables all filters.
!filter statusModsShows the status of all filters.
!filter me on|offModsEnables/disables the /me filter.
!filter messagelength <length>ModsSets the maximum message length.
!filter exempt all|subs|vips|mods|ownerModsSets 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.
Links
!filter links on|offModsToggles link filtering.
!filter pd add|delete <link pattern>ModsToggles link filtering.
Link patterns can just be domains, or contain wildcard characters.
Example:
!filter pd add clips.twitch.tv— Allow old-style Twitch clip links.Example:
!filter pd add twitch.tv/*/clips— Allow new-style Twitch clip links.!filter pd listModsLists permitted links.
Capitals
!filter caps on|offModsToggles caps filtering.
!filter caps statusModsShows caps filter status.
!filter percent <percent>ModsSets minimum caps percentage to be filtered.
!filter mincaps <num>ModsSets minimum caps count to be filtered.
!filter minchars <num>ModsSets minimum message length to be filtered.
Banned phrases
!filter banphrase on|offModsToggles banned phrase filtering.
!filter banphrase listModsLists banned phrases.
!filter banphrase add|delete <phrase>ModsAdds/removes a banned phrase.
Symbols
!filter symbols on|offModsToggles symbol filtering.
!filter symbols statusModsShows symbol filter status.
!filter symbols percent <percent>ModsSets minimum symbol percentage to be filtered.
!filter symbols min <num>ModsSets minimum symbol count to be filtered.
Emotes
!filter emotes on|offModsToggles emote filtering.
!filter emotes max <num>ModsSets max emotes allowed per message.
!filter emotes single on|offModsToggles 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.