Hello, I'm trying to change the character's position to something else right when it spawns in, but something else seems to be setting it after I change it.
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
print(character.Name .. " has spawned");
local rig = character or character.player.CharacterAdded:Wait();
rig.HumanoidRootPart.CFrame = CFrame.new(500,500,500);
print (rig.HumanoidRootPart.CFrame);
end)
end)
This prints out that the CFrame is equal to (500, 500, 500, 1, 0, 0, 0, 1, 0, 0, 0, 1), but then it changes to something like (0, 107, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1).

3 comments
Local or Server Script?
It's probably calculating the CFrame at which the Character first spawns, which happens to be over 100 studs on the Y axis while being 0 on the other two axes. I suggest putting a wait() somewhere so that when the Character spawns in the script waits then it assigns the CFrame and prints that CFrame.
Thanks MCAndRobloxUnited; putting wait(0.000001) right before everything else fixed it, which seems like an oversight on Roblox's end. Could you turn your comment into an answer so I can accept it as the working solution?