Bot Talk

Introduction

Our channel’s bot, ToBeOrNotToBot (aka Tooby) 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. You can help create what Tooby says using a “Bot Talk”.

Important – Please Read

  1. !bot is very beta!!!
  2. Normal chat rules cover anything you might give ToBeOrNotToBot to say.
  3. A message is currently limited to 200 characters, including variables.
  4. Everything you submit will be reviewed first by a moderator, and possibly edited, before it’s added to ToBeOrNotToBot’s vocabulary.
  5. 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.
  6. Click to read the Bot Talk guide.

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.

Expand to read our !bot To Do List

This is our dream list… meaning there is no timetable for if or when these features will ever be implemented

  1. 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
  2. Allow the creation of messages that are timed to be sent on a specific date.
  3. Add a second bot and the ability for the bots to have scripted conversations with each other at random times
  4. 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.
  5. 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.
  6. 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.

Bot Talk Verifier

You can use the Bot Talk Verifier to analyze your bot talk and verify it is properly formatted before you submit it. Special thanks to @MrRobertTables for designing it!

0/475

      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:

      ToBeOrNotToBot: @twitchUser – Hey there beautiful!

      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:

      ToBeOrNotToBot: Hey there beautiful @twitchUser!

      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:

      ToBeOrNotToBot: @twitchUser Welcome to The Restaurant at the End of the Universe!
      ToBeOrNotToBot: I seem to have gotten lost… can someone give me directions to The Restaurant at the End of the Universe?

      Expand for list of Global Variables
      • 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:

      ToBeOrNotToBot: Hope you’re having a lovely day!
      ToBeOrNotToBot: Hope you’re having a wacky day!
      ToBeOrNotToBot: Hope you’re having a breezy day!

       

      You can nest option sets within option sets like this:

      !bot random  {!key {A-|G|Bb}|!bpm {90|100|101}|!sound {isc|cia}}

      Note: Currently you are limited to 10 option sets per message. And each option set is limited to 10 options.

      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.

      I work for <proper>the #z_adjectivePositive# #z_creature# company<proper>
      might generate:
      I work for The Dashing  Dragon Company.

      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:

      8:46:00 – ToBeOrNotToBot: Sorry, I’ve got to change the laundry. I’ll be back in 3 seconds.
      …after a 3 second delay…
      8:46:03 – ToBeOrNotToBot: Ok.. .I’m back.

      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:

      8:50:00 – ToBeOrNotToBot: In an hour I’m going to tell you a secret…
      …an hour passes…
      9:50:00 – ToBeOrNotToBot: Oh yeah, my secret… My first job was passing butter.

      Contributing to !reward, !toobyTrips, and !toobyOutfits

      • During Radio or in ToBeOrNotToBot’s chat room, subs can now use the !botly command 9 times every 24 hours to test out your !Bot Talk. Additional use of !botly will require unlock credit.

      • You can submit up to 3 !bot rewards (e.g houseReward, cultReward), !bot toobyTrips-, and !bot toobyOutfits- every 24 hours. This limit is to encourage quality submissions over quantity, since these are triggered by paid unlocks, and reviewing and approving them takes time.

      • Your reward !Bot Talk must include a minimum of 3 #variables#, or 3 { option | sets }, or a combination of 3 variables and options sets. This is so your submission can be used multiple times without feeling repetitive.

      • Tooby will confirm it has received !bot commands during Radio and in Tooby’s chat, but not in EtcKid chat during live shows.

      !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

      Jump to:

      setlist message with a list of the songs created up to the current point in the show
      Triggered by: !setlist chat command
      Required Variables: @songs@    - -   list of songs (e.g. [1] Slopes Of Uncertainty [2] Abstract Anomaly )
      Optional Variables: @username@
      Example Scenario: We've played songs titled 'Slopes Of Uncertainty' and 'Abstract Anomaly'
      This setlist template:
      !bot setlist Our set so far... @songs@
      Will generates this:
      ToBeOrNotToBot: @TwitchUser - Our set so far... [1] Slopes Of Uncertainty [2] Abstract Anomaly


      bitsThanks (thank you from ToBeOrNotToBot for the bits)
      botFollow (a request from ToBeOrNotToBot for you to follow its channel)
      botTalk (a request from Tooby for help writing his script for a specific category)
      donationAlert (notify chat of donation)
      ethanhawke (informs chat how many times "ethan hawke" has been typed in chat)
      favorite (Tooby confirms the current song has been saved to your list of favorites)
      followage (length of time user has been following the channel)
      greetMe (greeting from ToBeOrNotToBot)
      greetMod (mod greeting from ToBeOrNotToBot)
      hostFollow (message asking our viewers to go follow the host)
      hostThanks (message thanking the host)
      preorderAlert (thank you from ToBeOrNotToBot for the pre-order)
      random (random thought from ToBeOrNotToBot)
      requestCongratsFirst (congratulations for first request)
      setlist (list of the songs created up to the current point in the show)
      songAfter (message stating bot's reaction to finished song)
      songBefore (message stating bot's anticipation to music)
      songDuring (Tooby's reaction to the music)
      subAlert (notify chat of new subscription)
      subRenewalAlert (notify chat of subscription renewal)
      supportThanks (thank you from Tooby)
      tieBroken (Tooby's reaction to the tie-break)
      titleCongrats (congratulations to user with the winning title )
      titleCongratsFirst (congratulations from bot to the user with their first winning title )
      uptime (length of time The Etcetera Kid has been live today)
      voteBegin (message informing chat they can start voting)
      voteDuring (message related to voting (randomly and not every vote))
      voteEnd (message informing chat that voting has ended)
      willItBlend (an answer to 'will it blend?')
      bitsThanks thank you from ToBeOrNotToBot for the bits
      Triggered by: a cheer in chat
      Optional Variables: #bits#    - -    Number of bits
        #username#
      Example Scenario: @TwitchUser cheers with a 100 bits.
      This bitsThanks template:
      !bot bitsThanks #username# Wow! Thanks for the #bits# bits!!!
      Will generate this:
      ToBeOrNotToBot: @TwitchUser Wow! Thanks for the 100 bits!
      botFollow a request from ToBeOrNotToBot for you to follow its channel
      Triggered by: randomly (once per show)
      Required Variables: #botUrl#    - -    link to ToBeOrNotToBot's channel
      Optional Variables: #botFollowers#    - -    ToBeOrNotToBot's follower count
        #otherBot#    - -    name of a bot on Twitch that ToBeOrNotToBot is trying to surpass in followers
        #otherBotFollowers#    - -    this bot's follower count
      Example Scenario: PhantomBot has 18 followers and ToBeOrNotToBot has 2
      This botFollow template:
      !bot botFollow So, umm guys.... #otherBot# has been talking trash about how it has #otherBotFollowers# followers and I've only got #followers#... Hint, hint... #url#
      Will generate this:
      ToBeOrNotToBot: So, umm guys.... PhantomBot has been talking trash about how it has 18 followers and I've only got 2... Hint, hint... https://www.twitch.tv/tobeornottobot
      botTalk a request from Tooby for help writing his script for a specific category
      Triggered by: just before song starts
      Required Variables: #category#    - -    Bot talk category
      Optional Variables: #unused#    - -    Number of messages left that haven't been used yet
      Example Scenario:
      This botTalk template:
      !bot botTalk Help write my script! I only have #unused# unused #category# messages left!
      Will generate this:
      ToBeOrNotToBot: Help write my script! I only have 5 unused botFollow messages left!
      donationAlert notify chat of donation
      Triggered by: donation
      Required Variables: #dollars#    - -    amount donated
        #username#
      Example Scenario: The Kid receives a donation of $5 from @twitchuser
      This donationAlert template:
      !bot donationAlert Donation Alert!!! Just received #dollars# from #username#!
      Will generate this:
      ToBeOrNotToBot: Donation Alert!!! Just received $5 from @twitchuser!
      ethanhawke informs chat how many times "ethan hawke" has been typed in chat
      Triggered by: !ethanHawke chat command
      Required Variables: #hawkeCount# - number of times "ethan hawke" has been typed in chat
      Optional Variables: #hawkeCommandCount# - number of times !ethanhawke command has been run
        #username#
      Example Scenario:
      This ethanhawke template:
      !bot ethanhawke The words "Ethan Hawke" have graced our channel with their presence a total of #hawkeCount# times. And this command inexplicably has been run #hawkeCommandCount# times.
      Will generate this:
      ToBeOrNotToBot: The words "Ethan Hawke" have graced our channel with their presence a total of 206 times. And this command inexplicably has been run 143 times.
      favorite Tooby confirms the current song has been saved to your list of favorites
      Triggered by: !favorite or !fave command in chat
      Optional Variables: #username#
      Example Scenario:
      This favorite template:
      !bot favorite I've added the current song to your list of favorites
      Will generate this:
      ToBeOrNotToBot: I've added the current song to your list of favorites
      followage length of time user has been following the channel
      Triggered by: !followAge
      Required Variables: #dateFollow#    - -    Mon dd, YYYY (e.g. Oct 11, 2016)
        #daysFollowed#    - -    (e.g. 81 days, 17 hours, 7 minutes, 59 seconds)
      Optional Variables: #username#
      Example Scenario:
      This followage template:
      !bot followage You first followed The Etcetera Kid on #dateFollowed# (#daysFollowed#).
      Will generate this:
      ToBeOrNotToBot: You first followed The Etcetera Kid on Oct 11, 2016 (81 days, 17 hours, 7 minutes, 59 seconds).
      greetMe greeting from ToBeOrNotToBot
      Triggered by: response to a chatter's first message of the day
      Optional Variables: #username#
      Example Scenario: Your username is k&ppa
      This greetMe template:
      !bot greetMe !greetMe Hey there, beautiful #username#!
      Will generate this:
      ToBeOrNotToBot: Hey there, beautiful @k&ppa!
      greetMod mod greeting from ToBeOrNotToBot
      Triggered by: response to a mods first message of the day if they don't have custom greetMe messages
      Optional Variables: #username#
      Example Scenario:
      This greetMod template:
      !bot greetMod Hey there supermod!
      Will generate this:
      ToBeOrNotToBot: Hey there supermod!
      hostFollow message asking our viewers to go follow the host
      Triggered by: someone hosting the channel (minimum 5 viewers)
      Required Variables: #username#    - -    host's name
        #url#    - -    host's Twitch url
      Example Scenario: @TwitchUser hosts our channel with 25 viewers.
      This hostFollow template:
      !bot hostFollow Hey team, make sure to go check out #username# and give them a follow!!!
      Will generate this:
      ToBeOrNotToBot: Hey team, make sure to go check out @TwitchUser and give them a follow!!!
      hostThanks message thanking the host
      Triggered by: someone is hosting the channel (minimum 5 viewers)
      Required Variables: #username#    - -    host's name
        #hostViewers#    - -    number of viewers from host
      Example Scenario: @TwitchUser hosts our channel with 25 viewers.
      This hostThanks template:
      !bot hostThanks Woohoo! #username# is now hosting us with #hostViewers# viewers! Thanks #username#!!! <3
      Will generate this:
      ToBeOrNotToBot: Woohoo! @TwitchUser is now hosting us with 25 viewers! Thanks @TwitchUser!!!
      preorderAlert thank you from ToBeOrNotToBot for the pre-order
      Triggered by: somebody pre-ordering the live album of the show
      Example Scenario:
      This preorderAlert template:
      !bot preorderAlert Yo Kid! Somebody just pre-ordered the live album for tonight's show! Thanks for the pre-order whoever you are!!!!
      Will generate this:
      ToBeOrNotToBot: Yo Kid! Somebody just pre-ordered the live album for tonight's show! Thanks for the pre-order whoever you are!!!!
      random random thought from ToBeOrNotToBot
      Triggered by: random occurrence, will only happen once
      Example Scenario:
      This random template:
      !bot random Someday I'd like to swim in the ocean.
      Will generate this:
      ToBeOrNotToBot: Someday I'd like to swim in the ocean.
      This random template:
      !bot random I'm feeling pretty claustrophobic today. The Kid really needs to get me some more memory!
      Will generate this:
      ToBeOrNotToBot: I'm feeling pretty claustrophobic today. The Kid really needs to get me some more memory!
      requestCongratsFirst congratulations for first request
      Triggered by: a user gets their first request on a song
      Required Variables: #users#    - -    user or users with first request on a song
      Example Scenario: @TwitchUser and @KappaUser have their first request on a song
      This requestCongratsFirst template:
      !bot requestCongratsFirst Woohoo! Congrats to #users# on your first request in a song!!!
      Will generate this:
      ToBeOrNotToBot: Woohoo! Congrats to @TwitchUser and @KappaUser on your first request in a song!!!
      setlist list of the songs created up to the current point in the show
      Triggered by: !setList
      Required Variables: #songs#    - -    list of songs (e.g. [1] Slopes Of Uncertainty [2] Abstract Anomaly )
      Optional Variables: #username#
      Example Scenario: We've played songs titled "Slopes Of Uncertainty" and "Abstract Anomaly"
      This setlist template:
      !bot setlist Our set so far... #songs#
      Will generate this:
      ToBeOrNotToBot: Our set so far... [1] Slopes Of Uncertainty [2] Abstract Anomaly
      songAfter message stating bot's reaction to finished song
      Triggered by: randomly (and not every time) after song
      Example Scenario:
      This songAfter template:
      !bot songAfter My supply is running low, but here's one etcCalp.
      Will generate this:
      ToBeOrNotToBot: My supply is running low, but here's one .
      songBefore message stating bot's anticipation to music
      Triggered by: randomly (and not every time) before song
      Example Scenario:
      This songBefore template:
      !bot songBefore CurseLit Time to Etceterate CurseLit
      Will generate this:
      ToBeOrNotToBot: Time to Etceterate
      songDuring Tooby's reaction to the music
      Triggered by: randomly (and not every time) during song
      Example Scenario:
      This songDuring template:
      !bot songDuring This is my jam!!!
      Will generate this:
      ToBeOrNotToBot: This is my jam!!!
      subAlert notify chat of new subscription
      Triggered by: new subscription
      Required Variables: #username#
        #subType#    - -    ( e.g. Twitch, Bandcamp, or Patreon )
      Example Scenario: @TwitchUser subscribes on Twitch
      This subAlert template:
      !bot subAlert Sub Alert!!! #username# just subbed on #subType#!
      Will generate this:
      ToBeOrNotToBot: Sub Alert!!! @TwitchUser just subbed on Twitch!
      subRenewalAlert notify chat of subscription renewal
      Triggered by: subscription renewal
      Required Variables: #username#
        #subType#    - -    e.g. Twitch, Bandcamp, Patreon.
        #subMonths#    - -    months subbed
      Optional Variables: #username#
      Example Scenario: @TwitchUser resubs on Twitch for 10 months
      This subRenewalAlert template:
      !bot subRenewalAlert #subType# ReSub Alert!!! #username# has subscribed for #subMonths# consecutive months now!
      Will generate this:
      ToBeOrNotToBot: Twitch ReSub Alert!!! @TwitchUser has subscribed for 10 consecutive months now!
      supportThanks thank you from Tooby
      Triggered by: donation or subscription (your reply must work for either)
      Optional Variables: #username#
      Example Scenario:
      This supportThanks template:
      !bot supportThanks Thanks #username# for your generous support!
      Will generate this:
      ToBeOrNotToBot: Thanks @TwitchUser for your generous support!
      tieBroken Tooby's reaction to the tie-break
      Triggered by: Random Number God casting tie-breaking vote in poll
      Optional Variables: #greek# - the username of the Greek diety casting tie-breaking vote
      Example Scenario:
      This tieBroken template:
      !bot tieBroken Tie break, Kid? More like vote rigged by #greek#.
      Will generate this:
      ToBeOrNotToBot: Tie break, Kid? More like vote rigged by Apollo_!RNG!.
      titleCongrats congratulations to user with the winning title
      Triggered by: title poll ending
      Required Variables: #winningTitle#    - -    the winning title
        #titleWinCount#    - -    number of user's titles that have won so far
        #otherWinningTitles#    - -    user's other winning titles
      Optional Variables: #username#    - -    username of winner
      Example Scenario: @TwitchUser's title "Best Title Ever" wins the song title poll. @TwitchUser's previous winning titles include "The Aardvark"
      This titleCongrats template:
      !bot titleCongrats Wow! Congrats #username#! You can add #winningTitle# to your list of winning titles including #otherWinningTitles#.
      Will generate this:
      ToBeOrNotToBot: Wow! Congrats @TwitchUser! You can add Best Title Ever to your list of winning titles including The Aardvark.
      titleCongratsFirst congratulations from bot to the user with their first winning title
      Triggered by: poll ending
      Required Variables: #winningTitle#    - -    the winning title
      Optional Variables: #username#    - -    username of winner
      Example Scenario: @TwitchUser's title "The Aardvark" wins the song title poll.
      This titleCongratsFirst template:
      !bot titleCongratsFirst Congrats #username# on naming your first song with #winningTitle#!
      Will generate this:
      ToBeOrNotToBot: Congrats @TwitchUser on naming your first song with The Aardvark!
      uptime length of time The Etcetera Kid has been live today
      Triggered by: !uptime
      Required Variables: #timeStreaming#    - -    length of time The Kid has been streaming
      Optional Variables: #username#
      Example Scenario: The Kid has been streaming for 2 hours, 5 minutes, 9 seconds.
      This uptime template:
      !bot uptime The Etcetera Kid has been delivering a stream of 1s and 0s over the interwebs for #timeStreaming#.
      Will generate this:
      ToBeOrNotToBot: The Etcetera Kid has been delivering a stream of 1s and 0s over the interwebs for 2 hours, 5 minutes, 9 seconds.
      voteBegin message informing chat they can start voting
      Triggered by: voting for a poll starting
      Optional Variables: #pollType#    - -    venue, song title, or first sound
      Example Scenario: A poll to choose the song title begins accepting votes
      This voteBegin template:
      !bot voteBegin You may now begin voting on the #pollType#.
      Will generate this:
      ToBeOrNotToBot: You may now begin voting on the song title.
      voteDuring message related to voting (randomly and not every vote)
      Triggered by: voting for a poll is in process
      Optional Variables: #pollType#    - -    venue, song title, or first sound
      Example Scenario:
      This voteDuring template:
      !bot voteDuring The 7th #pollType# is clearly the best. Kappa.
      Will generate this:
      ToBeOrNotToBot: The 7th venue is clearly the best.
      voteEnd message informing chat that voting has ended
      Triggered by: voting for a poll has ended
      Optional Variables: #pollType#    - -    venue, song title, or first sound
      Example Scenario:
      This voteEnd template:
      !bot voteEnd Voting is closed.
      Will generate this:
      ToBeOrNotToBot: Voting is closed.
      willItBlend an answer to 'will it blend?'
      Triggered by: The !willitblend command
      Optional Variables: #username#
      Example Scenario:
      This willItBlend template:
      !bot willItBlend Only one way to find out! MrDestructoid
      Will generate this:
      ToBeOrNotToBot: Only one way to find out!