How to cancel a BodyPosition force

local BP = Instance.new("BodyPosition")
BP.Position = PullTo.Position
BP.D = 1000
BP.P = 8000
BP.MaxForce = Vector3.new(13000, 13000, 13000)
BP.Parent = Char.HumanoidRootPart
task.wait(.2)
BP.P = 0
BP.D = 0
BP.MaxForce = Vector3.new(0, 0, 0)
BP:Destroy()

The force continues influencing the HumanoidRootPart it was placed in even after these attempts of stopping it (last 4 lines). How would I cancel the force?

I haven’t been able to reproduce the issue. Presuming that MaxForce is nullified and the BodyPosition is destroyed, there shouldn’t be any impact. Could there be something else? Is there any other body mover or mover constraint taking effect?

I shall mention that body movers are deprecated and shouldn’t be used no more. That’s why they aren’t even available for inserting in explorer. Use AlignPosition and other mover constraints instead.

Side note, I would define HumanoidRootPart in a more safe manner.

Client side?

local hrp = Char:WaitForChild("HumanoidRootPart") -- wait for it to load

Server side?

local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if hrp then ... end -- does it exist?
1 Like
Char.HumanoidRootPart:WaitForChild(BP):Destroy