Hello there, I have a ModuleScript that is supposed to weld a part to the player's torso, and then rotate it and offset it from the torso. This script used to work fine, but now the part hovers about 3 studs above the player's torso.

I've tried changing the "Y" value in line 18 to negative numbers, but it doesn't seem to change the part's position.

Here is there script:

return function(player)

	local function weldBetween(a, b)
    local weld = Instance.new("ManualWeld")
    weld.Part0 = a
    weld.Part1 = b
    weld.C0 = CFrame.new()
    weld.C1 = b.CFrame:inverse() * a.CFrame
    weld.Parent = a
    return weld;
	end
	
	local char = player.Character 
	local hand = game:GetService("ServerStorage"):WaitForChild("Radio"):clone()
	hand.Parent=char
	
	if game:GetService("MarketplaceService"):PlayerOwnsAsset(player,430308264) then	
		hand.CFrame=char:WaitForChild("Torso").CFrame*CFrame.new(Vector3.new(0,-4,0.65))
		hand.Orientation = Vector3.new(-35,90,0)
		weldBetween(char:WaitForChild("Torso"), hand)
		hand.CanCollide=false
		hand.Anchored=false
		hand:WaitForChild("Radio").Parent=player:WaitForChild("PlayerGui")
	else
		char.hand:Destroy()
	end
end

Thank you!