Weld teleports player despite working before

Hi. While patching a bug I encountered in my combat system, I accidently created another. When I updated the C0 cframe and the dmgBox size, it teleported me below the map. However, the old version did not.

Old Version (working but not satisfactory hitbox size):

function createDmgBox(client)
	local dmgBox = Instance.new("Part")
	
	if client.Character:FindFirstChild("HitPartBox") then
		client.Character:FindFirstChild("HitPartBox"):Destroy()
	end

	dmgBox.Anchored = false
	dmgBox.CanCollide = false
	dmgBox.BrickColor = BrickColor.new("Deep blue")
	dmgBox.Transparency = 0.5
	dmgBox.Size = Vector3.new(8,4.4,3)
	dmgBox.Name = "HitPartBox"
	dmgBox.CanTouch = true
	dmgBox.Parent = client.Character

	local weld = Instance.new("Weld",dmgBox)


	weld.Part0 = client.Character.HumanoidRootPart
	weld.Part1 = dmgBox

	weld.C0 = CFrame.new(0,0,-1)

	return dmgBox
end

New version (Broken but satisfactory hitbox size):

function createDmgBox(client)
	local dmgBox = Instance.new("Part")

	if client.Character:FindFirstChild("HitPartBox") then
		client.Character:FindFirstChild("HitPartBox"):Destroy()
	end

	dmgBox.Anchored = false
	dmgBox.CanCollide = false
	dmgBox.BrickColor = BrickColor.new("Deep blue")
	dmgBox.Transparency = 0.5
	dmgBox.Size = Vector3.new(8,4.4,5)
	dmgBox.Name = "HitPartBox"
	dmgBox.CanTouch = true
	dmgBox.Parent = client.Character

	local weld = Instance.new("Weld",dmgBox)


	weld.Part0 = client.Character.HumanoidRootPart
	weld.Part1 = dmgBox

	weld.C0 = CFrame.new(0,0,-4)

	return dmgBox
end

You could try using a WeldConstraint rather than a weld. WeldConstraint | Roblox Creator Documentation - It has solved this sort of problem for me in the past