Wordlist based moderation is just not working. In terms of preventing toxicity, its going nowhere. A player who wants to say “your mom is <insert banned word here>” Just has to wax poetic. Insults like “your strategy reeked of the essence of a commode” and “your mother’s face is reminiscent of <insert animal here>” are quite insulting. And no list catches them. The naughty word list just ends up being annoying to work with, and a never ending list of words to update in an attempt to sop bad word usage.
There are MUCH better ways. A good start would be the ability of community members to flag language after a match has completed. Then if 50%, or 2 or more people (whichever is less) flag a player for language, the player chat logs get sent to chat gpt for a verdict on whether or not there were mean comments in the chat. The AI then hands out 24 hour matchmaking bans for bad language.
Another change that is needed is moderation of mods. Instead of a hard flag, the game could have a section for parental controls that allows players to set the parental controls for an account and lock them behind a password. Then, if a mod has potentially naughty words, the players can be blocked from downloading them based on the parental controls.
A hardlist of obvious swear words can still be used, but for the thousands of innocuos words that might be swear words in swahili that are words with different meaning in russian that are introduced by english speaking end users really shouldnt be flagging an entire mod. Think about it.
If you want a wholesome game with no griefing, no insults, and fair play, the best way to deal with it is not wordlists. The best approach is justice that is meted out by a custom trained AI. And as a bonus, if you can master AI based judgement for foul language, this creates a product you can sell to other videogames. This creates a product you could even sell to other products that have nothing to do with gaming. Removing abusive language is a problem that is cross domain, and you have the opportunity to make a real change, a real product, and actually change the world for the better.
As an aside, I find it somewhat disturbing that your data input for < and> is not sanitized. I shouldn’t have to escape those characters. Character input being interpreted as html code isn’t good at all. YOu really ought to also check someone cant sneak in javascript tags with the < characters. Its just bad practice mate. I really also ought to not have to do QA work when im browsing forums for fun.