Carl-bot rewind 2018
Added 2018-12-13 02:17:40 +0000 UTCIn 2018 the bot saw a lot of new features and updates. If you're a new user of the bot, you might be surprised by how much of what you're used to was added in this year.
Reaction roles
This was clearly a fantastic thing to add back in April and has clearly been the key element to my bot's growth this year.
Moderation commands
No, seriously, didn't have any of them before 2018. Things like !muterole, !mute, !ban, !tempban, !softban, !tempban, !kick, !warn are completely new.
Welcome messages
The bot had welcome messages since 2017 but 2018 added variables and the ability to send DMs upon joining.
Patreon and music
I can't stress enough how helpful Patreon has been for the bot's continued growth. I can safely say that I would have had to artificially prevent the bot from growing because of the increasing costs of hosting. I really can't convey my gratitude for the people making it possible but an attempt was made and that came in the form of music.
Repeating timers
Mod logs
Mod logs were created because r/wow's mod bot was getting retired and I didn't like the look of my hacky modlogs.
Feeds
Autofeeds
Autofeeds started off as my worst designed group of commands by far. The syntax was impossible to remember, required you to name them for no reason and the fact that I as the creator had to look up the docs on autofeeds meant I had to change something. Luckily that change came relatively soon and made autofeeds tolerable to use.
Triggers/autoresponses
Didn't have these at all before, seems silly in hindsight.
Suggestions
As a token of appreciation to all the people coming from Zira shutting down I threw together suggestions in a couple of days and I think the consensus is that they're very useful for the right kind of server.
Logging
OG Carl-bot users will remember the days of text-only logging. While the facelift was universally liked, the internals is what interested me the most. The bot grew a lot during 2018 and my internal message cache went from saving messages for two days to about five minutes during peak hours - clearly something had to be done. The solution ended up being less taxing on the cpu, with less ram usage and I even started logging purges.
Role management
Before you could set up self-assignable roles through commands but that was it. This update came with ways of managing roles in bulk and also the creation and management of new roles.
The concept of 'modonly'
Before you could either disable or restrict commands, this update meant you could prevent normal users from using annoying commands without disabling it.
Timed autoroles
A surprisingly tricky update with silly amounts of optimization.
Custom embeds
These were clearly much appreciated by some people (looking at you, Hilent) and despite requiring normal users to learn how embeds are represented as json internally, almost nobody struggled with these.
Spacemychannel
The best worst command.
Documentation rewrite
Going from a single page github readme to gitbooks made things a lot more organized and aesthetically pleasing. Unfortunately I didn't really see a change in number of people asking for clarification.
Scaling
The update that nobody noticed. In October I rewrote some internals to allow for splitting up the bot across several processes leading to a more distributed load. I was terrified of adding this update but it ended up being pretty easy.
Automod
1900 lines of code led to a great system with awful UX. Automod initially suffered from the same issues that plagued autofeeds with odd syntax and unclear feedback.
Drama channel
A great suggestion from the mods from r6s which led to a moderation system I genuinely enjoy.
Trello
Lists are great, let's do more of them.
THE DASHBOARD
Most anticipated release of 2018 by far was the dashboard which took 4-12 hours of work per day for over four weeks straight. The dashboard was easily the biggest upgrade with the most impact. The number of documentation visitors sharply dropped because certain confusing parts of the bot were replaced with intuitive design that gave a better overview of the current settings.
This update wasn't just a website however, it also added embeds (managed with embed builders on the dashboard) to tags, autofeeds and triggers.
The release was smooth and I'm amazed by how few bugfixes had to be done.
Command permissions
After being fed up with the ever increasingly specific requests for command permissions and modified behaviour I decided to solve the problem once and for all by allowing users to set rule 'overwrites' for individual commands effectively solving every single request I've ever gotten with a single update.
Tagscript 2.0, the playground and shareable tags
The highly anticipated update to welcome variables, tags, triggers and autofeeds saw a more programmatic approach to everything combined with a unified syntax that makes more sense. Since I knew that this would spawn more creative and useful tags I decided to add an easier way to test them (the playground) combined with a way of sharing tags with a fast and easy way of importing tags
Too much to list
Hundreds of improvements and thousands of bugfixes (yes, literally)
Growth
Support server: 17 ➜ 1500 members
Gateway events: 5.7/s ➜ >2000/s
Servers: 33 ➜ 14,493
Members: 33,173 ➜ 3,043,341
Database rows: 50k ➜ 310m
Messages seen: <5k/day ➜ 4.5m/day
Different countries: ??? ➜ At least 115 countries (using the website at least)
Resource usage: 200mb ram, 0.9% cpu ➜ 6.5g ram, >130% cpu
Lines of code: ~4000 ➜ ~35,000 (pointless metric though)
Thanks
For using Carl-bot. I hope 2019 will be just as good (will be hard to top this though).
Merry Christmas!