function raycursive(N,p,f)newdir=(N+p)-N local z,D=workspace:findPartOnRay(Ray.new(N,newdir.unit*999.999),f)if z then if not z.CanCollide and(z.Name~="\076\101\102\116 \065\114\109"and(z.Name~="\076\101\102\116 \076\101\103"and(z.Name~="\082\105\103\104\116 \065\114\109"and z.Name~="\082\105\103\104\116 \076\101\103")))then return raycursive(D,p,z)else return z,D end else return z,D end end
-----------------------------------------------------Raycasting functions

function raycursive(start, dir, ignore)
	newdir = (start + dir) - start
	local a, b = workspace:findPartOnRay(Ray.new(start, newdir.unit * 999.999), ignore)
	if a then
		if
			not a.CanCollide
			and (a.Name ~= "Left Arm" and a.Name ~= "Left Leg" and a.Name ~= "Right Arm" and a.Name ~= "Right Leg")
		then
			return raycursive(b, dir, a)
		else
			return a, b
		end
	else
		return a, b
	end
end
