Sery_Bot, by SeryCodes
A Twitch moderation bot providing anti-hate raid and anti-follow bot protections, and other safety features and tools to streamers.
About
Sery_Bot was created around 2018 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 from abnormal spikes in follows, 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
Command | Description |
---|---|
!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). |
!onlinenotif | Sery_Bot will notify you when it has joined your channel once you are live. |
!onlinenotifoff | Sery_Bot will stop notifying you when it has joined your channel. |
!onlinedadjoke | Sery_Bot will post a dad joke with the going live message. |
!onlinedadjokeoff | Sery_Bot will no longer post a dad joke with the going live message. |
Ad Timers and Alerts
Command | Description |
---|---|
!adtimer | Sery_Bot will notify chat when an ad break begins |
!adtimeroff | Sery_Bot will no longer notify chat when an ad break begins |
!adtimermsg <message> | Set a custom message to send when an ad break begins Placeholders are available: {durationS} just the seconds. 30/60/120/180/etc{durationM} just the minutes. 0.5/1/2/3/etc{durationF} has the formatting I already use. 30 second/90 second/2 minute/2.5 minute/etc. anything higher than 90 gets converted to minutes. |
!adtimermsgend <message> | Set a custom message to send when an ad break ends |
!clearadtimermsg | Clears the custom ad timer message |
!raidoutalert | Sery_Bot will post a message in chat after you raid out. This is great to have in case a viewer/lurker isn't pulled in with your raid, or if someone missed your stream and wants to see where to go! |
!raidoutalertoff | Sery_Bot will no longer post raid-out messages. |
!raidoutmsg | The custom message you want to use instead of the default. The link is automatically appended to the end of the message. Example: !raidoutmsg We're raiding this person: |
!clearraidoutmsg | Clears the custom raid-out message. |
channel protection
Command | Description |
---|---|
!hateraidon | This is a command used in your own channel to enable shield mode, 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 shield mode. 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 Shield Mode in your channel five minutes after you go offline (and turns off Shield Mode when you go online). This command is only needed once. |
How to turn off channel protections
Command | Description |
---|---|
!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 Shield Mode in your stream when you go online/offline. |
Useful Mod Tools
These are mod-only commands used as tools to aid in your stream.
Command | Description | Usage |
---|---|---|
!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.
Command | Description | Usage |
---|---|---|
!dadjoke | Yep. | !dadjoke |
!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 |
!ttotals | This checks Tiltify for your latest charity/fundraiser campaign and pastes the campaign info and total raised into chat. | !ttotals |
good bot | Tell Sery_Bot that its doing a great job. :) | good bot |
bad bot | The exact opposite of the above :( | bad bot |
!seryfun | This allows you to set access levels to the fun commands, or turn them off. Valid options are on/off/vips/subs/mods. | !seryfun on |
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
!join
into sery_bot's chat. If you did the first two steps successfully, the bot will give you a success message. If not, it'll tell you what is missing. If all is well, the bot will start joining your channel when you are live.(If you want the bot to ban/block known bots on follow): Type
!followban
into 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
!offlinelock
into 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.
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.
____________Why did you create Sery_Bot?
I like coding as a hobby.
____________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 around 80 streamers around 2018, before the hate raid problems started to become a well-publicized issue in August 2021. Since then, the number of streams has grown to over 100,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 do actions on your behalf, and is required. Some of these actions include stream notifications when you go online/offline, allows the bot to see when you get a follow, check your ad breaks, 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.
____________WHOA Sery_Bot banned someone real! I'm angry!
Like I said, I nor the bot are perfect. It happens.It's very very VERY likely that the account was compromised at one point and used for malicious activity. I don't monitor Twitch TOS unbans so I would have no way of knowing if someone appealed and got their account back. Unban them.
____________I'm still angry! You banned someone when you shouldn't.
Read the above again.
____________The bot didn't ban XYZ
The bot isn't perfect. I'm doing my best with what I have. I cannot guarantee and will not guarantee that my bot will catch 100% of bots. That is impossible.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 you reset your password and need to rejoin Sery_Bot. Maybe Twitch didn't send me an alert. Maybe the "bot" isn't actually a bot, or on my bot list. Maybe the account(s) weren't identified as bot accounts. Maybe they didn't trigger the follow bot algorithm. Could be one of many 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. The bot only joins your channel when you are live.
____________Is the bot open source?
No, it is not. 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.
____________Will you be adding the bot to other platforms?
Not at this time.
____________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.
Banning
Does NOT prevent the user from following.
Prevents the user from talking in chat
Prevents the user from subbing/giving gift subs or bits
Allows the user to message you (if your whispers from strangers are enabled).
Blocking
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 messaging you at all.