Published in


Future in the development of Filo

Future in the development of Filo

This article will cover a number of worrisome topics that affect the future of Filo and the way you interact with Filo, so I recommend that you read this article carefully.

I started Filo as a personal project and as an excuse to learn to use JavaScript, so the first commands that I implemented in Filo had a very basic code that could be improved in many aspects.

As time went by, I improved my knowledge, but I only applied it to future commands, modules and systems (I never got to do a serious rewrite).

Having said this, I will begin the heart of the article.

Starting the rewrite of Filo commands

On July 22, 2021 I began to rewrite all the commands, starting with the Administration category, which could be considerably improved. The rewrite consisted of improving the possibilities of each command (expanding its possible arguments) and retranslating the command (passing it to a new system to simplify and save translations).

A clear result of the command rewrite is the clear command: this command had some technical and design issues and did not support channel arguments (if you executed the command in #commands you could not purge the messages from the #general channel).

This rewrite would probably take the rest of my summer vacation, and Filo’s commandos would be greatly improved and “put in shape.”

Everything was going well, until July 29, 2021, the day on which the Discord developers announced the arrival of “Message Content Intent”.

Message Content Intent

As the popularity and number of Discord bots grow, it’s important to keep our users and developers safe and healthy. This means from time to time, like any maturing platform, we need to update our policies to reflect the current needs of the ecosystem.

In April of 2022, message content will become a Privileged Intent. Like other privileged intents (Presence and Guild Members), it will require approval and affect only verified bots.

In short: Discord as a social network grows and to safeguard the privacy of users, they believe it is convenient to force developers to request access to the content of the message (only verified bots).

Is this really good?

At first I was totally against it and completely unjustified, but, after several clarifications by the Discord developers, I understood the situation a bit (although it is still not funny).

How does this affect verified bots? (Not just Filo)

This affects very negatively, since the way users interact with the bot is through messages, although we, the developers, call it commands, they are and will follow messages that we treat (we recognize the prefix and the name of the command).

If they do not receive the content of the message, what will they receive then? How will the user interaction with the bot?

As I have specified, only the content of the message will not be being contributed by the API to the bots (verified and not on the white list), so, in summary, the bots will know that you have sent a message, to what date and who is its author, but you will not know what the message contains.

What about moderation bots? How will bots moderate if they do not receive the content of the message?

Discord developers will provide bots (verified) access to message content as long as its functionality, system or module cannot be carried out through interactions (slash commands, buttons, selection menus, …).

Filo is likely to gain access, but how does this individually affect Filo?

The moderation modules as we know them will continue to work as usual, their functionality will not change, but the commands through messages will be affected.

Commands via messages are now deprecated

I am deeply sorry to announce that messaging commands are currently deprecated (on Filo).

As the sole developer I have to manage my time in the most efficient way and think ahead (solve problems that may occur in the future).

Since I don’t know what the Discord developers think, I am afraid I will have to assume that in the future they will add some kind of function to end up eliminating the moderation bots that require the content of the messages to be able to moderate.

As I explained before, the moderation modules in the bots is currently more than enough reason to request access to the Message Content Intent whitelist, but, the commands in messages are not (and with 99% security I can guarantee that will not grant access to bots for that reason).

Several months ago I indicated through a blog article that the Slash Commands were too green to be used in production, as there were so many limits that it was not feasible to carry out a transition to this functionality.

The limits have changed, but they are still too restrictive.

After many questions, I got a Discord developer to solve all my questions and came to a conclusion: Discord developers don’t like multipurpose or command-heavy bots.

I was discussing and explaining my Filo use case (which is close to 200 commands and currently you can only have 100 global commands and 100 commands per guild) and they literally answered “Right now you’ll have to work within the limits. Limits are something that we are discussing, but there are no plans at this time “.

That is, currently my creativity and ways of working are limited by the Discord developers.

How will I solve this? Will I remove commands?

The answer is and will remain NO (in capital letters for emphasis).

All current commands are in a transition phase to Slash Commands, but the way I will have to work will not be the most optimal.

Why is it not the most optimal?

While I made it clear earlier, I currently have to stick to the limits, this means that the way a command is invoked will change radically. Below I will put several examples:

  • Command: ban.
    Example of use (I will add arguments that are pending to be implemented in the future): f!ban User --silent Being too kawaii!
  • Slash Command: ban.
    Example of use (same number of arguments as above): /moderation ban user:User silent:yes reason:Being too kawaii!

As you can see, it is now necessary to specify the category of the command before the command (more unnecessary text to write).

Bad or good?

From my point of view that reduces the quality of the commands, but there is nothing I can do.

Of course, that’s just the ban command (which is a somewhat elaborate command).

Now let’s talk about the config command (AKA: settings) above:
The config command has more than 5,000 lines of code between checks and possible arguments, to ensure that everything works as it should.

Although the checks can always be carried out and there is no limitation in that regard, but the possible arguments are a problem, since the Slash Commands will be structured as follows:
Command or group of commands> Subcommands or subgroup of commands (Maximum 25)> (In case of being a subgroup of commands) Subcommand (Maximum 25)> Parameters or choices (Maximum 25).

Currently I have not developed the config command, but, a priory I am going to have a great complication and limitation in this command, for that reason, in principle it is the only command that will not be identified by the name of its category, that is, you can invoke it by typing /settings (the command will be renamed, as Discord doesn’t support command aliases yet).

I’ll also leave a little, little notice here to warn that the way you configure Filo will be more complicated.

In the future I will work on alternative solutions to the config command, but for now I have no alternative.

Filo’s rewrite

Since I had started a rewrite of the Filo commands, I thought that taking advantage of this new limitation on Discord’s part would be a good time to do a full rewrite of Filo.

As of July 30, 2021 (including July 30, 2021), I started the complete rewrite of Filo and as of today (August 7, 2021) I have finished less than 25% of Filo completely ( only necessary internal systems that make Filo work).

This rewrite will defer updates to Filo and fixes (not urgent).

Now more than ever I need you to have understanding, since being a single developer in charge of Filo, it will take longer than it could take a Team of Developers focused on different things.

When will the commands be retired messages?

My idea is to finish this rewrite by the end of September (or sooner if possible).
Once the Filo rewrite is completed I will grant 7 days of grace time to allow servers that do not have Filo’s Slash Commands added to their servers to do so.

Is it necessary to have the bot on the server if I have the Slash Commands integration?

Yes and I will continue to support this one restriction.
- If you do not have the Slash Commands integration but if you have Filo on the server, you simply will not be able to execute the Filo commands, but the rest of the functions (modules) will continue to work as usual.
- If you do not have Filo on the server but you do have the Slash Commands integration, you will simply be given a permanent error that can only be solved if you add Filo to the server.

Your privacy

Our goal is to keep your data safe no matter what, and you can be sure that we will NEVER sell or share your data with third-party companies, so you can rest easy.

You can view our Privacy Policy by clicking here.

Advantages of the Slash Commands

  • Better validation of arguments.
  • Easier to use (in most commands).
  • Goodbye 5 second cooldown per command!
  • Goodbye rate limits for sending too many messages!
  • Improvements for the Error Handler of the commands.
  • And many more!

Don’t have the Slash Commands integration?

By clicking here we will take you to Filo’s invitation with the Slash Commands integration (you only need to invite her again, it is not necessary to kick her and invite her again).

It hurts me a lot to have to announce this, but the Discord developers leave me no choice.

I hope you can understand the current situation.

Thanks for using Filo!




Filo is a powerful multipurpose Discord bot. Customizable, multiple languages, report, logging, welcome and farewells, member counter, anti-invites, auto-mod, anti-evasion. +190 commands.

Recommended from Medium

Recording Unity video on an EC2 server

How To Download Torrents Straight To Google Drive!

What is Kubernetes?

How Kafka helped us to restructure our Analytics solution

„Mozilla“ made me reflect on valuation of open source in times of “money rules the world”

Continuous Integration with GitHub Actions and Laravel 6

Step by Step to farm in Pangolin Jewel-AVAX LP Pool — DeFi Kingdoms TLDR Guide

How to support latest amazon tablet devices like Fire HD 10 series when you release on amazon app…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store



More from Medium

To Do Lists is a snap of a finger with Focal_Point

Is A Bug In A Web3 Smart Contract Part of the Contract?

Gilbane Advisor 1–5–22 — Web3, SCWP, CDPs, Meta, Office

World of V Marketplace