Quick answer: Use the Multiplayer object’s built-in client-input prediction: set peer objects to interpolate, apply local input immediately on your own object, and let the object lerp toward the authoritative value.
In a Construct 3 multiplayer game, the local player snaps backward periodically — the server correction is teleporting instead of smoothing.
Use the Built-In Interpolation
When you sync a value with the Multiplayer object, set its interpolation mode (None / Linear / Angular). For positions, Linear interpolation smooths the gap between server updates — without it, remote peers visibly jump every packet.
Predict Local Input Immediately
For the local player, don’t wait for the server. Apply input to your own object right away so controls feel instant. The Multiplayer object’s “client input prediction” handles this when you associate input with the object.
Reconcile Smoothly
When the server’s authoritative position arrives and differs from your prediction, lerp toward it over a few frames rather than snapping:
Every tick:
Set Player.X to lerp(Player.X, Player.server_x, 0.2)
Set Player.Y to lerp(Player.Y, Player.server_y, 0.2)
Small mispredictions get corrected invisibly; only large desyncs are noticeable.
Tune the Sync Rate
Too-infrequent server updates make interpolation laggy and corrections large. Balance the Multiplayer object’s update rate against bandwidth.
Verifying
Local movement feels instant. Remote peers move smoothly. Under simulated latency, corrections are gentle slides, not teleports.
“Predict locally, interpolate remotely, reconcile with a lerp. That triad kills the rubber-band.”
Test with the network simulator’s latency + packet loss on — rubber-banding only shows up under real-ish conditions.