Quick answer: Send the emote selection to the server as an event, broadcast it to relevant clients, and play the emote on the corresponding remote avatar rather than triggering it only locally.

If your emote wheel or quick-chat plays perfectly for you but teammates see nothing, the trigger is firing only on the local client. Emotes need to travel through the network like any other gameplay event to appear on remote avatars.

How to fix it

1. Send the emote as a networked event

On selection, send the emote or quick-chat ID to the server instead of (or in addition to) playing it locally, so the action exists on the wire for others to receive.

2. Broadcast and replay on remotes

The server forwards the emote ID and the originating player to other clients, which then play the matching animation or callout on that player's remote avatar.

3. Throttle to prevent spam

Rate-limit emote and quick-chat broadcasts server-side so a player mashing the wheel cannot flood everyone, which also keeps the replicated events lightweight.

Catching the ones you can't reproduce

The hardest version of this to fix is the one you can't reproduce — it only happens on a player's hardware, OS, driver, or save state, under conditions that simply aren't present on your machine. A report that says “it crashed” or “it froze” gives you nothing to act on, so the bug survives release after release while quietly costing you players.

Automatic error capture closes that gap. Each failure arrives with its full stack trace, the device and OS, the build number, and a breadcrumb trail of what the player did right before it broke, so even a failure you have never seen becomes a specific, reproducible issue. Fold identical failures into one signature ranked by how many players each hits, and your worklist sorts itself worst-first instead of arriving as a stream of vague complaints.

This is where a tool like Bugnet earns its place. Its SDK captures every Godot error automatically with the full stack trace plus device, OS, memory, build, and game-state context, folds duplicates into one grouped issue with an occurrence count, and ties each to the build it first appeared on — so you fix the problem that hurts the most players first and confirm it is gone when its signature disappears from the next release.

The bug you can't reproduce isn't gone — it's just invisible until you capture it from the player's device.