Unanchored part not falling to ground

Make a part unanchored and fall after it gets unanchored. Right now, after 2 seconds after the part spawns, the part gets unanchored and should fall, but it doesnt.

The part doesn’t fall, until I walk to it and touch it.

I have tried setting the part to unanchored on client and server, and I have turned off StreamingEnabled.

Is this a roblox bug? Since the part only falls when I touch it. This happens in Studio and the real game. The part is not massless or anything btw.

2 Likes

In addition, I’ve looked into adding velocity to the part after I unanchor it with :ApplyImpulse(), but it doesn’t seem to be doing anything. From the looks of it, its an issue with the physics not updating but im not sure.

2 Likes

Click on the part, then look at the Property Window.

Does it show Anchored as true or false?

I added a part and it worked as expected:

task.wait(4)

script.Parent.Anchored = false
2 Likes
local Part = game:GetService("Workspace"):WaitForChild("PARTNAME");

repeat task.wait() until Part ~= nil
warn("Part now Exists");

local function Deactivate(part: BasPart): any
       if part.Anchored == true then
       part.Anchored = false;
       warn("Part unanchored");
else 
       warn("Part is already unanchored");
      end;
end;

task.spawn(Deactivate, Part);
2 Likes

This sounds just like a network ownership problem. I’ve had this happen before, though I’m not remembering the exact network ownership and properties setup.

The part falls when you touch it probably because the network ownership switches to the client instead of the server. That probably means there is something off on the server side.

Can you share the outline of how you spawn the part (code, description)? Are you creating or changing properties of the part on both the client and server?

From similar topics:

TL;DR: Make sure you aren’t just setting the part to anchored on the client (otherwise it doesn’t get physics updates, however you said you tried both, maybe check the code?). If you’re changing the replication focus and/or using streaming enabled, maybe look at that (try turning off streaming enabled to narrow down the problem).


Wait for child will yield until the part is returned, so the repeat/while loop doesn’t do anything.

If you instead add a time out (e.g. :WaitForChild("PARTNAME", 5)) it’s possible for it to not be present after the function finishes executing.

4 Likes

Thanks, the solution worked! I set the network ownership and now the part falls to the ground. I have a question though, now that the network ownership is on the client, would the client (exploiters) be able to manipulate the part like its size, or whatever, and be a nuisance?

1 Like

They would be able to affect the physics of the part, so they could move it around. They can do a similar thing with their character, which also has client network ownership.

If it becomes a problem, you could add server side checks to limit abuse.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.