TextChatService API should be able to support direct chatting to currently offline users / users in a different server

As a Roblox developer, it is currently too hard to allow users (in-experience) to send direct messages to users who are either currently offline or in a different server. The intended API to check if two users can chat has a somewhat undocumented* limitation in-where it requires all users to be connected to the current server. This limitation is also present in the CanUsersChatAsync API, so it could be related to that restriction.


TextChannels in-themselves do not allow for cross-server communication, which I discuss in this topic. Although, even assuming that is fixed before April (in which I REALLY hope it is), we still have a problem for private-messaging features. Simply put, even if TextChannels receive support for offline users, we cannot comply with the CanUsersDirectChatAsync policy for any cross-server private messaging feature since the aforementioned API for checking if two users can chat doesn’t support users not currently in the same server.

This means players leaving messages for their friends alike an “inbox system” can not be supported given the current limitations. The CanUsersDirectChatAsync part of the policy also goes into effect much sooner than April (which is when the rest of the policy goes into effect), going into effect at end-of-January; so this is even more time-sensitive than the other policy-change.


If Roblox is able to address this issue, it would improve my development experience because I would be better equipped to create more unique communication features in my experience.

*The limitation is technically documented, albeit it is documented incorrectly. An error is produced if the request contains an offline user rather than the user simply being ignored as documented. It is possible that this behaviour is different if at least one user is in the server (as I only checked with one user, who was offline). However, the documentation still implies that a user is always ignored if they are not in the current server, which simply isn’t the case. On top of this, this limitation is documented in the parameters of the API rather than the description; I didn’t even notice it until I was finalising this post.

13 Likes

Bumping this topic since at the end of this month, the related policy to this goes into effect.

I’d like to add onto this topic, as it’s a feature i really need for my space game. The context for it would be a global chat for recruiting, discussing trades, wars, etc. It needs to be global, as my game is spread out across a galaxy. Also ability for private cross-server messaging among factions. The entire premise of my game and economy will rely on users being able to communicate anywhere, especially for the factions, as they need to coordinate. Roblox is limiting its potential by not letting developers implement properly filtered cross-server messages.

I noticed GetNonChatStringForBroadcastAsync exists, and it specifically says non chat, so it’s still kind of unclear if broadcasting across servers for the stated purposes would be ok as long as its a public chat, I also don’t see why Roblox would offer this API if developers could just use it for chatting.

If direct messages to the inbox is limited to friends only, I can kind of understand the limiting of user-to-user messaging in game, however if this is the reasoning, then at least allow 13+ or whatever age group through CanUsersChatAsync, it should be a requirement so its automatically handled.

Please please please allow us to do cross-server filtering.