local function P(P,F,t)local s=Ray.new(P,F)local U=false local Y,R,C,e table.insert(t,Workspace.Effects)table.insert(t,Workspace.Drops)repeat Y,R,C=Workspace:FindPartOnRayWithIgnoreList(s,t)if Y then local P=Y.Parent:FindFirstChildOfClass("\072\117\109\097\110\111\105\100")if P then table.insert(t,P.Parent)U=false elseif Y.CanCollide and Y.Transparency<1 then U=true else table.insert(t,Y)U=false end else U=true end until U return Y,R,C end


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
