Object not spawning in the right place

I have this gun i am making that fires out beams, the beans work just fine, but the gunshot appears in the one of the player’s feet, and not the position that it’s meant to fire in (i have a part welded to the gun that is in the position that the beam should appear, and it doesn’t fall off so it isn’t that.)

local handle = script.Parent.Handle
local attachment = handle.Attachment
local proj = game.ReplicatedStorage.Other.GunBeam

script.Parent.Fire.OnServerEvent:Connect(function(p,tar,hit)
	handle.Sound:Play()
	local projfire = proj:Clone()
	projfire.Parent = script.Parent.Bullets
	projfire.CFrame = script.Parent.FirePos.CFrame
	projfire.Character.Value = p.Character
	attachment.FireParticle:Emit(10)
end)

script.Parent.Smoke.OnServerEvent:Connect(function(p)
	attachment.Smoke.Enabled = true
	wait(1.5)
	attachment.Smoke.Enabled = false
end)

For some reason, the first time i shoot the beam is actually in the right place but all other shots are in the player’s feet as shown below.

image

The beam is anchored and the shot doesn’t appear in the floor, if i fire the gun while mid-air, the beam will still appear in my feet.

Are you checking if the FirePos CFrame has changed?

Yeah, one time i made it visible and it never fell out but the beams still appeared on the player’s feet.