Skip to content

World Objects

Build moving, interactive worlds by dropping SocialScape components onto GameObjects — no scripting and no Character Controller Pro required. Each one is configured in the Inspector; the runtime wires up the behaviour and the networking when your world loads. Riders stay in sync automatically.

Moving platforms

Add SSPlatform (SocialScape/Platform (Ridable)) to any solid object — an airship, boat, elevator, lift — and players who stand on it ride along in sync, with no drift or lag. The runtime gives the platform the physics body it needs; you don't add a Rigidbody.

There are two ways to move it, and you pick one:

  • Built-in path — fill in Path Nodes: drop empty GameObjects where you want the platform to travel and drag them into the list in order. Set Move Speed (m/s) and Path Mode:
    • Loop — restart at the first node (circuits).
    • PingPong — reverse back along the path (lifts, ferries).
    • Once — stop at the last node.
  • Your own mover — leave Path Nodes empty and drive the platform with a NexusScript or an Animator instead. List that script under Server-Only Components so it runs only on the server (the authority) and never fights the network sync.
Field What it does
motion Standard (smooth, most platforms) or Fast (adds prediction + a higher update rate for very fast/warping platforms).
syncRotation Sync rotation too — leave on for platforms that turn or bank.
pathNodes Waypoints for the built-in path (in order). Leave empty to drive it yourself.
moveSpeed Travel speed along the path, in metres/second.
pathMode Loop / PingPong / Once.
pauseAtNodes Seconds to pause at each waypoint.
faceMoveDirection Rotate the platform to face the way it's travelling (boats, airships).
serverOnlyComponents Your own mover scripts — run on the server only.

Place the platform at its first waypoint

The path starts at node 0, so author the platform sitting at (or next to) the first waypoint to avoid an initial jump.

Platform seats

Add SSPlatformSeat (SocialScape/Platform Seat) to a child of a platform, positioned where a seated player should sit (a cockpit, a passenger seat). A seated player snaps to the anchor and rides locked in place.

Field What it does
isPilotSeat Marks the seat reserved for the platform's controller (passenger seats leave this off).
lockMovement Lock the occupant's movement while seated.

Seating is driven by your interaction (for example "press E near the seat") from a NexusScript: Player.Board(platformId, seatAnchor) to sit and Player.Exit() to stand. The component just marks the anchor and its settings.

Ride zones (free movement)

Add SSRideZone (SocialScape/Ride Zone (free movement)) to a child of a platform with a trigger Collider covering a rideable interior (an airship cabin, a ship deck, a large elevator). Inside the zone, players are carried with the ship while still walking and jumping freely — including mid-jump. Unlike a seat, nothing is locked.

Experimental — read the trade-offs

While inside a ride zone, players are switched to kinematic movement so the ship can carry them, which means physics objects can't push them while they're in the zone. It works best for ships that translate; banking/rotating ships still use world-up gravity for now. Test it with your ship's motion before relying on it.

When you don't need free walking — a single fixed riding spot — use a Platform Seat instead; it's simpler and fully locked.

Jump pads

Add SSJumpPad (SocialScape/Jump Pad) to an object with a trigger Collider. Walk in, get launched. Bounce pads, launchers, updrafts, boost rings.

Field What it does
direction Launch direction. (0,1,0) is straight up.
useLocalSpace Aim the direction relative to the pad (rotate the pad to aim it).
power Launch strength (velocity added), in m/s.

Teleporters

Add SSTeleporter (SocialScape/Teleporter) to an object with a trigger Collider and drag a Destination transform. Walk in, arrive there. Portals, doors, fall-through respawns, level warps.

Field What it does
destination Where the player arrives (place an empty GameObject and drag it here).
applyDestinationRotation Also face the player the way the destination faces.
keepMomentum Keep the player's speed through the teleport. Off (default) arrives stationary.

Gravity volumes

Add SSGravityVolume (SocialScape/Gravity Volume) to an object with a trigger Collider. While a player is inside, "up" is redefined so gravity pulls a different way — wall-walking, ceiling-walking, mini-planets, low-grav rooms, spinning stations. Leaving the zone restores normal gravity.

Field What it does
upDirection Which way is "up" inside the zone (gravity pulls the opposite way). (0,1,0) is normal.
useLocalSpace Aim it relative to the zone (rotate the zone to aim gravity).

How riding stays in sync

You don't configure any of this — but for context: a player standing on a platform syncs their position relative to the platform, not in world space, so there's no drift or lag as the platform moves. Jump pads, teleporters, and gravity volumes are purely local effects on whoever steps in; the resulting movement replicates like any other player motion, so there's no extra networking to set up.

Quick reference

Component Add to Needs a trigger collider Drives
SSPlatform The moving object No A ridable moving platform (built-in path or your script)
SSPlatformSeat A child of a platform No A fixed, locked riding seat (script-triggered)
SSRideZone A child of a platform Yes Free-movement carry inside a moving ship
SSJumpPad A zone object Yes Launches whoever enters
SSTeleporter A zone object Yes Moves whoever enters to a destination
SSGravityVolume A zone object Yes Redefines "up" while inside

Next

  • World setup and the descriptor → Worlds
  • Script your own platform movers and interactions → NexusScript