local V={spacing=8;image="\114\098\120\097\115\115\101\116\058\047\047\116\101\120\116\117\114\101\115\047\067\117\114\115\111\114\115\047\071\097\109\101\112\097\100\047\080\111\105\110\116\101\114\046\112\110\103";imageSize=Vector2.new(2,2)}local S=Instance.new("\077\111\100\101\108")S.Name="\080\097\116\104\068\105\115\112\108\097\121\080\111\105\110\116\115"local W=Instance.new("\080\097\114\116")W.Anchored=true W.CanCollide=false W.Transparency=1 W.Name="\080\097\116\104\068\105\115\112\108\097\121\065\100\111\114\110\101\101"W.CFrame=CFrame.new(0,0,0)W.Parent=S local A={}for S=1,30,1 do local y=Instance.new("\073\109\097\103\101\072\097\110\100\108\101\065\100\111\114\110\109\101\110\116")y.Archivable=false y.Adornee=W y.Image=V.image y.Size=V.imageSize A[S]=y end local y=30 local function R()local V=A[1]if not V then return end A[1]=A[y]A[y]=nil y=y-1 return V end local m={}function V.setCurrentPoints(V)if typeof(V)=="\116\097\098\108\101"then m=V return end m={}end local U={}local function L(V)y=y+1 A[y]=V end function V.clearRenderedPath()for V,S in ipairs(U)do S.Parent=nil L(S)end U={}S.Parent=nil end local function E(V,W)if y==0 then return end local A,m,U=workspace:FindPartOnRayWithIgnoreList(Ray.new(V+Vector3.new(0,2,0),Vector3.new(0,-8,0)),{game.Players.LocalPlayer.Character;workspace.CurrentCamera})if not A then return end local L=R()L.CFrame=CFrame.new(m,m+U)L.Parent=S return L end function V.renderPath()V.clearRenderedPath()if not m or#m==0 then return end local W=#m local A=0 U[1]=E(m[W],true)if not U[1]then return end while true do local S=m[W]if W<2 then break end local y=m[W-1]-S local R=y.magnitude if R<A then A=A-R W=W-1 else local W=E(S+y.unit*A,false)if W then U[#U+1]=W end A=A+V.spacing end end S.Parent=workspace.CurrentCamera end return V
-- Decompiled with the Synapse X Luau decompiler.

local v1 = {
	spacing = 8,
	image = "rbxasset://textures/Cursors/Gamepad/Pointer.png",
	imageSize = Vector2.new(2, 2),
}
local v2 = Instance.new("Model")
v2.Name = "PathDisplayPoints"
local v3 = Instance.new("Part")
v3.Anchored = true
v3.CanCollide = false
v3.Transparency = 1
v3.Name = "PathDisplayAdornee"
v3.CFrame = CFrame.new(0, 0, 0)
v3.Parent = v2
local v4 = {}
for v5 = 1, 30 do
	local v6 = Instance.new("ImageHandleAdornment")
	v6.Archivable = false
	v6.Adornee = v3
	v6.Image = v1.image
	v6.Size = v1.imageSize
	v4[v5] = v6
end
local u1 = 30
local function u2()
	local v7 = v4[1]
	if not v7 then
		return
	end
	v4[1] = v4[u1]
	v4[u1] = nil
	u1 = u1 - 1
	return v7
end
local u3 = {}
function v1.setCurrentPoints(p1)
	if typeof(p1) == "table" then
		u3 = p1
		return
	end
	u3 = {}
end
local u4 = {}
local function u5(p2)
	u1 = u1 + 1
	v4[u1] = p2
end
function v1.clearRenderedPath()
	for v8, v9 in ipairs(u4) do
		v9.Parent = nil
		u5(v9)
	end
	u4 = {}
	v2.Parent = nil
end
local function u6(p3, p4)
	if u1 == 0 then
		return
	end
	local v10, v11, v12 = workspace:FindPartOnRayWithIgnoreList(
		Ray.new(p3 + Vector3.new(0, 2, 0), Vector3.new(0, -8, 0)),
		{ game.Players.LocalPlayer.Character, workspace.CurrentCamera }
	)
	if not v10 then
		return
	end
	local v13 = u2()
	v13.CFrame = CFrame.new(v11, v11 + v12)
	v13.Parent = v2
	return v13
end
function v1.renderPath()
	v1.clearRenderedPath()
	if not u3 or #u3 == 0 then
		return
	end
	local v14 = #u3
	local v15 = 0
	u4[1] = u6(u3[v14], true)
	if not u4[1] then
		return
	end
	while true do
		local v16 = u3[v14]
		if v14 < 2 then
			break
		end
		local v17 = u3[v14 - 1] - v16
		local l__magnitude__18 = v17.magnitude
		if l__magnitude__18 < v15 then
			v15 = v15 - l__magnitude__18
			v14 = v14 - 1
		else
			local v19 = u6(v16 + v17.unit * v15, false)
			if v19 then
				u4[#u4 + 1] = v19
			end
			v15 = v15 + v1.spacing
		end
	end
	v2.Parent = workspace.CurrentCamera
end
return v1
