local function Z(Q,A)A=A or 120 local F,b=Workspace:FindPartOnRayWithIgnoreList(Ray.new(Q,UpVec*A),ignoreList)if F then return F.Transparency~=1 and true or Z(b+UpVec,A-(Q-b).Magnitude)else return false end end
--Returns whether the given position is under cover
local function UnderObject(pos, l)
	l = l or 120
	-- raycast
	local hit, position = Workspace:FindPartOnRayWithIgnoreList(Ray.new(pos, UpVec * l), ignoreList)
	if hit then
		return hit.Transparency ~= 1 and true or UnderObject(position + UpVec, l - (pos - position).Magnitude)
	else
		return false
	end
end
