Minecraft Vanilla Server has a native built-in option for filtering the text of messages sent by players. The option allows masking selected parts of the message if deemed vulgar/harmful or otherwise violating the standards and rules.
A large number of Minecraft servers around the world struggle with issues such as spammers, bots advertising other websites and servers, and a high volume of profanity that is difficult to catch. Many of these servers still run on Minecraft Vanilla, which makes it impossible to install dedicated chat moderation plugins. In such cases, an API like mine can be very useful.
The API does not block users, kick them from the server, or mute them. This system censors selected fragments of messages or completely blocks the message from being sent to other users.
The entry for this configuration is located in the "server.properties" file in the line containing "text-filtering-config="
hello adventurer!
On this page, you will find details about the API I created for the text-filtering feature in Minecraft Server, as well as how you can use it for your own purposes.

After a player sends a message, the game automatically forwards it to an external API server, whose task is to check the content of the message and appropriately respond to the game with what to do with that message.
My text-filter currently works by hiding vulgar messages in Polish (my native language) and English, and hiding the content of sent links.
The Minecraft server and the server API communicate in real-time, exchanging information about what the player wrote, what needs to be censored, and/or whether the message is suitable to be sent.
Additionally, the PHP backend I wrote records all unique words used, so that from time to time the administrator can review them and move selected vulgar or inappropriate words to the filtered words list.
Everything was tested and used on versions 1.19+, 1.20+, and 1.21+.
More information about my discovery of this function and how it works can be found in my article – >here<.
My text-filter currently works by hiding vulgar messages in Polish (my native language) and English, and hiding the content of sent links.
The Minecraft server and the server API communicate in real-time, exchanging information about what the player wrote, what needs to be censored, and/or whether the message is suitable to be sent.
Additionally, the PHP backend I wrote records all unique words used, so that from time to time the administrator can review them and move selected vulgar or inappropriate words to the filtered words list.
Everything was tested and used on versions 1.19+, 1.20+, and 1.21+.
More information about my discovery of this function and how it works can be found in my article – >here<.

Sure! You can see what and how my API filters. Below you'll find a text field to enter a sample message and a field showing the message processed by the API, which you'll also see on your server.

If you would like to use my ready-made API, which I continuously expand with new words, or if you prefer to get the full source files to implement on your own hosting/server, I can make that available to you:
1. I will enable you to use my API (I will send a ready-made JSON entry for server.properties containing the API token) after a donation of at least 50 PLN (about 12-15 USD) made via the "Donate" button at the top of the page.
Due to the specifications of my server, the first offer is intended for private users who do not run large multiplayer servers. I reserve the right to invalidate the token in case of an excessively high number of requests to the server and/or in case of abuse
2. I will send you ready-made PHP+JSON+TXT files (engine, API data, the word database I already have) to handle requests from the Minecraft server after a donation of at least 150 PLN (about 35-45 USD) made via the "Donate" button at the top of the page.
When making a payment, provide a valid real email address (this will be used for communication) and optionally leave a message using my >contact forms<. I will get back to you within a maximum of 12 hours with the ready files.
If you have any questions or doubts, please contact me before making a purchase via the >contact forms<.
1. I will enable you to use my API (I will send a ready-made JSON entry for server.properties containing the API token) after a donation of at least 50 PLN (about 12-15 USD) made via the "Donate" button at the top of the page.
Due to the specifications of my server, the first offer is intended for private users who do not run large multiplayer servers. I reserve the right to invalidate the token in case of an excessively high number of requests to the server and/or in case of abuse
2. I will send you ready-made PHP+JSON+TXT files (engine, API data, the word database I already have) to handle requests from the Minecraft server after a donation of at least 150 PLN (about 35-45 USD) made via the "Donate" button at the top of the page.
When making a payment, provide a valid real email address (this will be used for communication) and optionally leave a message using my >contact forms<. I will get back to you within a maximum of 12 hours with the ready files.
If you have any questions or doubts, please contact me before making a purchase via the >contact forms<.

After making a one-time donation to me, I will contact you as soon as possible via the email address you provide to arrange the details. Depending on the donation amount, you can expect:
In the options included when using my API are:
1. A CONFIG file containing the text-filtering-config entry, which must be added to the server.properties file of the server.
2. An API file containing a unique API token (each buyer receives their own).
3. A LICENSE file containing the original GPLv3 license text.
4. A README file containing installation and usage instructions.
In the options included when downloading all files/configurations are:
1. A CONFIG file containing the text-filtering-config entry, which must be added to the server.properties file of the server.
2. A GenToken.sh file generating authorization codes for selected tokens.
3. index/join/leave.php files used to handle requests from the Minecraft server.
4. A textfilter.json file containing an array of supported API tokens.
5. A word.txt file containing the list of filtered words prepared by me.
6. A .htaccess file that allows proper access to files on your Apache2 server.
7. A LICENSE file containing the original GPLv3 license text.
8. A README file containing installation and usage instructions.
With each donation, you also receive my support in setting up the API. However, it’s important to note that this contribution does not include long-term guarantees or ongoing technical support.
In the options included when using my API are:
1. A CONFIG file containing the text-filtering-config entry, which must be added to the server.properties file of the server.
2. An API file containing a unique API token (each buyer receives their own).
3. A LICENSE file containing the original GPLv3 license text.
4. A README file containing installation and usage instructions.
In the options included when downloading all files/configurations are:
1. A CONFIG file containing the text-filtering-config entry, which must be added to the server.properties file of the server.
2. A GenToken.sh file generating authorization codes for selected tokens.
3. index/join/leave.php files used to handle requests from the Minecraft server.
4. A textfilter.json file containing an array of supported API tokens.
5. A word.txt file containing the list of filtered words prepared by me.
6. A .htaccess file that allows proper access to files on your Apache2 server.
7. A LICENSE file containing the original GPLv3 license text.
8. A README file containing installation and usage instructions.
With each donation, you also receive my support in setting up the API. However, it’s important to note that this contribution does not include long-term guarantees or ongoing technical support.

This project is licensed under the GNU General Public License version 3.0 (GPLv3).
Any distribution of the original or modified code requires preserving the information about the original author and the original license. Modifications, adaptations, or derivative versions must be clearly marked and shared under the same terms.
Distribution of the code without complying with these requirements is prohibited.
This project comes with no warranty or guarantee. In particular, in case of changes by Mojang in the function mechanisms which may affect the script functionality, I as the author am not responsible for loss of its effectiveness. Nevertheless, I will strive to adapt and maintain the proper operation of the software.
The full license text is provided below:
Any distribution of the original or modified code requires preserving the information about the original author and the original license. Modifications, adaptations, or derivative versions must be clearly marked and shared under the same terms.
Distribution of the code without complying with these requirements is prohibited.
This project comes with no warranty or guarantee. In particular, in case of changes by Mojang in the function mechanisms which may affect the script functionality, I as the author am not responsible for loss of its effectiveness. Nevertheless, I will strive to adapt and maintain the proper operation of the software.
The full license text is provided below: