I’m creating a serious roleplay game based around the concept of character development. I’ve created a custom roleplay name system where the player will pick a first & last name for their character when they first play the game. The name (along with other stuff such as age, race, nationality etc) are saved to a DataStore and appear wherever a name would appear in real life, such as on a driver license, uniform (Fire Department bunker uniforms, Police Department name badges).
I’ve got a couple issues:
Players want to be able to input their own names rather than pick from a list. The list also presents the issue of finite name combinations and, as I’ve seen in my previous games, these combinations run out quite quickly, leaving players struggling to get into the game.
Names are filtered in game chat. This makes it really hard to get into the roleplay aspect. For example, if a police officer stops someone and tries to identify themselves, what should be “Hello, I’m Officer O’Brien” turns into “Hello, I’m Officer #########.” This problem has put custom names off the table until now.
I’ve considered making it so that players can input their own names (the game is whitelisted with an audience made up solely of 15+ year olds) and leaving the field unfiltered - however, an administrator has to approve of the player’s name before it appears anywhere in game. I’m concerned that this would get my game deleted because of unfiltered text input.
Obviously I can’t disable the filter as that would lead to instant moderation action, as well as the fact I’d like to keep swear words filtered.
What’s the best way to get around these filters script-wise without getting banned? Is there a way to override the default chat filter to whitelist words?
I highly do not recommend doing this. If a name tags, they should pick another. If you do this, you could most likely get moderation towards your game, because you are overriding roblox’s chat filter to whitelist words, their tags system is advanced, if you put a few words in a table, or a couple of hundred, it would not reach Roblox’s chat filter system, they most likely have thousands of words that are blacklisted, this includes bypasses for words, I do not recommend overriding any system that Roblox implemented for the COPPA, if you do this, they would most likely instantly moderate you because Roblox does not want to lose the title as a game for all ages. So end statement, don’t do this without double checking with Roblox officials.
1.) A preset list of names for people to choose from. (Lets be honest this way isn’t fun or creative)
2.) If the name gets tagged then don’t update their nickname and tell them to try something else.
3.) Allow them to use their Username as a nickname. Some usernames get tagged when you FilterStringForBroadcast so just tell the server that they want to use their username which you would then not have to filter. Just tell the server to use .Name.
Obviously since you are going for a serious roleplay environment then #3 might not be great. #2 is probably your best bet.
You might be able to get away with a preset list of nicknames for each users. This wouldn’t require any text input from a user, however it would have to be updated by developers each time it was to be updated. This kinda depends on how you actually want your game to work though and you might want to verify that its okay to do first.
I’ve previously used a preset list of first & last names which people could combine together to make their name. The main issue with this, aside from not being able to have the name you want, is that it still can’t be said in game. If I went down this route, I’d need to be able to whitelist these names from the chat filter somehow.
Since you are doing a realistic style roleplay how about you whitelist things like “Officer” and other prefixes, so that will be applied automatically? For example if they are a police officer and the nickname they chose is “WaffleSlinger3000” then it would apply the prefix “Officer” to their nickname. Officer WaffleSlinger3000. Assuming you don’t already have it like this of course.
You could even be more advanced to detect certain strings within messages to then display certain text. Say i type “Hello my name is, /me.” You could set it up so that a string containing “/me” returns the users nickname and prefix in that spot. This could be done using a preset list or a simple first name they can choose (assuming the one name isnt filtered).
The thing is, the name is split into two parts - the first name and the last name. ROBLOX censors a vast majority of names and using a username is off the table. Regardless of whatever solution I get to the custom name system, I still ideally need a way to modify the chat filter to whitelist names. I know Firestone did something like this with their radio system.
Well you can always store the full name somewhere, concatenate the first name and the last name seperated by a space. And i know firestone did their radios so they could have calsigns, however i thought those were manually added and didnt need filtering. Could be wrong though.
I’m not sure anyone’s understanding my problem. The fact that the names are filtered IS the problem. I don’t want a way to check if a name’s filtered, I need a way to unfilter the names if possible - adding an exemption from the filter for a select few preset names so that instead of saying, for example, “Hello, my name is #### ###” it’d come through as “Hello, my name is John Doe.” Of course, everything not on the very specific list will still be subjected to filters. My game is whitelisted and is made up of mature players so the worry that a younger player would give their real name out doesn’t affect this.
Firestone has a table full of mainly codes & locations in their radio script. This is a whitelist of words, and they won’t be subjected to the filter. Everything else goes through the filter, but the whitelisted words aren’t. This is to avoid important information being tagged - which is exactly what I’m trying to do here, just with roleplay names in chat.
Read my reply again. Whitelisting from the filter is not permitted, especially when input is controlled by a client. This is done illegally and the game can be subjected to moderation action if reported and investigated.
I don’t mean whitelisting players from it, or disabling the filter altogether. I mean there are certain words that don’t break any rules that are picked up by the filter and hashtagged. As far as I can tell, they compile all the words that they need into a table, detect and remove them from the string, run the rest of the message through the filter and put the words back in afterwards. There’s no way for a player to abuse this, swearing etc. is still filtered. It must be permissible because they’ve been doing it for, what, 2+ years?
I’m not talking about whitelisting players or disabling the filter. Read my reply again, for the third time. Doesn’t matter if a word is picked up and tagged. Sanitising any and all client input with the TextService or a ChatService filter method is required, without exemption. Whitelisting is not permitted. Doing so is grounds for moderation action.
Being able to do something for a long time does not automatically equate to permissible. Evading the filter like this has always been illegal. Moderation doesn’t police content and needs probable cause or motive to investigate, which is often achieved by reports. Clearly there haven’t been enough if a game bypassing the filter like this hasn’t been taken down.
That is, provided they are supposedly whitelisting like your posts claim they are. I’m not sure about if thats true or not and that’s no one’s business either; that’s between them and moderation. Doesn’t help your case to bring up another game, worry about yourself.
I’m bringing up that game because it’s an example of what I want to do. I’ve seen the script myself, I know that’s what they do. It’s a very big game and I’m certain it would have been reported a billion times. Regardless, I’m not here to argue. I was making an example of what I was talking about and this is getting very off-topic. Thank you for your input.