local Players = game:GetService("Players") local player = Players.LocalPlayer local mouse = player:GetMouse() local screenGui = Instance.new("ScreenGui") screenGui.Name = "CoinTPGui" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 200, 0, 100) frame.Position = UDim2.new(0.5, -100, 0.5, -50) frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = screenGui local UIS = game:GetService("UserInputService") local dragging, dragInput, dragStart, startPos local function update(input) local delta = input.Position - dragStart frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) frame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UIS.InputChanged:Connect(function(input) if input == dragInput and dragging then update(input) end end) local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0.3, 0) title.BackgroundTransparency = 1 title.Text = "Coin TP Tool" title.TextColor3 = Color3.new(1, 1, 1) title.Font = Enum.Font.SourceSansBold title.TextSize = 18 title.Parent = frame local toggleButton = Instance.new("TextButton") toggleButton.Size = UDim2.new(0.8, 0, 0.4, 0) toggleButton.Position = UDim2.new(0.1, 0, 0.5, 0) toggleButton.Text = "Start" toggleButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0) toggleButton.TextColor3 = Color3.new(1, 1, 1) toggleButton.Font = Enum.Font.SourceSansBold toggleButton.TextSize = 20 toggleButton.Parent = frame local running = false local tpThread local function makeInvisible(character) for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.Transparency = 1 part.CanCollide = false if part.Name == "HumanoidRootPart" then part.Size = Vector3.new(0.1, 0.1, 0.1) end elseif part:IsA("Decal") then part.Transparency = 1 elseif part:IsA("Accessory") then local handle = part:FindFirstChild("Handle") if handle and handle:IsA("BasePart") then handle.Transparency = 1 handle.CanCollide = false end end end end local function makeVisible(character) for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.Transparency = 0 part.CanCollide = true if part.Name == "HumanoidRootPart" then part.Size = Vector3.new(2, 2, 1) end elseif part:IsA("Decal") then part.Transparency = 0 elseif part:IsA("Accessory") then local handle = part:FindFirstChild("Handle") if handle and handle:IsA("BasePart") then handle.Transparency = 0 handle.CanCollide = true end end end end local function teleportToCoins() local character = player.Character or player.CharacterAdded:Wait() local rootPart = character:WaitForChild("HumanoidRootPart") while running do local coins = {} for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("BasePart") and obj.Name:lower() == "coin" then table.insert(coins, obj) end end makeInvisible(character) for _, coin in ipairs(coins) do if not running then break end if rootPart and coin and coin:IsDescendantOf(workspace) then rootPart.CFrame = coin.CFrame + Vector3.new(0, 3, 0) task.wait(0.05) end end makeVisible(character) task.wait(1) end end toggleButton.MouseButton1Click:Connect(function() running = not running if running then toggleButton.Text = "Stop" toggleButton.BackgroundColor3 = Color3.fromRGB(170, 0, 0) tpThread = task.spawn(teleportToCoins) else toggleButton.Text = "Start" toggleButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0) running = false end end)