Humanoid root part synced, rest isn't

My issue is that the player’s HRP is the ONLY part of the character that displays correctly on both the server and the clients. However, the rest of the player’s character is not correct on the server (it is on other clients). I’m honestly in awe with this issue and have no idea what’s causing it.

I’ve tried the following methods:

  • Setting the HRP with CFrame - hrp.CFrame = cframe
  • Setting the character’s pivot - char:PivotTo(cframe)
  • Setting the character’s primary part - char:SetPrimaryPartCFrame(cframe)
  • Setting the HRP with Vector3 - hrp.Position = vector3

This obviously leads to game breaking bugs as I use spatial query, which relies on the character being fully correct. The only function in my game that teleports players is the following:

function module.Teleport(plr)
	local pads = module.main:GetService("pads")
	local pad = pads.GetRandomPad()
	local char = plr.Character
	local HRP = char:FindFirstChild("HumanoidRootPart")
	if HRP then
		HRP.Position = pad.pad.Position + Vector3.new(0,3,0)
	end
end

download (1)

Please tell me I’m just being thick skulled and that I can actually solve this.

Bump, I’m starting to think this is a roblox bug. Has anyone else experienced this?

Changing the Position property doesn’t bring the rest of the character but it seems you tried using SetPrimaryPartCFrame and PivotTo, maybe just try setting the CFrame?

HRP.CFrame = CFrame.new(pad.pad.Position + Vector3.new(0,3,0))

Also could you show a video of what’s happening if possible?

I have already tried this, and tried it again. It still happens.

Although I could not switch to the client’s window, you can see how I can move the character correctly. It is replicated properly in all clients, just not the server, except for the root part.

Bump, again

thirtychars

How do I forward this to bug reports, since for some reason topic creation there is restricted to regulars?

This is a snip that comes from a local script within the playerGui

player.Character:MoveTo(tele.CFrame.p + Vector3.new(0,3.25,0))

In this case, tele is a randomly picked ending pad and this is the part that moves them in the function.