Can't rotate part smoothly after HumanoidRootPart

Strangely, even if I give a part’s orientation property the value of the HumanoidRootPart’s orientation at every frame from a local script, the change doesn’t happen instantly.
How is that even possible?
Code:

rs.RenderStepped:Connect(function()
	part.Position = hrp.Position
	part.Orientation = hrp.Orientation
end)

Result:

Expected result:

Is there a way to achieve the result of the second video without a weld?

hrp:GetPropertyChangedSignal("Position"):Connect(function()
    part.CFrame = hrp.CFrame
end)

The GetPropertyChangedSignal event doesn’t work with physics-related properties such as Position, Orientation or CFrame.

Maybe you could tween the parts orientation to the HRP orientation

Seems like a bug that has to deal with Shift Lock movement, since with fast normal moves it works as intended. You can try using :BindToRenderStep() and set first the orientation to get a micro-faster response.

A solution I found is to rotate the part after the Y-axis of the player’s camera when the player is in first person mode or has the shift lock enabled, otherwise just use the old code.

1 Like