In my game players are able to name their ships, however most of the prefixes (like SS, HMS, ORP) don’t even pass through the filter. Because there is obviously nothing inappropriate in these prefixes, I’ve created a function which scans the names and if it finds any known prefixes (only at the beginning of the name), it cuts them out from the text which is later filtered. After that, it’s connected back to that text if it passed through the filter. This way, prefixes avoid being filtered. Am I allowed to “improve” the filter like this? Can I add this function to my game without any risk that I will get moderated?
I would personally ask info@roblox.com about this question, this does not seem like something most of us could really give you a good answer on but I personally think it’s fine but I highly recommend emailing ROBLOX to ask about it.
I guess that counts as “bypassing” the filter and that’s a gray zone… You could use it legitimately and allow certain prefixes only, but someone else could do the same thing except allowing words that are inappropriate. You would do the right thing but you would still be moderated…
I would prefer to avoid that hassle with the moderation team, and, instead, I’d add a dropdown list or something similar with the allowed prefixes.
Example:
Also, you can always request a review on the text filter here.
First of all, It’s a good idea to inform Roblox that these words are in the filter unnecessarily.
In the meantime, I wouldn’t wait for them. A good workaround would be to allow the user to choose preset prefixes such as the ones you’ve listed (which I think would work) before customizing their own name.
I mean, I can see problem with this. Something like the SS Hit could be considered rude if you look at it too closely.
The filter is supposed to rely on context, so theoretically it could recognize that case independently.
What you are doing is technically not allowed, no. You may not replace or cut out words in sentence before filtering and substituting them back in afterwards. This circumvents the whole context-sensitive filtering that the text filter applies (there is not really a specific white/black list).
@CodingLucas has a solution that would be allowed. Keep in mind that you still cannot substitute this in chat, but it would be alright for showing in UI labels on their own. (i.e. “SS” | “name of the ship that the user put in”)
Would I be allowed to save the names generated with that solution into Datastore, without a risk of being moderated?
Keep in mind the following:
- You don’t need to filter the name for the person who wrote it.
- However, if you store this name, and then show it to the user again later on, it does need to be filtered because it is in a different session then.
What I recommend doing:
- If the user creates a ship name in the current session, store it unfiltered, and show it to them unfiltered. (and show it filtered to other players, of course)
- If the user loads a ship that they made before, load the unfiltered name from datastore, filter it for everyone who sees it including the author, and then show it.
- Keep the ship category separate from the ship name. Filter the ship name only, not the combination of ship category + ship name.
Always store unfiltered strings in datastores and filter them when they are loaded as needed, because the filter might change over time.
Currently, the filter exists to not allow malicious messages. Although some words may truly be on the blacklist for no reason, adding the ability to move any words to the whitelist would give the ability to use profanity or otherwise suggestive language. I understand that many users (me included) think that the filter unnecessarily blocks certain words, but being able to bypass the filter would be like a Christmas present to malicious players.
I think a good feature would be having a whitelist;
TextService:AddToWhitelist("ss")
Automatically converted to lowercase.
Although this may cause issues with moderation - but maybe some sort of system could be looked up to show the whitelist for admins visiting the game?
A quick fix would be to implement a filter for the whitelist for any bad words - since this isn’t context based, it’s much easier to implement.
Since no one has cited an official source yet, the official answer is no:
You would need to post a feature request for this.