Firebot

My bot of choice - Firebot

First published: March 6, 2022
Last updated: December 25, 2023

When I started streaming, I used all functionalities provided by Streamlabs: their dashboard, their bot Cloudbot and Streamslabs OBS. This is a good and easy setup when starting out one's streaming career. Cloudbot is a - funnily enough - cloud hosted bot, which means it is fast to set up and does not require any technical expertise. It also means that one is limited to the functionalities the bot offers.

When in the need of more flexibility and the option to set up more advanced scripts and behaviour, many streamers transition to standalone bots like Streamlabs Chatbot (no longer supported as per March 2022), Mix It Up bot or Firebot.

After a detour via Streamlabs Chatbot I transitioned to Firebot and have not looked back since. I still regularly discover new ways and features that I can make use of on top of all the stuff added through regular updates. Firebot is open-source and developed and maintained by a passionate community which results in regular updates and good support.

Here are the reasons why I like this bot so much.

The conceptual building blocks of Firebot

This might be related to me having a bit of programming experience, but I really love the building blocks that most of Firebot is built around. When working with the bot and setting up rules for its behaviour, one will work with these most of the time:

  • Triggers
  • Effects
  • Data

If one has tried to program something in JavaScript or similar, it's all about variables, functions and loops. It is also about optimizing code and how the code is processed. In some regard, I feel thinking about Firebot in the same way you think about your JavaScript code is a good way to get an idea of how this bot works - conceptually.

If you have never worked with code before and the paragraph above makes no sense to you - don't worry! You don't need to know JavaScript to be able to use Firebot!

Triggers

Triggers are pretty conventional and very similar to how they work in other bots. Triggers are the "things" that make the bot do something.

Just like most other bots, Firebot divides its triggers like this:

  • Events (for example follows, subs, bits, raids, viewer joins)
  • Timers (time triggered events defined by time intervals and/or amount of chat messages)
  • Commands (specific commands written by viewers and/or mods in chat to trigger the bot to perform a certain action)
  • Channel point rewards (functionality by Twitch where viewers can redeem certain actions)

As Firebot is a standalone software, you also have this additional trigger which is not possible to use with hosted bots:

  • Hotkey (specify a specific button press to trigger the bot to perform a certain action - works with Streamdeck!)

Effects

Effects are the actions Firebot is supposed to do when being triggered. And there are a lot. Also, all effects can be used with all triggers.

One of my favorite recent effects Firebot implemented is the screenshot functionality. Typically, this effect would be linked to a hotkey for me as the streamer to use, or a command for the viewers to type in chat. But I can also set it up as a channel point reward (spend 100 channel points to automatically and directly take a screenshot), an event (take a screenshot every time a raid comes in) or a timer (take a screenshot every 10 minutes).

Being able to use all effects with all triggers might result in a lot of repetition. What if I not only want to take a screenshot but also send a chat message and play a sound file for all of these triggers - that would require me to set those effects up and update them five times! Luckily, Firebot has a solution for that!

Firebot gives you the option to optimize the effects being used by creating "Effect lists". In those lists, you implement all the effects you want to happen. Then you link this list to all the triggers that are supposed to trigger these effects. In coding lingo they call this SPOT - Single Point of Truth (Wikipedia). Or DRY. One principle, many names.

Data

Most bots offer a variety of pre-defined variables for use in timers and commands. Variables that will automatically insert the name of the user triggering the action or the name of the user the action is targeted for. There often are variables for sub streaks, follow age, or last played game. On top of that, Firebot offers the following functionalities to work with dynamic data:

As I use the Firebot chat while streaming, I can not make use of Twitch's chat functionality that announces new chatters. By making use of Firebot's metadata functionality, I set up a similar system for myself.

Other fun things

On top of that, Firebot also does fun things outside of these building blocks.

Overlay

Firebot provides an overlay! And there are a lot of things you can show in that overlay! Locally stored textfiles, video files, sound files, counters, and much more. Combined with static overlay design elements, you can have control over all of the graphical aspects of your stream locally instead of hosting it on Streamlabs, Streamelements, or similar.

You also gain some control over where audio is supposed to be played which is relevant when using for example Voicemeeter to route audio.

Setup sharing

The comunity of Firebot is all about knowledge sharing - and setup sharing! If you set up a functionality that you are particularly proud of, it might be easier to just export this setup instead of describing what you did with words and screenshots. Just pick the relevant triggers, effects and variables and other users can benefit from your ideas.

Scripts

Scripts are not special to Firebot, but an advantage of standalone bots in general. However, I still wanted to mention that it obiously is possible to implement scripts with Firebot as well. For example a script to give Firebot acces to OBS.

I made you curious? Here are all the important links to check out Firebot and support it:

My favorite setups

Here are some of my favorite setups I make use of. This list would change constantly if I kept it upated (I probably won't 👀) as I often get new ideas to implement.

  • Automatic shoutouts for specific users and users in a specific group (like "Known streamers")
  • Automatically adding raiders to a custom group "Raiders"
  • Saving and checking metadata for each user that writes in chat each session to determine whether they are new to the channel
  • Automatically setting a weekday variable upon startup for use when specific things are only supposed to be toggled on specific weekdays.
  • HTML box fading in and out in regular intervals with stream information
  • Channel Point Redemptions that automatically assign VIP roles and show/hide sources in OBS
  • Taking a screenshot that automatically is shown in the stream overlay and thus removes a whole setup with watchfolders I had set up before. Screenshot also automatically gets sent to a Discord channel.

Did you like this?

Was this post useful to you? Follow me on Twitch or support me on Ko-Fi.

Read more: