Recently I started working on a project with puppeteer, a Node library to control Chrome or Chromium using their DevTools Protocol. The project is a bot that gets enough information per run to spoof a user browsing a website and it contains some nice features. I joined in later and think it’s pretty damn cool to see the bot in action. Initially my task was to convert the POC JavaScript project to TypeScript for more type safety and fewer runtime errors. …

Photo by Yancy Min on Unsplash

Setting up a new repository at an unknown source control vendor or moving a repo to a new one can sometimes seem like a tedious task. Especially with multiple vendors offering different things. I personally like Azure DevOps, part of the cloud computing solution from Microsoft, because they have a lot of infrastructure all baked into one place. Azure Pipelines is one of my favorite things to use to get a free and quite complete pipeline running for my builds and releases. …

Photo by Fabian Mardi on Unsplash

In Part 4 we showed how to debug your script by adding logging. In this part we’ll go through some nice-to-haves: some additions that are not required for a script, but are nice features to have for convenience. We’ll go through adding a cooldown and also adding a UI for your script. Enough chatter, let’s get going!

Adding a cooldown period

You might not want your commands to be available to everyone all the time, even though they’re awesome. You could have a busy chat or someone could be a troll and spam the command all the time.

That’s where cooldowns come in. SC…

Photo by Pascal van de Vendel on Unsplash

In Part 3 we finished the logic in our Mulder command and it worked beautifully. However, when it comes to programming, there seems to be this unwritten rule: Programs never work first try. It’s always an iterative process, whether it’s changes in how you expect something to work or weird bugs in your code. In this part we’ll focus on the latter. Knowing some debugging skills will really help when making your own commands, or just when programming in general. Let’s get to it!


Logging is basically all I need to show you. Logging what your script is doing and…

Photo by Florian Olivo on Unsplash

In Part 2 we set up our basic structure and now we are ready to get to the juicy bit, where the script will come to life, so what are we waiting for?

Implementing the Logic

Our command logic goes in the Execute(data) method, which gets called by SC when a message is posted in the chat. There are some gotcha’s to consider but I’ll guide you through them.

Remember how I said that any command (or message, for that matter) in the chat will trigger our Execute(data) method?

As we only want to respond to the command !mulder, we should verify that…

Photo by Markus Spiske on Unsplash

Alright, in Part 1 we installed everything we needed and determined what we are going to build. In this part we’ll build the basic structure that is the same for all scripts. Let’s get cracking!

Basic Setup

All Streamlabs Chatbot (SC) commands have some basics you need to have implemented correctly for it to even appear as a runnable script in their UI, let alone run it. These are:

File naming

For the Python script to be picked up as a script for SC, the format should be

So, let’s start by creating a mulder directory and within that directory, create

Photo by ELLA DON on Unsplash

Yes, I have written a full walkthrough before on how to create command scripts for Twitch, but that had too much backstory and unnecessary additions. Also it’s way too long and intimidating for people just starting out I found out recently through a cool dude that contacted me: SyferCon. So I’m going to cut it up into bite size pieces with more focus, so more people can enjoy making their own commands. Let’s get to it!

The Necessities

To be able to follow along, there are a few things you’ll need:

  • A Twitch account — For testing your commands before release. …

I do a lot of Twitch related projects here and there, trying to see what the possibilities are. One of my latest projects involved creating a Twitch Emote Extension for Chrome where I showed how to get extra emote “slots” for free. That got me into browser extensions, so I figured let’s show how to make one from scratch by building a profanity filter for the Twitch chat.

At the end of this, we want to have an extension that, when installed, checks for a set of flagged words in chat and replaces them with more friendly versions. …

Photo by Yancy Min on Unsplash

Some people, like me, prefer working with Git using SSH rather than HTTP(S), where you have to enter your Git credentials, which you may have forgotten or it could just be a secure monster of a password that’s not type-friendly.

Whatever the reason, if you’re just starting out in the wonderful world of source control, GitHub or both and want to start using SSH immediately, it can be quite confusing how to go about it. So this is my attempt at making it easy to follow and understand; let’s get to it!

Generating an SSH key

It’s much simpler than it sounds. Pull up…

By making your very own browser extension!

Photo by chaitanya pillala on Unsplash

Yes, it’s possible. Over time I have heard streamers (mostly up and coming ones) complain about the restrictions Twitch has on opening up more emote slots. You first need to become Affiliate and get more subscribers before getting more emote slots. Even Better Twitch TV has a 30 emote slot limit (15 personal/15 shared) before having to subscribe.

But fear not, my friends, for I come bearing gifts. In this post I will show you how you can get all of your emotes available on Twitch through your own Chrome extension. It’s not…

Nintendo Engineer

Geotechnical Engineer by education, .NET Developer by trade, Nintendo fan by design. Find me on Discord: NintendoEngineer#3083

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store