Running print(tx.ChatVersion) will result in an output of Enum.ChatVersion.LegacyChatService.
Changing the chat version is no-longer an option as a Property under TextChatService as Roblox has made it deprecated.
For some reason, your studio has gone back to the Legacy Chat and not automatically changed to Enum.ChatVersion.TextChatService
Since you tested this in a fresh baseplate in the video as well, this doesn’t appear to be an issue with the specific place file.
Your Studio is somehow still initializing the experience with LegacyChatService, even though new experiences should use TextChatService.
So the next thing I’d check is whether this is specific to your Studio installation/version or whether Roblox is incorrectly assigning LegacyChatService to newly created experiences.
That is… the strangest issue I have ever seen
Also, this wasn’t exclusive to new places. This happend to me in existing place files, with TextChatService enabled (screenshot attached below)
Every single place file I try out is broken, I deleted everything in the roblox “versions” folder then ran the installer again, but it was still broken.
task.wait()
local tx = game:GetService("TextChatService")
print(tx.ChatVersion)
Will result in the output changing to Enum.ChatVersion.TextChatService
However, removing the task.wait() will result in Enum.ChatVersion.LegacyChatService.
From here, I think it will just be a Roblox Issue.
Edit: Yeah, just a Roblox Issue.
This is impacting players in our game. For reference we use a custom chat implementation, we rely on the .MessageReceived event firing for a message to actually be sent in the chat.
It is not impacting all players but is impacting a growing number and once a user is impacted they stay impacted, suggesting this might be related to a recent client release or change that is propagating to users.
The requirement for TextChatService.OnIncomingMessage is why I hate TextChatService. I think the client-only requirement is stupid. This makes it incredibly hard to make filtering systems or chat control systems. The legacy system had a server-side Chatted event is why I liked the legacy system better. And for others this makes your Chat filtration system EASY to bypass if it’s on the client. This TextChatService system is bloody stupid, and I hate the client requirement. Can only be implemented on the client. This requirement is bonkers and I hate it.