I am trying to make a jenga tower game, and for smoother physics simulate it on client. The parts in the screen shot below are network owned by the client. I have also toggled the “Awake Parts” (which is seen by the outline on my character) to show that the parts that are close to the character have already fallen, but the ones that are too high up just dont fall. I have tried many ways to awake them but the only way to fix this right now seems to be just making them server owned, which is not ideal.
To replicate this just spawn a part very high up and make sure its client owned. It will just stay in sleep state and not fall until you get close it or manually move it closer.
Here is just the jenga tower from the screenshot. It seems like clients have a maximum range in which physics work. If you try to spawn the tower from the server it falls fine. The Client is the problem.
It’s the intended behavior of streaming enabled.
For some reason, they made client sided object physics not work when it’s outside the target radius. The solution is either increase the maximum radius or disable the streaming enabled.
As @maxim01689 pointed out, this is the intended behavior of Instance Streaming.
As discussed in stream out section of the streaming docs, the top parts of the tower are being streamed out because you are reparenting them from ReplicatedStorage into the client’s workspace. If you clone the tower instead, they won’t be streamed out:
local tower = game.ReplicatedStorage.ActualTower:Clone()
tower.Parent = workspace
task.wait(3)
for i, v: Part in ipairs(workspace.ActualTower:GetDescendants()) do
if v:IsA("BasePart") then
v.Anchored = false
end
end