HumanoidRootPart not teleporting the rest of the character?

script.Parent.ClickDetector.MouseClick:Connect(function(plr)
	local c = workspace[plr.Name]
	print(c)
	local savedPos = c.HumanoidRootPart.Position
	plr:LoadCharacter()
	c=workspace[plr.Name]
	c.HumanoidRootPart.Position = savedPos
end)

This script makes the camera where HumanoidRootPart is, yet the character didn’t go with it.

i guess use other part of the body like torso? it worked for me

I usually define the character model.

Try moving the Model…? But I don’t really see a change in Posiion…

Models don’t have a position, and I can’t get the ‘Origin Position’ from a script.

Did you try CFrame? I always used that.

I’m assuming this is on the client because you mention something about making a camera. It may be the anticheat that is doing this… idk tbh

inset a remote event

script.Parent.ClickDetector.MouseClick:Connect(function(plr)
local saver = plr.Character.HumanoidRootPart.CFrame.Position
plr:LoadCharacter()
wait(0.000001)
plr.Character.HumanoidRootPart.Position = saver
script.Parent.RemoteEvent:FireClient(plr)
end)

insert a local script

local plr=game.Players.LocalPlayer

script.Parent.RemoteEvent.OnClientEvent:Connect(function(c)

workspace.Camera=Enum.CameraType.Custom

end)

I used the torso, and now it looks like this (Notice how the torso is way over there, that is the distance between the teleported position and the spawn)
Don’t mind the black rectangle, it is just a name tag.

It teleported correctly! Thank you!

To teleport players, I use HumanoidRootPart via CFrame.

Try this…

script.Parent.ClickDetector.MouseClick:Connect(function(player)
	local character = player.Character
	local savedPosition = character.HumanoidRootPart.Position

	player:LoadCharacter()
    wait()
	c.HumanoidRootPart.CFrame = CFrame.new(savedPosition)
end)