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.