I made a raycast gun, it works, except for one thing. The laserShotClone is supposed to hit a wall before falling, but instead if there is a wall 1000 or less studs ahead of the handle, the laserShotClone just falls right when it is shot. I want to make it only fall if it hits a wall, but I'm not a raycast master. Help?

local laserShotClone = BaseShot:Clone()
	laserShotClone.CFrame = shotCFrame + (shotCFrame.lookVector * (BaseShot.Size.Z / 2))
	local bodyVelocity = Instance.new('BodyVelocity')
	bodyVelocity.velocity = shotCFrame.lookVector * SHOT_SPEED
	bodyVelocity.Parent = laserShotClone
	local GunRay = Ray.new(script.Parent.Handle.Position, (shotCFrame * CFrame.new	(0,0,-1000)).p - script.Parent.Handle.Position)
	local Hit, Pos = game.Workspace:FindPartOnRay(GunRay, script.Parent.Parent:FindFirstChild	("Character"))
	if Hit then 
	laserShotClone:FindFirstChild("BodyVelocity"):Destroy()
	end
	laserShotClone.Touched:connect(function(otherPart)
		OnTouched(laserShotClone, otherPart)