The Future of Auttaja

Kelwing
Auttaja
Published in
7 min readSep 11, 2021

--

I’d like to have a very frank about the state and future of the project with all of you, but first, let’s talk about how we got to where we are today. (We’re not going away, just read to the end.)

The History

Auttaja was created on Halloween in 2016. Since then it has undergone a lot of changes, evolved way beyond its original goal of providing moderation to a single Discord server. In the beginning, it was built on a very custom commands system, everything done by hand. Initially, the bot didn’t even have support for handling configuration for multiple servers, it was meant as a hobby project, and to fulfill the needs of a single server that was getting raided constantly. Through a lot of pressure of users of that server that also had servers of their own, each with needs similar to that of the server Auttaja was originally created for, it was extended to support multiple servers. Eventually, it was moved over to use discord.py’s command.ext system with Cogs. All configuration at this point was done entirely through commands. Finally, in 2018 a dashboard was introduced to allow easy editing of the bot configuration through a web interface.

The Current State

I’m going to be very honest here from the point of view of the project owner and developer team. Currently, the bot is not seeing its best days. Uptime is… alright. Intermittent issues plague the service, the dashboard… sucks. It’s not user-friendly, it hardly works on mobile devices at all, and it has a lot of issues loading and saving configuration data. I can’t tell you how many times I’ve looked in the support channel and see “my server doesn’t show up on the dashboard!” We’re very aware of these problems, however, without a major overhaul of how the dashboard and its underlying systems work, there’s not much we can do to fix these issues long-term. The bot is incredibly expensive to run, requires a lot of maintenance, and all of this for a project I started as a hobby, one that was never meant to see the usage it sees today, and I’m sure this shows. For almost two years now, our development team has been unmotived to work on the bot. There have been a lot of other things (jobs, relationships, school, other side-projects) that either require a lot more of our time or just feel like less of a second job to work on. To be clear, we do not turn a profit, let alone break even any month of the year, and operation is largely covered from our pockets. We feel that all of this combine has really tarnished the reputation of what was at one point to be considered one of the best moderation bots on Discord. This last point really sits with me… “moderation bot”. It really feels as if we’ve lost that identity to some degree. There’s a lot to the bot that doesn’t have to do with moderation. Obviously, things like auto-moderation, logging, infractions, Gatekeeper, etc all do, but starboard? The define or weather commands? Reaction roles? Ehh.

The Cause

There’s a lot of reasons why things have gotten to the point they’re at. After the release of the dashboard, things really began to bloat up internally. Way too many edge cases, way too many new features hacked into the codebase, and just downright miserable maintainability of the bot just killed the motivation of the developers. I really want to be able to push a lot of the blame onto discord.py for why things are the way they are, but I just can’t. The library itself has a lot of issues that I could write an entire blog post about, but we could have moved away from it much sooner, done things the way we wanted too much earlier, but just didn’t have the motivation. Yes, a lot of the current stability issues we’re seeing are indirectly caused by the library the bot is built on, but the real culprit was the lack of motivation to do something about it.

The Future

So now that I’ve sufficiently worried everyone reading this enough, I’m sure the title did that on its own, it’s time to end that worry. No Auttaja is not going away, at least, not entirely. We as a team actually found our motivation earlier in 2021, around the time when slash commands and the other cool new bot features were announced. Since then, we’ve been hard at work building our own set of libraries internally to run the bot in an incredibly scalable and fault-proof way. No more will you have to wait 30 minutes (or more) for the bot to become responsive in your server after a restart, no longer will random shards drop offline, killing off service for 1500 servers at once. With this new framework we’re building, we’re also stepping back and rethinking how we want the bot to look, act, and what features it should have. Don’t worry, the purpose of me writing this isn’t to shove these changes down your throat and say “hey, we’re throwing out a ton of stuff, deal with it.” It’s to let you know what's on our minds and start a dialog to discuss what it is that you depend on, what you would be willing to part with, and work together to shape this future.

The (tentative) Changes

So let’s talk about what we as a team were thinking about, and start to get your feedback on these potential changes. Please note: nothing here is set in stone, and we would very much appreciate feedback on these possible changes before we go too far down the development path.

New

  • Slash commands, the entire bot will be powered by slash commands instead of the traditional chat commands. This will limit some functionality (like make multiban a bit hacky, for now), but overall should give a much more positive experience.
  • Thread support
  • Use of hidden messages for reports
  • A more extensive premium offering to truly reward those who support the project.
  • AI-powered auto-moderation (this will likely require a premium tier, simply due to cost)
  • A whole new, much more powerful custom commands system
  • Mod queue — A new option for the bot to take when auto-moderating. Will allow servers to specify a channel for all actions to go to, and provide moderators with the ability to review any auto-moderation action before confirming it, will also allow mods to pick the punishment at the time of confirmation.
  • A redesigned, mobile-friendly dashboard, with many improvements to how it communicates with the backend (no more of those “help, my server isn’t showing up on the dashboard” help requests).
  • Context menu support for things like Profile (as shown below), Ban, Kick, Warn, Mute, Delete Message, etc.

Changing

  • Gatekeeper will be renamed Sentry, gain a lot of new features, support for interacting with Discords Welcome Screen, and better interaction with the servers Verification Level. Will also include many fixes for all of the bugs in our current set of features.
  • The bot will no longer pick up kicks, bans, etc from users that aren’t Auttaja. (Don’t worry, the above context-menu support will alleviate this to a degree). We are doing this because of multiple pokes from Discord to reduce the number of API calls we make, and doing audit-log lookups to see who banned someone, who deleted a message, who kicked someone, who created a channel, deleted a role, etc. Were by far and above the largest culprit for our API usage. I won’t place any blame on Discord here, our usage of audit log lookups was very excessive. We can probably look to remove that functionality from log entries that just don’t need it, rather than eliminate it completely.
  • Massively improved auto-mod algorithms that will improve in situations like 300 self-bots joining and each one very slowly spamming the same message over and over again, and reduce the number of false positives.
  • Significantly faster filter processing, with easier-to-use word filters that will automatically detect slight permutations on the word.

Removing

  • Role change logs (the ones that show when a single role was added or removed from a user, not the one that happens when a roles permissions are changed). Most servers that we spoke to just found this one very spammy. They had it on but didn’t find it all that useful, especially if they had a role selection system like reaction roles or voice roles.
  • Reaction roles — Don’t worry, we’ve broken this out into a separate bot: Reaction (please give us feedback on this! There’s a dedicated channel for this in the support Discord)
  • Starboard — There’s a good chance this feature will get the same treatment as reaction roles, and we’ll provide it as a separate bot for those of you who really want or need it. (We actually have a fun-bot with leveling, currency, purchasable roles, gambling, etc in the works that we’ll likely just roll Starboard into).
  • Nickname change logs — This along with the role change logs are by far our highest cost features to offer. This one is still very up for debate, and might just be added to a premium tier, but we have to do something to curb our costs, and keeping users cached in memory so we can determine if their nickname has changed is just a major burden for our wallets.
  • All “fun commands”
  • All easter eggs (these were pointless to begin with)
  • All twitter functionality
  • The voting system (maybe)
  • Sticky roles — this is a possibility, as they reduce server security by letting people who left with roles join back and bypass the Server Verification setting, and Sentry.

Rationale

A lot of these changes come from a need to cut costs and cut down the bots feature set to just make it more maintainable, and allow us to focus on what’s really important: moderation. We want to provide you with the best possible moderation experience and helper, and a lack of motivation from our development team, and the worry of whether or not the bot is still affordable really prevent us from doing just that.

Feedback

We have no release date for these changes, and none of them are set in stone. Please provide feedback, let us know if we’re considering axing any feature you rely on heavily (this will greatly influence our decisions going forward) and let us know if you’d like to see anything changed or added that we didn’t include here. If you arrived to this post outside of our support server, please join, and head over to the #medium-article-feedback channel.

--

--