Roxxers / roxbot

Roxbot: An inclusive modular multi-purpose Discord bot. Built with love (and discord.py)
MIT License
21 stars 5 forks source link

3.0 Road Map #53

Open Roxxers opened 5 years ago

Roxxers commented 5 years ago

What's this all about?

It's time to plan the next major update for Roxbot! I view the major versions of Roxbot almost like stages of growth. 0.x was the idea of Roxbot, 1.x was the child Roxbot. 2.x is a workable teenager of a bot that is quite spotty around the edges. I want 3.x to be the "final" major update to Roxbot. She should be a fully functional and powerful Discord bot. She shouldn't need any major rewrites from then forward. This is so I can work on other projects and also be proud of this one. I want to feel like I have made one of the best FOSS Discord bots you can find.

What will it take to get there? I want Roxbot to have a fully working web client that will aid the ability for users to interact with her. I want to try and gamify Roxbot to help with interaction and be able to replace that part of what bots provide to servers. I want to expand the image editing to a level I think is acceptable, I want to expand the admin tools to feature some really extensive and useful features, and I want to make more cogs and give her a lot more features. Above all else, i really want to tighten what we have at the moment. I feel that there is definitely a polish to Roxbot that is required for quite a bit of the features we already have.

With this, I am launching a Patreon to support me while I develop this version. This will help me put as much effort into launching this version as well as allow me to focus on it a lot more. I have also been operating Roxbot at a loss so far and I would like to at least breakeven in future.


Roadmap

Below is a rough feature wishlist to point out changes I want to do. It's a semi roadmap for 3.0. This doesn’t have all the changes and will not be a fully accurate list. It is a general concept at this moment.

Design

Roxbot is designed to be modular. All of the cogs within the cog folder are something you can disable. This is a two tier system. Roxbot has a core, which is the code that is built onto the discord.py stuff to make Roxbot work. Then the cogs. Extensions that actually provide the commands and a means to do stuff with Roxbot.

This is going to change. With 3.0, I intend move this to a three tier system. A Core, then move some of the already existing extensions into a closely knit bit of code. Not required and can be removed, but not 100% designed to be modular. Then a standalone extension system of top of that. This will allow me to do some of the changes required and highlight what I consider are key features. (This is being dumped in favour of just increasing the scope of core and making an api with features that can be turned off) It will allow me to design a api interaction with core Roxbot that can be used for easy extension making. This isn’t in place at the moment as each cog has been made to be seperate but, with this new design, I will be able to make this code cleaner and easier to write for.

For this, I will need to remodel how extensions are loaded into the bot. Maybe outer core cogs can be enabled and disabled in the config, and the extensions disabled in their metadata. This will also need me to make folders for extensions that include metadata and required configs for them on their own. This also will make writing new extensions easy and simple, only having to work on your own section without touching any of the main code for a plug in experience.

Meta

Meta changes are anything that is related to the project and repository itself rather than any code. Though this extends out to documentation and

Core

Trivia

Fun

Clean up cog in response to the gamifying. At the moment it is a large mix of commands that needs some more order and purpose.

NSFW

I really want to add onto this cog. It’s quite lacking in options and I think it can be expanded. I don’t have many concrete ideas on this other than a possible comic support.

ImageEditor

Another cog that could do with expanding on. There just needs to be way more options and ways to edit an image than what is provided at the moment. Just to bring it on the level as other bots.

Admin

Adding even more admin commands to aid in moderation is also on the todo. I think things like spam prevention, grey lists for certain phrases, a better member prune, and others are a good start.

Voice

The music bot is in a pretty good place. I think just to bring it up to what other music bots are like, I need to polish this cog a lil more. It struggles to be 100% stable and probably needs some more queue options with removing songs from the queue without having to play them.

JoinLeave and SelfAssign

I think these two can be cleaned up a little. Self assign role groups for ease of use and some general improvements in ease of use.

Documentation

Command Docs