local function m(m,U)local q=#blacklist repeat local n,s=workspace:FindPartOnRayWithIgnoreList(ray(m,U),blacklist,false,true)if n then if n.CanCollide and not Collection:HasTag(n,"\073\103\110\111\114\101\067\097\109\101\114\097")then eraseFromEnd(blacklist,q)return s,true end blacklist[#blacklist+1]=n end until not n eraseFromEnd(blacklist,q)return m+U,false end
--------------------------------------------------------------------------------
-- Piercing raycasts

local function getCollisionPoint(origin, dir)
	local originalSize = #blacklist
	repeat
		local hitPart, hitPoint = workspace:FindPartOnRayWithIgnoreList(ray(origin, dir), blacklist, false, true)

		if hitPart then
			if hitPart.CanCollide and not Collection:HasTag(hitPart, "IgnoreCamera") then
				eraseFromEnd(blacklist, originalSize)
				return hitPoint, true
			end
			blacklist[#blacklist + 1] = hitPart
		end
	until not hitPart

	eraseFromEnd(blacklist, originalSize)
	return origin + dir, false
end
