local TweenService = game:GetService("TweenService") local player = game.Players.LocalPlayer local hoopsFolder = workspace["Game Systems"].Hoops -- CONFIGURATION local STUD_SPEED = 220 local PAUSE_BETWEEN = 0.2 local function getMustang() return workspace["Game Systems"]["Plane Workspace"]:FindFirstChild("P-51 Mustang") end local function noclipPlane(plane) for _, part in pairs(plane:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end local function startRandomRun() local plane = getMustang() if not plane then return end local root = plane.PrimaryPart or plane:FindFirstChild("MainPart") or plane:FindFirstChildWhichIsA("BasePart") noclipPlane(plane) -- Get hoops into a table and shuffle them local hoops = hoopsFolder:GetChildren() for i = #hoops, 2, -1 do local j = math.random(i) hoops[i], hoops[j] = hoops[j], hoops[i] end for _, hoop in pairs(hoops) do local targetCFrame = hoop:GetPivot() local distance = (root.Position - targetCFrame.Position).Magnitude local duration = distance / STUD_SPEED local tween = TweenService:Create(root, TweenInfo.new(duration, Enum.EasingStyle.Linear), {CFrame = targetCFrame}) tween:Play() tween.Completed:Wait() task.wait(PAUSE_BETWEEN) end end startRandomRun()