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 | SSPlatform — Social 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 |