How to avoid detaching HumanoidRootPart from the character when changing its position?

So I’ve got a script where if a player touches a wall, then it creates a WeldConstraint between player’s HumanoidRootPart and the wall. Then I wanted player to start slowly falling down from the wall, but I couldn’t do this with changing the CFrame of HumanoidRootPart, because the wall would fall with the player. So I tried changing the position of HumanoidRootPart instead, but this caused it to detach fron the rest of player’s characterm, and it look kinda like this:


How to make this work properly?

Instead of setting the HumanoidRootPart’s position property you can do Character:SetPrimaryPartCFrame() or Character:MoveTo() which will accomplish the same goal but keep the model’s joints intact

1 Like

the main problem with Model:MoveTo() is that, if a part is above the position where he wants to be, he will spawn on this part and not at the position

1 Like

SetPrimaryPartCFrame() ignores that principle

1 Like

that’s why it is better to use it

1 Like

Something related that you may find interesting for the future:

Player’s character is still in the same place that it was before because of the weld