I'm currently trying to figure out how I can make a part stay behind a player. Even if the player turns around, the part will turn with it along the center of the torso part. I want to accomplish this with CFrame:toWorldSpace() and CFrame:toObjectSpace(), but I have no clue how to set and change CFrame ObjectSpace Values. This is what I've got so far. This will indeed make the block stay around the player, but it doesn't stay behind the player when he turns.
So does anyone have an idea where I should put either CFrame:toObjectSpace or CFrame:toWorldSpace?
_G.Block = {}
_G.Block.Free = true
_G.Block.Character = nil
script.Parent.Touched:connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") and hit.Parent ~= _G.Block.Character then
script.Parent.Parent = hit.Parent
_G.Block.Free = false
_G.Block.Character = hit.Parent
local weld = Instance.new("ManualWeld")
weld.Part0 = script.Parent
weld.Part1 = _G.Block.Character.Torso
weld.C0 = CFrame.new()
weld.C1 = _G.Block.Character.Torso.CFrame:toObjectSpace(script.Parent.CFrame)
weld.Parent = script.Parent
end
end)
Thanks in advance

2 comments
Why not just weld it?
Alright, I managed to weld it to the player, but it gets welded to the side that touches it. I really want that if you touch it from the front or any side, it gets welded to the same preset position, in this case the back of the player. Any idea how I can do this? I editted my post with an up to date script.