Quick answer: Rubber-banding, where a player or object snaps back, is caused by netcode correcting a mismatch between the predicted and authoritative positions, usually from latency, packet loss, or prediction errors. The server's correction overrides the client.

Rubber-banding, the jarring snap-back of a character or object to where it was a moment ago, is a classic multiplayer problem. It comes from how netcode reconciles client prediction with the server. Here's what causes rubber-banding in multiplayer.

Why Things Snap Back

In multiplayer, clients often predict movement locally for responsiveness, then the authoritative server confirms the real position. Rubber-banding happens when the server's authoritative position differs from the client's prediction, and the correction snaps things back to match.

In each case, the client showed something the server disagrees with, and reconciling the two produces the visible snap-back.

Why It Depends on Real Conditions

Rubber-banding is driven by latency and packet loss, which are minimal on a local network and significant on the real internet, so it appears for players in real conditions but not in your local testing. You have to measure real player network conditions to understand it.

Bugnet captures context and network errors from real player sessions, so you can see where the conditions causing rubber-banding concentrate. Since it depends on real network conditions, capturing what players experience is key.

Reducing Rubber-Banding

Reducing rubber-banding means improving prediction and reconciliation: smoother correction (interpolating to the corrected position instead of snapping), better client prediction to reduce divergence, and reducing latency and packet loss where possible. Good netcode hides the corrections rather than jerking visibly.

Bugnet captures network errors and context, helping you find the conditions and failures behind it. So rubber-banding is caused by the netcode correcting a mismatch between predicted and authoritative positions under latency and packet loss, and reducing it means smoother correction and better prediction.

Rubber-banding comes from netcode correcting a mismatch between the client's predicted and the server's authoritative position, driven by latency and packet loss. Smooth the correction and improve prediction to reduce it.