player.Chatted firing twice

Where do you define Player? The only possible problem is that you have wrote multiple connections to an individual Player’s Chatted event, or that you have wrote multiple connections to PlayerAdded.

These are the only 2 times “player” was referenced before the chatted code.

I assume player will just be a simple “game.Players.LocalPlayer” at the top of the script.

Can you provide a place repo up until it breaks (remove unnecessary code to reproduce)? It’s hard to debug this here.

I can try to put the chatted event near the top of the code, this might solve the problem.