Updates to Chat Privacy API + New Account Indicators + Changes to Text Filtering APIs

Hello Developer Community,

We have a lot of announcements for you all today. I apologize in advance for the wall of text, but everything here is very important.

New Chat Privacy Features

This week we are adding privacy control settings for in-game chat and app chat. Users and parents will be able to disable chat entirely or restrict it to only friends through an account setting. In order to accommodate this update some of you may need to change how chat and other messaging systems are handled. Thankfully this should not impact most developers out there, even developers using custom chat should not need to update code (this is not guaranteed and depends on how your code is structured)

You must update your game if it does any of the following:

  • Overrides default chat with a previous version
  • Replaces default chat with a custom implementation that does not individually check sender and receiver
  • Any custom tools that allow players to send text to other players

We will be adding new methods to the API today to support these new privacy settings for in-game chat. The default chat will also be updated to correctly use this. The new methods will be added to the Chat service and look like:

bool Chat:CanUserChatAsync(int userId)

Returns false if the user has chat disabled.

Local scripts will throw if called for any user other than the local player.

It will throw if the given user is not connected to the current server.

bool Chat:CanUsersChatAsync(int userIdFrom, int userIdTo)

Will return false if the two users cannot communicate because their account settings do not allow it.

Only allowed from server scripts. In the future local scripts will be able to check if the local user can communicate with specific users.

Currently it will throw an error if both users are not both online in the current server, but in the future we will expand this to be usable for offline users or users who are in a different server.

In most cases it will return immediately. May yield in the future in some cases if called from a local script, before friend status is known, or if the one of the users is not in the current server.

User inputted text like team names, pet names, or shop titles that is not used as communication does not have to use CanChat checks.

If this affects your game, you will need to update it to use this API to respect a user’s chat privacy settings immediately to avoid any moderation actions. If you have questions about implementing this API please reach out to developer relations DevRelations@roblox.com with questions. If your game is using custom chat, and not filtering correctly for users that have chat turned off, your game will not be playable once these updates go live.

If you would like more information on these changes please refer to the wiki article located here.

We know these changes can be challenging and they have been coming fast, but user safety and privacy is always important. Thank you for working with us as we continue to ensure every user in our community is safe. We are also working on plans so that future changes can be rolled out smoother for everyone.


Changes to Text Filtering API

FilterStringAsync and FilterStringForBroadcast

Roblox is a platform with infinite possibilities, and tons of community created games and content built up over the years. Some of the games on Roblox are nearly 10 years old and are still working; sometimes even better than they did when they were first published. Achieving this has been no small feat and is an ongoing collaboration between the Roblox team and developers.

Given that, supporting new features like chat privacy settings in all games in Roblox is always challenging, but is important to make sure the privacy of our users is respected. In order to make some of these older games with fully custom chat or communication features comply with the new privacy settings we will be making changes to our existing text filtering APIs.

Starting this weekend

FilterStringAsync will return a blank string instead of filtered text if source user and the target user aren’t allowed to chat with each other because their privacy settings do not allow it. FilterStringForBroadcast similarly will return a blank string if the source user does not have chat enabled.

We realize this may block users with chat disabled from saving text, where it is not our intent for it to be blocked, like pet names, this change is necessary to keep older games that haven’t been updated safe for those users. We will be listening to feedback and working to implement a good long term solution for developers soon. This will most likely come in the form of a new set of text filtering APIs similar to the old ones, but with more clearly defined uses cases and straightforward rules for their use to make using them correctly much more straightforward than it is now. We’ll also be working to better support new features developers are building now that are currently poorly supported by the existing APIs, like offline and cross server messaging systems.


Displaying account age information in UI and <13 chat filter changes

All accounts are receiving another form of protection to ensure parents and users are being protected. Starting this weekend all accounts will now have a visual indicator of the accounts age at top of the in-game UI. This applies to all accounts and will specify whether a user is over 13 or under.

This will add a small UI element to all accounts, but beyond the small UI change this should have little impact on developers. Here is a mockup of what this will look like in-game:



Under 13 users are also going to see a change in what words are allowed through chat filters. Starting today numbers (both numerical and written) are blocked for under 13 users. This is part of our continued efforts to better protect under 13 users. We’re working on being able to allow trusted under 13 users to say numbers again and will update you on this as soon as we can. We understand that numbers are used in many games.

Sincerely,
Developer Relations
DevRelations@roblox.com

58 Likes

I want to remind everyone that while earnest discussion is encouraged. Negative comments, anecdotal stories, and memes will be removed from this thread without warning.

13 Likes

This topic is now a banner. It will appear at the top of every page until it is dismissed by the user.

3 Likes

Will the site search functions be updated so that under 13s can search for usernames/items with numbers without them being blocked?

20 Likes

I got a few questions:

  1. in a game I am working on, you are allowed to set a nickname. When you submit the nickname to the server, it goes through all the players and sees which one filters with the least hashtags- and saves the least hashtagged version to the player who set that nickname. When they chat, their nickname is filtered once again to each player the message is being sent to. Will I be forced to change this back to using FilterStringForBroadcast and go back to the simple method?

  2. how will we be able to test communication between a player that has messaging enabled and one that doesn’t?

  3. can I leave the game I’m working on without the two new functions in the chat system, since it detects automatically if a string is empty and doesn’t send it?

  4. can we not have that intrusive UI? There has got to be a cleaner way to show that.

8 Likes

Hey if it makes it easier to ease up the filter its fine by me
and it makes parents happier all at the price of a single conditional statement

P.S. abc for gf?

17 Likes

Do you mean numbers that are the only content of a particular message (IE simply chatting “7”), or numbers that are part of a longer message (IE chatting “there are 7 cars over here”)?

12 Likes

Is there an at least tentative date for a new Filtering API, or should we just assume Soon™, and plan accordingly? :slight_smile:

In addition, as Paul said, this could negatively impact the website’s experience even further by filtering users with numbers in their username from the search bar. Are there any plans for this to be addressed, or will the filter not be changing for the website?

For a more general question, will the display for your account being under/over 13 be removed if the relevant CoreGui is set not to display (presumably topbar, but you never know)?

6 Likes

New CanUserChat API isn’t out yet, but it will be releasing sometime today very soon.

6 Likes

Ah, sorry, I misread the original post as saying that there were new API members coming for certain. Specifically, this part: [quote=“JParty, post:1, topic:33867”]
We will be listening to feedback and working to implement a good long term solution for developers soon. This will most likely come in the form of a new set of text filtering APIs similar to the old ones, but with more clearly defined uses cases and straightforward rules for their use to make using them correctly much more straightforward than it is now.
[/quote]

1 Like

This seems quite problematic to me. If a pet name isn’t shown to other players, then it doesn’t need to be filtered (AFAIK), but it does need to be filtered if it does show, and can still be used to communicate text as other players can see it. I could easily constantly change my pet’s name to have a conversation, and even if it was redistricted to a single word, say “Hows” “it” “going?”.

Why is this the case? If I was under 13 and… oh say… wanted a vanity plate in Ultimate Driving (by TwentyTwoPilots) that said 1337, that would be blocked. I can’t think of a way that just pure numbers would prevent unwanted conversations excluding the numbers “18+” and “21+” in certain contexts.

Personally, I think the parent disabling chat out right is extreme, but it is a nice parental setting to have with all of ad-revenue earning headlines.

6 Likes

and passwords

and I think that would also mean numbers in links, like the spam links

3 Likes

Oh, I see.
Also, never heard the third “dumb number”.

1 Like

As long as this also helps filter phishing bots I’m happy.

2 Likes

I have a custom chat that allows users to post ONLY preadded images (no text) to chat. Do I have to remove that functionality for safechat users?

3 Likes

Out of curiosity, what’s the reasoning behind this?

5 Likes

I assumed it was to allow parents to make sure that children arent toggling it off, however I’d like to know for sure as well. Maybe Apple has a rule about it? (speculation) It doesnt seem too intrusive.

3 Likes

The proposal for new text filtering APIs in review. We’ll try to post more details about it as soon as we can.

3 Likes

Presumably not, given it’s not text-related, but I suppose I could see situations where images could be strung together in a way that wasn’t exactly friendly to Roblox’s overall reputation and userbase.