Sery_Bot was created a few years ago as my own personal stream bot and a bot for friends to use to help in their streams. In August 2021, hate raids on Twitch were picking up more and more, and I wanted to do something to help.
Since I already had a bot thrown together, I added basic hate raid protection that could be triggered manually.
This wasn't good enough for me. I wanted the bot to stop hate raids as they were happening, without any user intervention, without blocking real or wanted raids. I came up with an algorithm that would detect hate raids in real time, and issue bans to the accounts in question. This protection is available as long as the bot is modded and shows up in your channel list.
Next up, follow bots. These are Twitch accounts that spam a streamer with follows (and sometimes unfollows). There's no purpose to this other than to cause alert spam, spikes in anxiety, unnecessary panic, and extra work for mods and the streamer to clean up. I added a way to detect follows from an ongoing list of known bots, and ban/block them.
There are other fun and useful commands in the bot meant to help streamers out.
Add/Remove the bot from your channel
|!join||Joins the bot to your channel. This will verify that you have set up the bot properly before it will join.|
|!leave||Use this to remove the bot completely from your channel. In order to re-add the bot, you will need to !join and set up any options you want again (more info below).|
|!hateraidon||This is a command used in your own channel to enable sub-only, clears your chat, and posts a message about hate raids to your channel. This would be used as a quick command to lock your channel down in case of a hate raid.|
|!hateraidoff||This command is used in your own channel to disable sub-only mode. This does the exact same thing as /subscribersoff. I added it because people wanted a shortcut.|
|!followban||This command is run in Sery_Bot's channel, and authorizes the bot to ban and block known bots when they attempt to follow you. This command is only needed once, and provides ongoing protection.|
|!offlinelock||This command is run in Sery_Bot's channel, and authorizes the bot to automatically turn on emote-only and sub-only in your channel when you go offline (and turns off emote-only and sub-only when you go online). This command is only needed once.|
How to turn off channel protections
|!followbanoff||This command is run in Sery_Bot's channel, and DISABLES the ability for the bot to ban and block known bots when they follow you.|
|!offlinelockoff||This command is run in Sery_Bot's channel, and DISABLES the ability for the bot to manage emote-only and sub-only in your stream.|
Useful Mod Tools
These are mod-only commands used as tools to aid in your stream.
|!mso||This is a shoutout command, but allows you to shoutout multiple streamers at a time. You can list up to 9 streamers to shout out at the same time, just separate the names with spaces.||!mso streamer1 streamer2 streamer3 streamerEtc|
|!timers||This gives you a list of available timers you can run in a stream chat. I'm constantly adding more here and there as they are requested. The timer is just a countdown in your chat in case you need a fast 5 minute timer, or whatever timer you need.||!timers|
|!5m||This is a 5 minute timer. At the end of 5 minutes, the bot will tell you the timer is up. This is one example of timers available with the bot. Check !timers for a full list.||!5m|
Fun Commands/Easter Eggs
These are just fun/goofy commands that entertain your viewers.
|!flip||This visually flips someone in chat via ASCII.||!flip chatname|
|!angryflip||This visually flips someone in chat via ASCII, but a little angrier.||!angryflip chatname|
|!unflip||This does the opposite of the two above.||!unflip chatname|
|!catpic or !dogpic||This looks a random cat or dog picture up and posts the link into chat. Fair warning, they are cute pictures.||!catpic or !dogpic|
|!catfact or !dogfact||This looks a random cat or dog fact up and posts the fact into chat.||!catfact or !dogfact|
|good bot||Tell Sery_Bot that they're doing a great job. :)||good bot|
|bad bot||The exact opposite of the above :(||bad bot|
|**** ***||If you know, you know. :)||**** ***|
|!stopseryfun||This command is run in your channel (!join the bot if you're offline first). This turns off everything above permanently. Use this if you want to disable everything in this section.||!stopseryfun|
How to Add Sery_bot
Mod Sery_Bot in your channel. Go to your own chat and type in
/mod sery_bot. This allows the bot to ban bots in your channel.
Authorize the bot to your channel. Click here to complete this. This allows the bot to receive stream notifications when you go online/offline, allows the bot to see when you get a follow, and allows the bot to block bots on your behalf.
Go to Sery_Bot's chat. Type
!joininto sery_bot's chat. If you did the first two steps successfully, the bot will give you a success mesage. If not, it'll tell you what is missing.
(If you want the bot to ban/block known bots on follow): Type
!followbaninto sery_bot's chat. This will monitor your account for follows even when you're offline.
(If you want the bot to lock your channel after you go offline): Type
!offlinelockinto sery_bot's chat. This is used as a deterrent to spam so hate raids cannot happen to you awhile you are offline and likely not available to moderate your chat.
Verify? Sery, what's that?
I'm glad you asked. Twitch provdes all accounts with basic chat rates by default:
20 messages/commands per 30 seconds if unmodded
100 messages/commands per 30 seconds if modded or broadcaster
Think about a hate raid you've seen. How many messages have you seen at a time? 10? 20? 200? If Sery_Bot detects a hate raid, it can ban up to 100 accounts every 30 seconds.
Ok Sery, that works great if it's a low number like 20, but what if it's 200 bots?
There's the problem. I can only ban 100 at a time. The other 100 sit in a queue to be banned after 30 seconds are up.
What if multiple people get hit with hate raids at the same time?
See the problem here? If two or more streamers get hit at the same time, they both get queued up and processed in 100 ban increments. Not great.
What other issues are you running into?
The bot is able to join 20 streams every 10 seconds. I'm up to 25,000+ streams signed up for Sery_Bot and growing. If I joined every single stream, it would take the bot nearly THREE AND A HALF HOURS. And that's assuming there are no crashes, no hiccups, no interruptions, no delays. Because of this, I am only able to join live channels.
With bot verification, I can join 2,000 (yes TWO THOUSAND) streams every 10 seconds. Joining 25,000 channels is no longer an issue.
What's the fix?
Twitch needs to verify Sery_Bot. This lets the bot issue up to 7500 messages/commands every 30 seconds.
!streameraccount (see commands), you are giving me permission to ban using your streamer account, meaning I can ban up to 100 accounts separately than using Sery_Bot's allotment of 100 messages above.
How does that happen?
Twitch provides a form to request verified bot access. If they approve it, the bot is now verified.
Is that the same thing as Partner?
No, this is separate from a Partner badge.
I have questions
I want to know more about Sery
I've been a mod for several channels on Twitch for over 4 years. As a mod, I've seen maaaaaaany things over the years. No, it was not your cousin's friend's sister that typed that message into chat that got you banned. No, you aren't over 13 if you're mentioning what elementary school you go to during the day. You aren't fooling the mods.
Anyway, two years ago, I decided to start streaming myself. It's been fun!
Why did you create Sery_Bot?
I like coding. I am DevOps at my IRL job and I enjoy what I do.
Is this bot trusted?
I can't answer that for you. I am biased and will tell you yes, I trust it. I encourage everyone adding ANY bot to their channel to do their own research on it and see if it has value to your channel.
What I can tell you is that this bot has been in service to 80 streamers over three years, before the hate raid problems started to become a global issue in August 2021. Since then, the number of streams has grown to over 50,000.
If you want to find success stories about using Sery_Bot, I encourage you to search for Sery_Bot posts on Twitter, where hundreds of streamers have provided feedback and screenshots of Sery_Bot in action.
Why do I have to authorize the bot?
Authorization allows the bot to receive stream notifications when you go online/offline, allows the bot to see when you get a follow, and allows the bot to block bots on your behalf.
Does this bot ban my loyal viewers?
Generally, no. The hate raid algorithm used by the bot detects hate raids.
However, I nor the bot are perfect and there's always a chance this can happen. If it does, unban the user and you're good to go. If you run into further issues with a user, get in contact with me.
Early on, the bot used a list of names from various sources to detect hate raids, which while successful at the time, did result in false-positive bans. Protections were put into place to mitigate false-positive bans, but lists are only as reliable as the sources they come from. If a streamer submitted a list and did not validate their data, they can and have submitted false-positive names to these lists.
The bot didn't ban XYZ
The bot isn't perfect. I'm doing my best with what I have. Maybe you didn't turn on
!followban. Maybe the bot was restarting, maybe a hiccup happened over the interwebs and I didn't catch a follow or a message. Maybe Twitch didn't send me an alert. Maybe the "bot" isn't actually a bot, or on my bot list. Could be several things.
The bot didn't join my channel
Make sure you authorized with Sery_Bot. Type
!join in Sery_Bot's chat to check this. If you haven't authorized, you'll get a prompt to do so. Also, if you unmod the bot, it will stop joining your channel.
Is the bot open source?
No, it is not. It's something I'd like to do, but my priority remains on protecting streamers at this time. If you're interested in writing your own bot, I recommend the Twurple Node.js library.
Does this bot clean up my follower list from accounts that have already followed?
No, use CommanderRoot's tools for that.
Can I mass ban/block this list of accounts I have obtained elsewhere?
No, this is costly for my bot to do so. Use CommanderRoot's tools for that.
Should I ban or block accounts?
If they are follow bots, use blocking to remove them. Banning serves no purpose here and wastes resources and time.
If these are accounts that spam chat, ban them. Banning an account prevents them from typing in chat.
If these are accounts that both follow AND spam chat, ban and block them.
In either case, report these accounts to Twitch.
Does NOT prevent the user from following.
Prevents the user from talking in chat
Prevents the user from subbing/giving gift subs or bits
Prevents the user from hosting
Allows the user to message you (if your whispers from strangers are enabled).
Prevents the user from following.
Does NOT prevent the user from talking in chat.
Prevents the user from subbing/giving gift subs or bits.
Prevents the user from hosting.
Prevents the user from messaging you at all.
Other Tools and Resources
Hate Raid Response
A frequently updated resource that contains many tools, bots, tips, tricks, among many other things to keep you and your stream safe!
SMASH Security Suite
Currently in active development by @modest_mishmash, this bot has several moderation tools to fight hate raids and spam bots.
The Twitch Safety Check
Also in active development by @modest_mishmash, a single button click can easily check the settings of your channel, and will make recommendations of changes you can make to ensure your safety.
Cone of Safety
Using a heuristics approach, Cone of Safety attempts to collect data about opted-in channels to identify patterns and provide countermeasures to streamers in case of anomalies (such as hate raids).
Twitch Tools by CommanderRoot
CommanderRoot provides several streamer tools, with their follower remover and blocklist manager amongst the most popular tools offered.