Quick answer: Godot 4 late-joining clients seeing replicated positions jitter as snapshots come in? Initial state arrives but interpolation hasn't started - implement an initial snap-to-position.

Late join shows enemies moving via tiny teleports for the first second before smoothing.

Snap to initial position

First snapshot for an actor: snap. Subsequent: interpolate. Cleanest UX.

Or freeze input for one second

'Connecting...' overlay for the first second after spawn. Snap during, smooth after.

Verify via state log

Log first 10 snapshots per actor. Visible spread = interpolation isn't seeded.

“Late-join state is a fresh subscription. Interpolation needs a baseline.”

If late-join is common in your game, the snap-then-interpolate pattern is mandatory. The visual smoothness is significant.

Related reading