WARNING! This is a barebone version, for a "working" version, check out the stream version ↗
If you plan on using this version, make sure all plugins (TwitchIO, Azure, PyGame, OBS Websockets, and requests) are up to date (run pip install -r requirements.txt to install and update everything)
This is a fork of Babagaboosh ↗, changed as a bot for TheFox580 ↗, TheAlt580 ↗, TheEvents580 ↗ and LeRenard580 ↗
This code uses the TwitchIO 3.1.0 Library, Azure's Text-To-Speech fonctionnality, PyGame's Audio Library and OBS Websockets.
TheBot580 will detect bots based on a banned word list, and if ANY of these words are detected in the message, the user will be permanently banned from the channel
TheBot580 will by default enable Text-To-Speech messages, meaning that any safe messages will be read out loud by the progam!
Note : This setting can be disabled by putting
self.tts = False
Tip : If you're streaming with TTS Enabled, you can use a plugin like win-capture-audio ↗ and make it output
python.exeto have TTS on a separate audio channel!
Tip : With this plugin and the Move plugin ↗, you can make a png move like TheBot580 was actually talking with the use of OBS Websockets
TheBot580 will automatically count how many times in a row an emote has been used, and will send a message if the emote has been said at least 5 times!
Tip : You can modify the message that the bot sends in chat to your liking here
Thanks to TwitchIO 3.0.0+, we now have more control on how to use bot commands! You can check some I have already set up!
Tip : 🆙 means this interaction has been updated & 🆕 means this interaction has been added
Info : 🆙 As of May 13, 2026, any streamer who has completed the Monetization Onboarding can access those features!
Tip : You can modify whether you've completed the onboarding or not by changing
HAS_ONBOARDEDinkeys.py
TheBot580 uses EventSub to allow for interactive moments with chat! So far, TheBot580 interacts with :
- New Follower
- Shoutout Created
- Stream Starts and Ends
- Raid (Gives an automatic shoutout)
- Title & Category Update
- Shared Chat Collaboration Begins 🆙 Fixed!
- Shared Chat Collaboration Updates (User join / left) 🆙 Fixed!
- Shared Chat Collaboration Ends 🆙 Fixed!
- New Subscriber
- Resubscriptions
- Normal / Anonymous Gifted Subscriptions
- Normal / Anonymous Cheer Message
- Prediction Begins
- Prediction Locks
- Prediction Ends
- Poll Begins
- Poll Ends
- Golden / Treasure / Normal (Shared) Hype Train Begins
- Golden / Treasure / Normal (Shared) Hype Train Progress
- Golden / Treasure / Normal (Shared) Hype Train Ends
- Follower / Subcription / Cheer Goal Begins
- Follower / Subcription / Cheer Goal Progress
- Follower / Subcription / Cheer Goal Reached
- More to come...
Note : If you don't know how to start TheBot580 (especially for the 1st time), read the TwitchIO tutorial ↗ on how to start the bot!
IT IS MORE THAN ADVISED TO KNOW PYTHON (otherwise you can't understand what this code does and this is kinda dumb...)
BEFORE STARTING THE CODE, PLEASE READ (and modify, if you want) tts.py, websockets_auth.py AND twitch_bot.py
AZURE_TTS_KEYAZURE_TTS_REGIONAZURE_TTS_VOICE(Click here to see all voices available ↗)TWITCH_BOT_CLIENT_IDTWITCH_BOT_CLIENT_SECRETOWNER_IDBOT_IDHAS_ONBOARDED
Example of keys.py:
(an example is also available here↗)
