local function A(A,L)local D=#blacklist repeat local T,h=workspace:FindPartOnRayWithIgnoreList(ray(A,L),blacklist,false,true)if T then if T.CanCollide and not Collection:HasTag(T,"\073\103\110\111\114\101\067\097\109\101\114\097")then eraseFromEnd(blacklist,D)return h,true end blacklist[#blacklist+1]=T end until not T eraseFromEnd(blacklist,D)return A+L,false end


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
