Recently, the Roblox chat filter has been letting extremely illegal content through. The filter has also been extremely lenient and it has allowed for users to act inappropriate even beyond this.
The method of filtering to reproduce this has been FilterStringAsync() combined with :GetNonChatStringForBroadcastAsync() as well as the most critical TextChatService’s MessageReceived. Signs use TextService for us, radio + bubble chat and so on is handled by TextChatService.
Example of an user that was caught saying extreme illegal content through the filter, additional images also exist. The user has been reported to Roblox and NCMEC.
Expected behavior
Roblox chat filter should not let illegal content through the filter. I believe this is an extremely serious issue and I find it hard to understand why is this slipping through. Game is using TCS and the other methods for signs. There is NO custom chat used.
A private message is associated with this bug report
13 Likes

Also going past way more. Getting reports from several community members in other games.
1 Like
It is required for games with custom chat to use TextChatService for automatic filter handling, not TextService or legacy chat.
Furthermore FilterStringAsync does not know about chat context or is likely less updated, which can lead to what you’re seeing.
If you’re really sure that these games are in fact using TextChatService and have such proof (code), send game links here and ping dev rel.
Please refer to https://create.roblox.com/docs/ui/text-filtering
The issue is also passing bubble chat under TextChatService. I’ve forwarded the game IDs in my private report, as well as my Digital Safety Act (DSA) report for illegal content.
1 Like
That is exactly not for chat.
It even says ‘NonChat’ in API methods.
See:
https://create.roblox.com/docs/chat/guidelines
“For communication shared by users that can be seen by other users, even if it doesn’t need to go through TextChatService, you must ensure it goes through a text filter.”
Those messages are not from a chat window but from chatlogs that have been filtered for age groups with correct filtering. There is no other way to filter without TextService. For the radios, TextChatService is used for communications (via TextChannel) and the message passed there just fine.
TCS does not either support any filtering from their own API. The problem equally exists with signs, as well as any filteration. Last time I checked bubblechat went through TCS. I’ve forwarded the game IDs like I said.
Why do you find this to not be a problem? This is obviously a major issue, no matter what API it is → textchatservice literally lets it through as well (bubblechat). You’re acting as if child endangerment slipping through is a small issue, it doesn’t matter what is doing it.
Edit: TCS IS USED IN THE RADIO AND BUBBLECHAT, SO GOES THROUGH IT AS WELL.
1 Like
I agree this is an issue, I am not trying to protect criminals. But please understand that you’re likely misusing the API here.
Are you trying to obtain a filtered message on server and then send it to clients? This will fail because server receives unfiltered messages. So if you’re trying to log messages this way, it just won’t work.
So if a user were to write something extremely illegal + TOS-breaking on a sign, it’s all fine and dandy since it wasn’t said through chat? Not to mention, UGC signs aren’t subject to roblox’s age groups meaning everyone of any age could see that message if someone WERE to write it on a sign… This argument is heavily null. I do agree with having to move custom chats to utilize TextChatService, but I think we’re ignoring the big picture here? 
2 Likes
TCS is used properly, I just confirmed the API check. Can’t control it on signs.
TextChannel is used properly and the message is filtered, it was tested by our testers just now → always has filtered fine before. (Ironically I just checked everything is all TCS on it, all messages received are via TCS). Printed a test out of MessageReceived in the client as well.
As referred in your guidelines link, " For sending and delivery, these types of communications must each go through a TextChannel instance. This ensures messages respect privacy settings, are visible to moderators, and are properly text-filtered." → TextChannel instance is used, you can’t really do TCS from the server (receive msgs).
I think you’re missing the issue here, this is extremely illegal and it should not be slipping through ANY side. My apologies that I didn’t include the TCS detail in a better way.
1 Like
And you’re using TextChannel:SendAsync() from client?
The game is perfectly up to date with TCS (in my additional post, the second screenshot is from Adopt Me for example). The issue as said is also occuring in signs (can’t impact with TCS), as well as radios (tcs) and bubble chat (tcs). I find your denial of this extremely concerning as this is a major issue and you are seeming to ignore it. I’ve provided Roblox with the correct place IDs as well as done a DSA report on the user.
I genuinely don’t know what your problem is? This is about protecting children and I’m trying to do so by spreading awareness about this issue so it can be fixed. Do you not believe that this is a serious felony from the users doing this, as well as a failure to protect the players of the platform?
I’m literally just asking if you use TextChannel:SendAsync(). Could you provide proof that you’re correctly using TextChatService? Like source code, parts of where you use TextChatService only.
I just tested on my side and chat filter works just fine.
And once again I’m not even trying to be rude or anything. I don’t know what you’re freaking out for as if you have PTSD (sorry if you do).
If you are encountering the problem right now in adopt me, where filter fails, ping developer relations? I’m not an engineer or anything so I can’t do much.
You have been provided with enough to be seen. Why are you so insistent on the position you are in right now? Nobody is saying the filter is failing right as we speak, I am saying that serious stuff such as felonies get through that never should.
Engineers can probably search my game. I’ll happily provide my sources to them as well. If you aren’t an engineer, maybe you shouldn’t come here and aggressively try to prove my point as that it doesn’t matter. That’s the thing, the filter changes → it should not be able to slip through at all, recently it seems to just have slipped through more often.
I’m personally only noticing that you might have some carelessness for child safety and I personally hate pedophiles, which is why the issue is also personal for me.. Both MessageReceived and SendAsync() are used. (SendAsync is always used when an user sends a message in Roblox)
The purpose of this topic here is for engineers to take a look at it. Not for us to beef around, they have access to their tools and can sort the situation out. The bug report should only have important communication. Nobody should dismiss that this is NOT an issue. I wish you a very good day and I hope you relook on your comments, as well as consider how endangering this actually is.
Okay thank you for being polite, since MessageReceived and SendAsync() are used, I can’t help further (I was trying to help, not be aggressive and prove you otherwise). SINCE chat filter fails like this, you’ll need to contact Roblox support or dev rel directly. There are no other ways.
What’s with all this arguing? Isn’t the point of this post just to inform Roblox engineers that the filter is failing to censor inappropriate conversations? 
2 Likes
Appreciate it, I also get your point of view but I already gave your answer instantly. However, this is the point to inform engineers that the filter is failing.
Honestly, I have no idea. It is probably best that I move it to a new bug report? (current one seems way too overclogged)
No need to post a new one, admins get notified about every bug report and making a new one will get it marked as a duplicate and also cause unnecessary clutter which may effect the validity of this one. As far as I know, they have a schedule to decide how severe bug reports are and if this seems urgent enough or gets out of hand then this will likely be reviewed today or some time this week. I’d say just leave it as it is because you have done your part and let an engineer review it when they get around to it :D
1 Like