History of APVE
Around July 24 - 28, 2026
Around July 24, 2026, the development of APVE began. Back then, APVE had a different name — Autonomous Potential Toxicity Eradicator (APTE). Development went slowly because, alongside it, I was working on other projects like auction and economy plugins meant for an unpopular, still-unformed server — PoliticXServer (the server's name might have changed since then). It was during this timeframe that the initial architecture was laid out: intercepting messages at the network level instead of using AsyncPlayerChatEvent for the sake of better performance, the idea of a monolithic configuration, and minimizing hardcode as much as possible by adding the ability to freely change dictionaries and messages. Also, around July 28, the decision was made to use Aho-Corasick over other solutions in favor of even greater performance.
I was motivated by the fact that my creation would eventually be used on PoliticXServer, so I kept pushing APTE forward after finishing the other projects. To maintain the ability for APTE to work correctly and efficiently for both Russian and English audiences, the decision was made to force the TextNormalizer to convert all non-Latin characters into Latin, and force administrators to write words in the dictionaries using transliteration.
July 30 - August 9, 2026
From July 30 to August 5, I was out of town, so development was temporarily paused. After returning home, I continued developing APTE, fixing bugs, adding new filters, etc. My development at that time was hindered by bad habits from my other projects—namely, NOT using Gradle, Git, and Maven, which significantly impacted the speed of testing and compiling.
On August 9, I decided to finally drop direct compilation via javac -cp and switch to compiling through Gradle, which led to an increase in the speed of development, testing, and maintenance efficiency. Due to the expansion of APTE's functionality, I thought that "Autonomous Potential Toxicity Eradicator" implied it only intercepted toxicity in the chat, so APTE was renamed to a more meaningful name — Autonomous Potential Violation Eradicator, which says that it intercepts the majority of chat violations.
August 14 - 16, 2026
On August 14, Git was initialized in the project folder. On August 16, the development of the first version of APVE was finished — APVE v1.0.0. At the time, this version was only published on SpigotMC and Modrinth, and was also sent to the owner of PoliticXServer. The GitHub repository was created later, on August 17, after I figured out the GitHub interface.
August 17 - 19, 2026
On August 17, alongside the creation of the repository, the second version of APVE was released — APVE v1.1.0, which added the FoolProof system to find configuration errors upon startup, and the /apve reload command (yeah, APVE v1.0.0 was so raw that it didn't even include a basic /apve reload) so the plugin could be reloaded without needing to type /stop.
On August 18, another version came out — APVE v1.2.0, which only added the /apve warns show, /apve warns remove, and /apve warns clear commands to make testing and administration easier.
On August 19, APVE v1.2.2 was released, which included improvements to the FoolProof system and the ability to issue permanent punishments. The price of this addition was the partial loss of support for specific punishment plugins, because the ability to issue permanent punishments relied on substituting the duration argument with words like perm, -1, inf, and others, letting the punishment plugin know the time should be forever. Because of this, plugins that don't support this substitution couldn't issue the punishment correctly. Also, after this update, APVE could no longer correctly use command syntaxes where the arguments were NOT ordered exactly as %player% %duration% %reason%.
Also on August 19, I tried to upload the update to SpigotMC, but it just wouldn't upload. Because I forgot how to post an update on SpigotMC, I started clicking all the buttons to no avail. Eventually, out of anger, I abandoned my APVE SpigotMC page and put all my focus on Modrinth, BuiltByBit, and Hangar, where updates are published normally.
August 21 - Late August, 2026
On August 21, APVE v1.2.5 was released, becoming the first stable release after the previous beta versions. In v1.2.5, the FoolProof system and the logging system were improved again, and an audit-mode was added to improve administration and support.
Closer to the end of August, a conflict occurred between me and the owners of PoliticXServer. The owners were dumping heavy tasks solely on me and one of the idea guys, completely ignoring the fact that others either had no tasks or weren't doing them. The relationship between me and the owners was already tense lately, but the final requests—"Florian, go write a Towny addon" and "you and the idea guy come up with server rules and mechanics"—became the last straw. I cut off all communication with the owners as well as the participants in creating PoliticXServer. I don't regret this decision one bit, even if it hurt some of the participants. I got more time to support and promote APVE, and I became independent of anyone else.
August 23 - 26, 2026
On August 23, a minor APVE update was released — APVE v1.2.51, which improved the configuration error detection implemented by FoolProof, and also improved the default config.yml for a better Out-of-the-Box experience.
On August 24, APVE v1.2.6 was released, which fixed an NCI bypass where a player could type b a d w o r d or ba d wor d and not get punished. After this update, APVE got one step closer to the status of being one of the best chat filtering plugins.
On August 26, APVE v1.3.0 was released, adding a player violation notification system, a new punishment block filter — STAFF_INSULT, and permissions to bypass punishments.
August 26 - September 5, 2026
From August 26 to September 5, I decided to take a break from development and make a YouTube video about APVE's effectiveness to promote the plugin. However, during filming, a few critical bugs were found that I had introduced in the v1.3.0 update.
On September 5, I released APVE v1.3.1, which fixed a critical bug with FAMILY_INSULT detection. Previously, the plugin punished for simply mentioning a pronoun found in family-insult-word/family-roots. Now, it allows the mention of pronouns, but if it finds insult-words/bad-words next to it, APVE perceives it as a FAMILY_INSULT, which makes sense. Also, the v1.3.1 update added the /apve check {String} command to quickly check inputs for violations directly through the console where the server's Java process is running.
September 5 - 22, 2026
From September 5 to September 22, I decided to take another break from development and, alongside it, shoot a couple of YouTube videos about APVE and try to advertise it on other social networks. I ran into problems with the latter: regular admins didn't want to configure the settings, which was one of the most crucial steps after installation for APVE to work correctly.
That's when I made the decision to radically improve the Out-Of-The-Box experience by adding automatic localization application based on the system's locale, adding 1,456 server names to the ad-words dictionary in the default config, switching to miniMessage, and auto-applying command syntax depending on the installed punishment plugin. All of the above was added in the new v1.3.5 update that came out on September 22.
October 2 - 4, 2026
From October 2 to October 4, I added Folia support to increase APVE's popularity and reach a broader audience. I chose to implement Folia support using FoliaLib, as other libraries like MorePaperLib or creating a standalone custom task scheduler felt too complex.