Introduction
Our channel’s primary bot, ToBeOrNotToBot sends messages in chat in response to chat commands as well as events that occur during the show such as a chatter’s first message of the day, the opening of voting, etc.
Inspired by the tremendous creativity chat has shown in coming up with song titles, venue names, and tour names, we’re now adding the ability to add custom messages ToBeOrNotToBot can use during these scenarios.
Important – Please Read
- !bot is very beta!!!
- Normal chat rules cover anything you might give ToBeOrNotToBot to say.
- A message is currently limited to 400 characters, including variables.
- Everything you submit will be reviewed first by a moderator, and possibly edited, before it’s added to ToBeOrNotToBot’s vocabulary.
- There is no guarantee if or when your message will be used, particularly as more and more custom messages are added. ToBeOrNotToBot has been designed to be unpredictable.
- Currently you can only submit custom messages while the show is live.
The Future of !bot
Depending on how much chat enjoys contributing to this we may continue to add more events and commands that trigger messages and possibly add additional features.
This is our dream list… meaning there is no timetable for if or when these features will ever be implemented
- Create a way for people to add messages offline, in bulk, and privately in case they want to keep their messages a surprise for the rest of chat
- Allow the creation of messages that are timed to be sent on a specific date.
- Add a second bot and the ability for the bots to have scripted conversations with each other at random times
- Assign every message a “mood”, so that each day we can randomly assign a mood for the Bot and have it only use messages consistent with its current mood.
- Allow users the option of letting other chatters add custom greetMe’s for them (currently users can only add their own greetMe’s or mod greetMe’s.
- Possibly add a notification system for when a custom message has been used so the creator can see on VOD if they didn’t attend that particular show.
Getting started – Custom Greeting from ToBeOrNotToBot
ToBeOrNotToBot has the ability to greet you with a custom greeting after you type your first message in chat each show. Let’s say you want it to say “Hey there, beautiful!”. To add this phrase, you’d type the following command into chat:
!bot greetMe Hey there, beautiful!
Notice the structure of this command. Anytime you submit a custom message to ToBeOrNotToBot you’ll follow the same basic format:
!bot [category] [message]
So in the above example, greetMe is the category and Hey there, beautiful! is the message.
You can add multiple custom messages to a category for ToBeOrNotToBot to choose between. So, in the case of greetMe, if you submit enough messages, you’ll be greeted differently almost every day.
Note: The greetMe category is unique in that currently it is the only category where the messages you submit will only be used in response to you.
Variables (local)
Some message categories include “local” variables specific to the category. By default when ToBeOrNotToBot sends a greetMe message it begins with your username like this:
However, with the use of a variable (hashtags on both sides), you can position the username wherever you’d like it:
!bot greetMe Hey there, beautiful #username#!
Using this message template, ToBeOrNotToBot would generate the following:
Variables (global)
In contrast with “local” variables, “global” variables can work in any !bot talk. Here are two examples that use the global variable #venue#:
!bot greetMe Welcome to #venue#!
!bot random I seem to have gotten lost… can someone give me directions to #venue#?
When using either of the templates, ToBeOrNotToBot would replace #venue# with the same value, whatever the current venue of the day is:
- botFollowers — ToBeOrNotToBot’s follower count
- botUrl — link to ToBeOrNotToBot’s channel
- dayName — returns the current day name (e.g. Tuesday) in ET time zone
- discord — links to The Kid’s discord server
- facebook — link to The Kid’s facebook page
- faqUrl — link to the FAQ
- instagram — link to The Kid’s instagram page
- modRandom — returns a random username of one of our mods who is currently logged into chat
- otherBot — name of a competitor bot on Twitch that ToBeOrNotToBot is trying to surpass in followers
- otherBotFollowers — number of followers a competitor bot on Twitch has that ToBeOrNotToBot is trying to surpass
- showNotes — notes about today’s show (what’s new…)
- songs — list of songs in current show (e.g. [1] Slopes Of Uncertainty [2] Abstract Anomaly )
- tour — name of current tour
- tourRequester — name of viewer who suggested the tour name
- twitter — link to The Kid’s twitter page
- usernameRandom — returns a random username of someone who is logged into chat (limited to viewers who are regulars and have already typed at least 5 messages already that day)
- venue — the name of the venue for the current show
- venueRequester — name of viewer who suggested the venue
- venueWithPreposition — the name of the venue for the current show along with the preposition required to work with phrase We’re live [preposition] [venue name]
Options {option1|option2|…}
Options are an easy way to add variety to a custom message without having to create multiple message templates.
Take this example for instance:
!bot greetMe Hope you’re having a {lovely|wacky|breezy} day!
The curly braces contain an option set with 3 options for ToBeOrNotToBot. Each option is separated by vertical bars (shift + \ on most keyboards). When ToBeOrNotToBot sees a list of options like this it will randomly choose one of them. So using the above example, when it sends your message it might say any one of the following:
You can nest option sets within option sets like this:
!bot random {!key {A-|G|Bb}|!bpm {90|100|101}|!sound {isc|cia}}
Commands
Commands allow you to process the text of a variable after it’s been replaced or create random text.
<articleAdd> adds an article to the text contained within, so that we start with an ‘an’ if the first letter of the contained words starts with a vowel. Otherwise we start with an ‘a’.
I would like <articleAdd>#z_creature#</articleAdd>
might become…
I would like an aardvark.
I would like a bear.
<proper> Capitalizes all contained text.
I would like <articleAdd>#z_creature#</articleAdd>
might become…
I would like an aardvark.
I would like a bear.
proper — Capitalizes all contained text.
Multipart Messages
You can create multipart messages using Pauses and Delays. There can be multiple Pauses and/or Delays in a single !bot talk.
Pause Format: {P=[Number of seconds to pause between messages, between 1-8]}
During Pauses, ToBeOrNotToBot will not send any unrelated messages in between your multipart !bot talk. For that reason Pauses are limited to a max of 8 seconds.
Here’s an example of a Pause:
!bot random Sorry, I’ve got to change the laundry. I’ll be back in 3 seconds. {P=3} Ok… I’m back
This would generate the following:
…after a 3 second delay…
Delay Format: {D=[Number of seconds to delay before sending next related message]}
Unlike Pauses, Delays can be any number of seconds since ToBeOrNotToBot can send other unrelated messages during the delay. Meaning you could theoretically have ToBeOrNotToBot say something and then have it say a followup message years in the future!
Here’s an example of a Delay:
!bot random In an hour I’m going to tell you a secret… {D=3600} Oh yeah, my secret… My first job was passing butter.
This would generate the following:
…an hour passes…
!bot Message Template Categories
Notes:
- Structure: When adding custom message templates always use this format, !bot [category] [message]
- Triggered by: Refers to the action that triggers ToBeOrNotToBot to send a message that uses a custom template from the category
- Required Variables: If a message template category lists a required variable, you must include the variable in your message template.
- Optional Variables: Are just that. Optional. You do not need to include them in your template