If you read my OP, you would have noticed I tried to offset the value using Humanoid.HipHeight. The result is as shown in the video.
I’d prefer if the offset used is the exact value of the HumanoidRootPart from the ground.
Never mind, I literally just solved my own problem with my reply.
I simply added the y value of my HumanoidRootPart.Position to the new tile position and it works perfectly fine.
That is entirely different from what the title or OP states. Be sure to clearly state what you need, or you will get mixed answers like the replies above.
This is because you were changing HumanoidRootPart’s position, not the full Character’s one.
Also, you can use :MoveTo(), this function will automatically position the Character on top of the part at the exact height without having to use Humanoid’s HipHeight.
Alternatively you can use SetPrimaryPartCFrame() or PivotTo() which will both retain the original orientation of the character model, MoveTo changes a model’s positional data only.