Locally created BaseParts do not get simulated by physics if outside streaming radius, even if integritymode is disabled

Currently, as of 10/27/23, if there is a BasePart instance that has been created or cloned by the client, said basepart is not physically simulated if it is outside of the TargetStreamingRadius, even if integrity mode is disabled. This makes it impossible to implement certain game mechanics without disabling streaming entirely.

To reproduce:

  1. Open the attached repro file
  2. Run a playsolo session
  3. Observe the glass ball by spawn. Drag it up into the air using studio’s dragger tool, and let it go. Observe that the ball drops like normal.
  4. Walk away from the ball until it is outside of the streaming range. Drag the ball into the air again. Observe that the ball is not being simulated.
  5. Walk towards the ball. Observe that the ball starts simulating when in-range again.
  6. Stop the playsolo session. Set Workspace.StreamingIntegrityMode to Disabled.
  7. Repeat steps 2 through 5. Observe that despite integrity being disabled, physics still stops simulating when outside of the streaming radius.

LocalStreamingPhysics_Repro.rbxl (53.2 KB)

Expected behavior

It is expected that parts created by the client would not be impacted by streaming, particularly for physics. Physics being impacted makes it impossible to implement certain game features (e.g. imagine a bowling minigame where you have to hit pins with a ball on a large bowling lane).

5 Likes

Thanks for reporting this issue. We are discussing options for allowing physics simulation to continue in these situations if the developer requires it.

We don’t think always simulating client created objects is a good solution since if ground geometry or terrain is missing those client created objects could fall through the world. In the repro you shared if instead of a large baseplate there was terrain the sphere could fall through the world when the terrain is streamed out, for example.

2 Likes

Having an API that lets us flag specific baseparts (or assemblies if we want to get fancy) for always being simulated regardless of streaming conditions, that would be super helpful! E.g. “I want this moving platform to continue moving, even if the ground underneath it is gone.”

2 Likes