Words that would be considered “bad” words are passed around quite frequently in the online community, and I want my game to be a family-friendly online community platformer game. So should I program in bots that clear bad words? I feel that it would lead to people complaining that the computer censored a part of a name. People could also cheat the system by spacing the letters apart, but trying to censor that would cause even more false positive issues. Should I act on this issue or should I let a flagging system handle the wrongdoers?
Is it necessary to add name filters to in-game text editors (for games steered towards a family audience)?
It's not possible to prevent people who want to communicate, from communicating.
Here is what I've found for myself. This is how I would build the communication system for a “family friendly” system, whatever that means. (I have some experience with this from helping build and run IMVU and Roblox, but this is explicitly NOT their particular policies)
The systems that I've found work better, are systems that filter WHO gets to communicate to who, rather than WHAT they say.
The one thing you'll want to filter out from text that's sent, though, is the user's password. When they enter it to log in, remember it in memory, and if it is seen in chat text, replace it with five stars. This will cut down on people fooling other people to enter their passwords.
You can have chat that's entirely based on a menu. This doesn't let any banned words in. Maybe this is the default for most chat.
Then you can have some mechanism to allow people to use text chat. For example, if you have reasonable age verification, you could allow text chat in contexts where all players are verified as X years or older (13, 18, whatever.) If you want a ban list there, that's totally possible, but, as you say, totally easy to fool. If you need to ban anything at all, ban the FCC list of “seven dirty words,” and no more. Also note that many words have double meanings, such as the bird “cock” versus the anatomy use.
Another context within which text communication could be allowed, would be if you have a friend system. Various games have a “friend code" system that lets little Mary talk to little Sue next door without others nearby hearing it.
Another way of doing it is to steer different audiences into different chats. If all the tweens go in group A, all the teens go in group B, all the above-18 go in group C, and everyone from group C who entered the word “boob” into the search bar goes into group D, then you'll probably not need to redact much at all, because the groups will largely share a consensus on topics and language.
All in all, “bad communication” is not about WHAT is being said, but about WHO says it. An online pedo grooming criminal will say bad things in a nice way. An adolescent trying on new words of excitement and disgust will say innocent things in a bad way. You should worry more about the former, than the latter. (Unless your target market is explicitly the evangelical Christian right in the US, in which case sweating about all the particular words is what's important. Not a big market overall, though.)
This gets tricky fast, and as h+ writes, who is generally more important than what.
UGC is always tricky, whether that is user names or custom levels. Players can turn just about anything in a game into user-generated or user-modified content. So look at who. If one player has restrictions set, all the players have the restrictions for the duration. If players choose to have restrictions removed, let them communicate freely.
At the strictest level, allow parents to turn off all communications. That means local play only.
Next up, parental controls to allow communications but no UGC. No player names, no custom levels, no custom anything, no chat. You cannot accumulate items in the game and stack them, you cannot customize what characters do. You can't accumulate enough splatters on the wall or ground to spell anything out. Identify players by methods other than their names, such as selecting which built-in character to play or randomly assigning colors to different players.
After that, allow carefully vetted names for players, and allow minimal communications. Names suffer from the Scunthorpe Problem. Also limit communications to pre-loaded phrases ("Attack my target", “Good Game”, “Thanks”, “Medic!", etc) but nothing more. Creative players will still find ways to abuse those, so keep them minimal. Still no UGC, no chat, no other communications.
After that is allowing UGC with pre-loaded assets, where players can only use objects you create yet still find creative ways to share them with others. If you can place items in a room (such as collectible furniture or planting in a garden) players will find a way to spell their favorite obscenities or draw out genitals and obscenities through careful placement of objects.
After that, is allowing player created assets, such as custom banners and custom wall markers, custom armor, or whatever is for your game. The moment you get popular you'll start seeing dickbutt and other characters introduced everywhere, going with the who over what mentality, allow players to disable this level of UGC.
Opening the flood gates completely allows voice chat or text chat, at that point the players are on their own.