When I try to move a player using this method, the player sometimes has the falling motion or flinging motion while frozen.
And yes the characters has to be anchored
player.Character.HumanoidRootPart.Anchored = false player.Character.HumanoidRootPart.CFrame = CFrame.new(yard.Position,game.Workspace.CamPart.Position) wait() player.Character.HumanoidRootPart.Anchored = true
No matter what you do, you will always get the same result after trying another type of method. I remade your code,
local Player = game.Players.LocalPlayer local Character = Player.CharacterAdded:Wait() or Player.Character function AnchorTeleport(HRP, Position) HRP.Anchored = false if not HRP.Anchored then wait() HRP.Anchored =true HRP.CFrame = Position end end AnchorTeleport(Character.HumanoidRootPart, CFrame.new(game.Workspace.CamPart.Position))
then realised it was futile because I always got the same result as you. Just don't use anchored, or stop the animation from playing in the 'Animate' localscript ROBLOX gives you by either waiting for it clone to the character and stopping it, or make a custom animation script of your own.
The best way to do this is to anchor ALL parts of the player and then change the CFrame of the HumanoidRootPart.