Migrate to TextChatService: Removing Support for Legacy Chat and Custom Chat Systems

This update is absolutely Outright Intentional Throwback from the Roblox DEVS above. Like I KNOW there supposedly trying to “Improve” Moderation, and I like How there doing that, but now it’s a lot harder for future DEVS and normal DEVS to develop games with chat orientated systems and such.

Even DEVS with custom Admin commands are just going to have a tough time getting around this “NONSENSE.” I mean, Games like RetroStudio (Their messaging system), Chat Simulators, Etc. All of which will have to suffer/shutdown/remove features entirely because of this update and deprecation of the APIs. Now games that send messages to other players to other servers are Now Completely IMPOSSIBLE, Because of this update.

Now, it’s like a buck tun of Underrated/Beloved’d games are NOW going to be thrown back to the STONE-AGE. What A complete mess of a Unpresented assault on the platform.

I’ve already said this before (Probably…) I know ROBLOX is (Maybe now.) trying more and more harder to moderate things, I know I have some bad opinions about Roblox’s new chat and UI systems. But it is not even related to the chat system itself. ANY THING, Including CELL PHONES, CUSTOM CHATTING SYSTEMS, CROSS-SERVER MESSAGING GUIS, AND MUCH MORE IS NOW TOSSED IN THE RING OF FIRE!

Unless some DEVS or SOMEONE Can give me some answer, or this is solved. I may not want to continue developing games in the FUTURE, because of what’s possibly going on right now.

And it’s making me pretty sad. Retro Studio now is forced to REMOVE their messaging system, so first Roblox deprecates their messaging future, and NOW RS (RetroStudio) is DOING THE SAME, all because of THIS?

Unless something is solved, Then I don’t know. Just give me a quick comment or whatever, I have no clue at this very moment, I am flabbergasted and just mind blown about this update.

Kingcobrala1-
2024.

1 Like

moderating people who dont switch to the new chat and disabling it until they swap is uh kinda a bit too far roblox

3 Likes

@be_nj we’re planning to migrate our game RoCitizens to the new TextChatService, however it is missing one of the most fundamental events: being able to detect when chat window has opened/closed.

We use this to position a Quest GUI in order to save screen space. The current best option is an endless while true do loop where we check StarterGui:GetCore(“ChatActive”), which is clearly a very hacky implementation.

Any ETA on when we’re getting useful events around chat opened/closed state?

Actually just found a hacky life hack solution minutes after posting this!

ChatWindowConfiguration does not fire any .Changed events when the chat is toggled, but ChatInputBarConfiguration.AbsoluteSize changes by a few pixels. So you can use ChatInputBarConfiguration.Changed connected to a StarterGui:GetCore(“ChatActive”) to see if the chat is active or not!
image

Here’s what we do now to figure out the chat window size too, take note of the arbitrary +10 pixels on each one since we don’t know the padding between the elements!

I have a game that uses legacy chat. It would be ok if it weren’t for one problem. There are commands in the game that play custom emotes, and they DON’T WORK in the new chat. I WILL NOT switch to the new chat as long as this problem exists!

there’s now a newer TextChatService solution for the old ui:

it replicates the late 2016-now UI while @c1rcuitbent 's solution is based on the mid 2016 UI

1 Like

Absolutely love how the engineers claim that TextChatService is better when we have to make hacky workarounds like these. They stopped replying anyway after the backlash.

1 Like

I’m always in favor of replacing GetCore calls with proper APIs. To confirm, you are concerned if the chat top bar button is selected only? If we have faded out due to inactivity, that would likely be different, but probably also useful property

2 Likes

Correct. Main use case is something as shown here:

Once again, how exactly am I supposed to port this over to TextChatService?

image
image

The special game headers are one message using RichText, and have no owner player. It appears that I can’t pass certain toggles or anything that indicates that a player deserves a special chat tag or chat color.

This, along with the fact that TextChatService adds some serious memory overhead (all of this just for text, btw) to my game makes this look like some kind of rushed move to introduce some kind of intricate system to collect more telemetry at the expense of the developer.

5 Likes

They aren’t moderating experiences, but they’re doing it to experiences that are breaking guidelines and using legacy chat to make unfiltered messages as an example.

Your game is going to be fine.

I don’t mind this update but I feel like we should’ve had know about this a bit more ahead of time even if some of the features we have now weren’t ready but that’s just me.

Uh roblox…

This is a terrible update. I have broken my back making a custom chat system that allows for MANY for features that TextChatService, properly implemented TextService chat filtering (TextFilterResult:GetChatForUserAsync) and built a moderation system…

Only for all of my progress to be halted because of this terrible change.

Please AT LEAST allow properly filtered custom chat implementation.

1 Like

Am I getting an incorrect Error message here?

local function CreateWhisperChannel(playerObj, player2)
    local directChat = TextChatService:CanUsersDirectChatAsync(playerObj.UserId, {player2.UserId})
	-- check if we have any eligible participants
	if #directChat > 0 then
		local directChannel = Instance.new("TextChannel")
		directChannel.Name = `RBXWhisper:{playerObj.UserId}_{player2.UserId}`
		for _, participant in directChat do
			directChannel:AddUserAsync(participant) -- Errors here
		end
		directChannel.Parent = TextChatService:WaitForChild("TextChannels")
		return directChannel
	end
	warn("Could not create Direct TextChannel. Not enough eligible users.")
    return nil
end

Errors at the API call TextChannel:AddUserAsync(participant), am I doing something wrong? TextChatService.ChatVersion is clearly set to TextChatService

Edit: The fix was parenting the TextChannel First, and then doing AddUserAsync

Why is team create chat being removed, even though it has gotten faster and more responsive in recent years, still quite a bit of people like I use it.
Team create chat could just get a lil overhaul and itll be good!

5 Likes

Moderation action will only happen to creators who intentionally bypass the disabling of their chat while still not migrating to TextChatService.

Is there an official server sided chatted event equivalent for TextChatService in the works?

2 Likes

“experiences” sound dumb. Good that they ain’t moderate my game.

Really need this!

In Adonis we override the ShouldDeliverCallback but we don’t log chats through there for administrators, only via player.Chatted which still seems to be something the client fires, so exploiters can get around chat logging.

Of course we can log via the callback but we do offer a secondary method that allows developers to turn this off and we use a secondary method for muting players.

Please we need a dedicated server-invoked event to fire when a message is sent at all! Would greatly appreciate it.

2 Likes

Why remove team chat??? Can you at least re-add it with ‘parental controls’? It’s a crucial tool for me and my friends when we develop!