CURATED WORKFLOW
Relocate a rigidbody through a paired-space portal while preserving physical continuity
game-or-shared-unknown; portal-specific contract unresolved not runtime verifiedWorkflow ID: workflow.portal-traversal-rigidbody
Snapshot: 3ba1c69afc74a97f-7fcd0798fd6ea455
Prerequisites
- A single authoritative Rigidbody/physics body
- A paired-space transform mapping
- A fixed-step crossing detector and collision/ownership policy
Ordered steps
| # | Action | State/evidence | Symbols |
|---|---|---|---|
| 1 | Measure crossing against a stable body reference and fixed-step state before relocation. | metadata-only The metadata exposes related types; no native portal traversal recipe is declared. | method:Sandbox.IScenePhysicsEvents:PrePhysicsStep(), method:Sandbox.PhysicsTraceBuilder:Capsule(Capsule,Vector3,Vector3), method:Sandbox.SceneTrace:Capsule(Capsule,Vector3,Vector3), type:Sandbox.Rigidbody, type:Transform |
| 2 | Apply the paired transform and preserve linear/angular velocity, centre-of-mass and ownership state where the exact API permits. | source-demonstrated Source call sites/guards are evidence of engine behaviour within their actual scope, not a game API guarantee. | property:Sandbox.Component:Network(), property:Sandbox.PhysicsBody:Transform(), property:Sandbox.Rigidbody:AngularVelocity(), property:Sandbox.Rigidbody:MassCenter(), property:Sandbox.Rigidbody:PhysicsBody(), property:Sandbox.Rigidbody:Velocity() |
| 3 | Synchronise the body and suppress duplicate re-entry or interpolation ghosts. | unresolved Names and proximity are insufficient; an installed probe is required. | method:Sandbox.GameObject.NetworkAccessor:ClearInterpolation(), method:Sandbox.GameTransform:ClearInterpolation(), method:Sandbox.IScenePhysicsEvents:PostPhysicsStep(), property:Sandbox.Component:Network(), property:Sandbox.Rigidbody:Sleeping() |
Lifecycle and ordering
- Crossing and physics state must be sampled in the engine's fixed-step/update ordering; render-only duplication cannot establish physical participation.
- Network ownership/replication ordering must be resolved before any multiplayer relocation.
State ownership
- The portal feature owns crossing state and paired mapping; the physics engine owns body integration.
- Only one authoritative body state may write pose/velocity at a time.
Resource lifetime
- Temporary destination proxies must not outlive the authoritative body or become a second collision authority.
- Restore filters/ownership after traversal and clean up interpolation/reset state.
Known failure modes
- Slow or crouched motion can skip a plane crossing if sampling/reference points are wrong.
- Preserving pose without velocities or wake state breaks continuity.
- A clipped visual proxy is not physical participation.
Evidence and unresolved questions
curated; not a complete workflow graph
- Exact relocation/velocity APIs exposed to game code in the installed build.
- Joint/compound-shape behaviour across two spaces.
- Network replication and ownership during partial traversal.
Next useful probe: Run a fixed-step rigidbody probe with an off-centre rotating box, joints disabled then enabled, logging pose, velocities, sleep, filters, authority and interpolation per tick.