ChemBot is a discord.py bot "backend" that I've been developing since March of 2021. This bot started as a project called "Schlooth Bot", which was named after my chemistry teacher. This bot started out as a very basic Discord bot, since it was my first time ever developing one. Schlooth Bot was originally built using a template, as I needed an easy way of starting, since I had no idea what I was doing. This bot started by having a few basic commands, most of them inside jokes with a server with my friends, but later grew massively in the number of commands - to the point where that bot template's help command couldn't handle the number of commands. I was also limited in the types of commands I could create because of how the bot was set up. So at a certain point, I decided to scrap the bot template entirely and transfer all the commands over to my own bot, this time developing it all in one python file. Originally, it was working great, as I no longer had any limitations, but as I added more commands, the file started to get very long - reaching into the thousands of lines. At this point, the bot contained a bunch of review commands for classes my friends and I were taking, as well as some fun and general commands that I had wanted to work on. At this point, I decided to look into cogs (categories) and after figuring out how they work, I turned Schlooth Bot into a bot with cogs (that can be separated into separate files) and continued developing from there. It was around this time that I joined TeamlessCTF, a CTF team. I wanted to add Schlooth Bot to this server just for the fun commands, but didn't want all of the inside jokes. Before I added the cogs, I did add a version of the bot, called Chemistry Bot, to the TeamlessCTF server, but managing two bots running off different code was a little tedious and difficult to manage. When I added cogs, the inside jokes had their own cog, so I set up a GitHub repo for the bot and decided to get to work to make it so that I could run Schlooth Bot and Chemistry Bot off the same backend, called ChemBot. I eventually was able to get it to work through some config (Both bots have different prefixes) and I'm still working on adding commands today.
Schlooth Bot is run on chembot with an extra cog for schlooth-specific commands.
Chemistry Bot is run on only chembot.
Note: BagelBot uses a heavily adapted version of the backend to make it fit to be a CTF chall. Exploitations that work on BagelBot may not work on other bots.