Skip to content

Moving Platforms

Make a surface players can stand on and ride — an airship, boat, spaceship, elevator or lift — that moves in perfect sync for everyone, with no drift and no networking to configure. Drop SSPlatform (Add Component ▸ Social Scape/Platform (Ridable)) on an object, pick how it moves, and you're done. Players who step onto it are carried along automatically.

The motion runs on the server and replicates to everyone; the runtime gives the platform the physics it needs to carry riders smoothly. You never touch interpolation, send rates or prediction — just pick a Drive mode and a Motion profile.

Drive mode — pick how it moves

The Drive mode is the first choice, and the inspector then shows only what that mode needs.

Mode Move it by… Best for
Nodes Placing waypoints it travels between Elevators, ferries, patrol routes — no scripting
Tween Following a curved / closed Tween path Smooth circle / figure-8 loops — no scripting
Animation An Animator you author Bespoke, hand-keyed motion
Script A NexusScript with the Platform.* API Reactive motion (follow a player, respond to events)

Always available: Motion (Standard for most platforms; Fast adds prediction for high-speed/warping ones) and Sync rotation (leave on for platforms that turn or bank).

Nodes — the built-in path

Place empty child GameObjects where you want the platform to go, add them to the Waypoints list, and set:

Field What it does
Speed Travel speed in metres/second.
At the end Loop (restart at the first point), Ping-Pong (reverse back), or Once (stop at the last point).
Pause at each Seconds to wait at each waypoint.
Face travel dir Rotate the platform to face where it's going (boats, airships).

The route is drawn in the Scene view so you can see it. Move the waypoint objects to reshape it.

Tween — curved & closed loops

Set Drive mode = Tween and add a Tween component (the inspector offers a one-click Add) in Path mode. Author the path with the Tween's Scene-view handles — turn on Curved for a smooth spline and Closed loop for a seamless circle or figure-8. The platform follows it at a constant speed, and a closed loop runs continuously with no reset or teleport (the end of the path is its start). Lap time comes from the Tween's duration.

Circle / square airship route

A closed Curved path makes a round orbit; a closed Straight path makes a square/polygon circuit. Either loops forever with no seam — perfect for a patrolling airship or a carousel.

Animation — an Animator drives it

Set Drive mode = Animation and give the object an Animator with a clip that moves it. The inspector detects the Animator and offers "Use this object's Animator" to wire it correctly — the Animator runs on the server, and every other client receives the synced motion (so it stays in sync and carries riders).

Script — full control from code

Set Drive mode = Script, add a NexusScript, and move the platform from its FixedUpdate with the Platform.* API:

public class Airship : NexusBehaviour
{
    public void FixedUpdate()
    {
        Platform.Move(0f, 0f, 2f * Time.deltaTime);   // drift forward
    }
}

Platform.MoveTo, Platform.Move and Platform.SetVelocity run on the server automatically and keep riders attached. Don't move a platform with Transform.position or Player.Teleport — those teleport it and throw standing players off. See the Platform API.

Riding

Any player who walks onto a moving platform is carried with it — position and rotation — automatically, in sync for everyone. There's nothing to set up: it's just a surface the platform moves. (To sit a player in a driver's seat or passenger chair, use a Station instead — that's a seat, this is a floor.)

The golden rule

However it's driven, a ridable platform must be moved by its Drive mode — the built-in path, a Tween, an Animator, or the Platform.* API. Moving it any other way (a raw Transform.position write, Player.Teleport, a physics push) will jerk it out of sync and fling anyone standing on it.

Quick reference

Component SSPlatformSocial Scape/Platform (Ridable)
Drive modes Nodes · Tween · Animation · Script
Motion Standard (default) · Fast (high-speed) · Sync rotation
Riding Automatic — players stand on it and move with it
Script API Platform.MoveTo / Move / SetVelocity