When using TextChatService, Player.Chatted does not fire in a LocalScript when the LocalPlayer chats. Player.Chatted fires on the server regardless of the ChatVersion, but only fires on the client when using LegacyChatService. I know there are other ways to determine if a player chatted on the client when using TextChatService, but the documentation doesn’t say anything about not being able to use Player.Chatted on the client with TextChatService.
Repro
local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")
Players.LocalPlayer.Chatted:connect(function(msg)
print(player, "said", msg)
end)
warn("Using TextChatService?", TextChatService.ChatVersion == Enum.ChatVersion.TextChatService)