Player.Chatted not working most of the time

Hi, I want to detect a chat message for my game, but Player.Chatted seems to be incredibly buggy for some reason (or I’m just using it wrong). The only one that actually prints a message is the one in the PlayerAdded block, but not the CharacterAdded block. The one in the local script also doesn’t work.

-- script in serverscriptservice
game.Players.PlayerAdded:Connect(function(plr)
	plr.CharacterAdded:Connect(function(char)
			plr.Chatted:Connect(function(msg)
				print(msg)
			end)
		end)
	end)

	plr.Chatted:Connect(function(msg)
		print(msg)
	end)
end)
-- local script in startercharacterscripts
game.Players.LocalPlayer.Chatted:Connect(function(msg)
	print(msg)
end)

Thank you in advance!

Pretty sure you shouldn’t have a chatted call inside of the .CharacterAdded connection since the player always exists and is not removed on character death. “Plr” exists until the player leaves; a character exists until the character respawns.


I don’t think .Chatted works on client. If you need the message on client, maybe send it through a remote. Looks like this works on client though.

That makes sense… However I have seen a few instances of Player.Chatted working in local scrips: How to detect if a player said something in chat?

It did work before 2022 I think. Use OnIncomingMessage if you want it on the client (link above).