Why does my gun not get thrown in the right direction?

Hey there! I just made a gun system. I made it so the player can throw the gun, but it’s not working as intended, and the gun gets thrown in the wrong direction.
Example:

Part of my script that throws the gun:

local throwClone = weapon:Clone()

task.delay(0, function()

	throwClone.PrimaryPart.CFrame = cam.CFrame
	throwClone.Parent = workspace.ThrownWeapons

	local bodyVel = Instance.new("BodyVelocity")
	bodyVel.MaxForce = Vector3.new(1,1,1)*30000
	bodyVel.Velocity = (mouse.Hit.Position-cam.CFrame.Position).Unit*200
	bodyVel.Parent = throwClone.PrimaryPart

	task.wait(.1)

	bodyVel:Destroy()
end)

Why is this happening? Any help is appreciated!

Try this:
local throwClone = weapon:Clone()

task.delay(0, function()

throwClone.PrimaryPart.CFrame = cam.CFrame
throwClone.Parent = workspace.ThrownWeapons

local bodyVel = Instance.new("BodyVelocity")
bodyVel.MaxForce = Vector3.new(1,1,1)*30000
bodyVel.Velocity = CFrame.lookAt(cam.CFrame.Position,mouse.Hit.Position).LookVector*200
bodyVel.Parent = throwClone.PrimaryPart

task.wait(.1)

bodyVel:Destroy()

end)
Hope this helped you find the problem!

That didn’t seem to fix it unfortunately