local plr = game.Players.LocalPlayer repeat wait() until plr:FindFirstChild("PlayerGui") local gui = Instance.new("ScreenGui", plr.PlayerGui) gui.ResetOnSpawn = false local btn = Instance.new("TextButton", gui) btn.Size = UDim2.new(0, 140, 0, 40) btn.Position = UDim2.new(0, 20, 0, 100) btn.Text = "Enable" btn.BackgroundColor3 = Color3.fromRGB(0, 200, 100) btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.SourceSansBold btn.TextSize = 20 btn.Active = true btn.Draggable = true local active = false local visited = {} local function tpToCoins() while active do local char = plr.Character or plr.CharacterAdded:Wait() local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then wait(1) continue end for _, folder in pairs(workspace:GetChildren()) do if folder:IsA("Folder") and folder.Name == "Coins" then for _, coin in pairs(folder:GetChildren()) do if coin:IsA("Model") and coin.Name == "Coin" and not visited[coin] then local root = coin.PrimaryPart or coin:FindFirstChildWhichIsA("BasePart") if root then visited[coin] = true hrp.CFrame = root.CFrame + Vector3.new(0, 5, 0) wait(0.5) end end end end end wait(1) end end btn.MouseButton1Click:Connect(function() active = not active btn.Text = active and "Disable" or "Enable" btn.BackgroundColor3 = active and Color3.fromRGB(200, 50, 50) or Color3.fromRGB(0, 200, 100) if active then visited = {} spawn(tpToCoins) end end) workspace.ChildAdded:Connect(function(obj) if not active then return end if obj:IsA("Folder") and obj.Name == "Coins" then for _, c in pairs(obj:GetChildren()) do if c:IsA("Model") and c.Name == "Coin" then visited[c] = nil end end end end) for _, f in pairs(workspace:GetChildren()) do if f:IsA("Folder") and f.Name == "Coins" then f.ChildAdded:Connect(function(c) if active and c:IsA("Model") and c.Name == "Coin" then visited[c] = nil end end) end end