local function t(t,s,P)local G=Ray.new(t,s)local W=false local f,g,U,B table.insert(P,Workspace.Effects)table.insert(P,Workspace.Drops)repeat f,g,U=Workspace:FindPartOnRayWithIgnoreList(G,P)if f then local t=f.Parent:FindFirstChildOfClass("\072\117\109\097\110\111\105\100")if t then table.insert(P,t.Parent)W=false elseif f.CanCollide and f.Transparency<1 then W=true else table.insert(P,f)W=false end else W=true end until W return f,g,U end
-- functions

local function Raycast(position, direction, ignore)
	local ray = Ray.new(position, direction)
	local success = false
	local h, p, n, humanoid

	table.insert(ignore, Workspace.Effects)
	table.insert(ignore, Workspace.Drops)

	repeat
		h, p, n = Workspace:FindPartOnRayWithIgnoreList(ray, ignore)

		if h then
			local humanoid = h.Parent:FindFirstChildOfClass("Humanoid")
			if humanoid then
				table.insert(ignore, humanoid.Parent)
				success = false
			elseif h.CanCollide and h.Transparency < 1 then
				success = true
			else
				table.insert(ignore, h)
				success = false
			end
		else
			success = true
		end
	until success

	return h, p, n
end
