-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local WALK_TARGET = Vector3.new(123, 2, -94) local CF_TARGET = Vector3.new(126, 2, -2212) local NORMAL_WALKSPEED = 150 local TPWALK_SPEED = 30 local VERTICAL_DISTANCE = 50 local VERTICAL_RUNS = 3 local TELEPORT_DISTANCE = 40 local running = false local connection local moveConnection local detectionConnection local returningToStart = false local lastPosition local gui = Instance.new("ScreenGui") gui.Name = "TPWalkUI" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.fromOffset(200, 100) frame.Position = UDim2.new(0.5, -100, 0.5, -50) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) frame.BorderSizePixel = 0 frame.Active = true frame.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 10) corner.Parent = frame local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 35) title.BackgroundTransparency = 1 title.Text = "Pops Autofarm" title.TextColor3 = Color3.new(1, 1, 1) title.TextSize = 18 title.Font = Enum.Font.SourceSansBold title.Parent = frame local button = Instance.new("TextButton") button.Size = UDim2.new(1, -20, 0, 45) button.Position = UDim2.fromOffset(10, 45) button.BackgroundColor3 = Color3.fromRGB(70, 70, 70) button.BorderSizePixel = 0 button.Text = "OFF" button.TextColor3 = Color3.new(1, 1, 1) button.TextSize = 18 button.Font = Enum.Font.SourceSansBold button.Parent = frame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 8) buttonCorner.Parent = button local dragging = false local dragStart local startPosition frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = frame.Position end end) UserInputService.InputChanged:Connect(function(input) if not dragging then return end if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then local delta = input.Position - dragStart frame.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) local function stop() running = false returningToStart = false if connection then connection:Disconnect() connection = nil end if moveConnection then moveConnection:Disconnect() moveConnection = nil end if detectionConnection then detectionConnection:Disconnect() detectionConnection = nil end button.Text = "OFF" end local function startCFrame() if not running or returningToStart then return end local character = player.Character local humanoid = character and character:FindFirstChildWhichIsA("Humanoid") local root = character and character:FindFirstChild("HumanoidRootPart") if not character or not humanoid or not root then return end local phase = "FORWARD" local verticalRun = 0 local upTarget lastPosition = root.Position connection = RunService.Heartbeat:Connect(function(delta) if not running or returningToStart then return end character = player.Character humanoid = character and character:FindFirstChildWhichIsA("Humanoid") root = character and character:FindFirstChild("HumanoidRootPart") if not character or not humanoid or not root then return end if phase == "FORWARD" then local offset = CF_TARGET - root.Position if offset.Magnitude > 2 then character:TranslateBy(offset.Unit * TPWALK_SPEED * delta * 10) else root.CFrame = CFrame.new(CF_TARGET) upTarget = CF_TARGET + Vector3.new(0, VERTICAL_DISTANCE, 0) phase = "UP" end elseif phase == "UP" then local offset = upTarget - root.Position if offset.Magnitude > 1 then character:TranslateBy(offset.Unit * TPWALK_SPEED * delta * 10) else root.CFrame = CFrame.new(upTarget) phase = "DOWN" end elseif phase == "DOWN" then local offset = CF_TARGET - root.Position if offset.Magnitude > 1 then character:TranslateBy(offset.Unit * TPWALK_SPEED * delta * 10) else root.CFrame = CFrame.new(CF_TARGET) verticalRun += 1 if verticalRun >= VERTICAL_RUNS then verticalRun = 0 if connection then connection:Disconnect() connection = nil end returningToStart = true humanoid.WalkSpeed = NORMAL_WALKSPEED humanoid:MoveTo(WALK_TARGET) moveConnection = humanoid.MoveToFinished:Connect(function(reached) if moveConnection then moveConnection:Disconnect() moveConnection = nil end if not running then return end if reached then returningToStart = false startCFrame() else task.wait(0.15) if running and returningToStart then humanoid.WalkSpeed = NORMAL_WALKSPEED humanoid:MoveTo(WALK_TARGET) end end end) else upTarget = CF_TARGET + Vector3.new(0, VERTICAL_DISTANCE, 0) phase = "UP" end end end end) end local function startTeleportDetection() if detectionConnection then detectionConnection:Disconnect() end local character = player.Character local root = character and character:FindFirstChild("HumanoidRootPart") if not root then return end lastPosition = root.Position detectionConnection = RunService.Heartbeat:Connect(function() if not running then return end character = player.Character root = character and character:FindFirstChild("HumanoidRootPart") if not root then return end local currentPosition = root.Position if lastPosition and (currentPosition - lastPosition).Magnitude > TELEPORT_DISTANCE and not returningToStart then returningToStart = true if connection then connection:Disconnect() connection = nil end if moveConnection then moveConnection:Disconnect() moveConnection = nil end local humanoid = character:FindFirstChildWhichIsA("Humanoid") if humanoid then humanoid.WalkSpeed = NORMAL_WALKSPEED humanoid:MoveTo(WALK_TARGET) moveConnection = humanoid.MoveToFinished:Connect(function(reached) if moveConnection then moveConnection:Disconnect() moveConnection = nil end if not running then return end if reached then returningToStart = false startCFrame() else task.wait(0.15) if running and returningToStart then humanoid.WalkSpeed = NORMAL_WALKSPEED humanoid:MoveTo(WALK_TARGET) end end end) end end lastPosition = currentPosition end) end local function start() if running then return end running = true returningToStart = true button.Text = "ON" local character = player.Character local humanoid = character and character:FindFirstChildWhichIsA("Humanoid") if not character or not humanoid then stop() return end startTeleportDetection() humanoid.WalkSpeed = NORMAL_WALKSPEED humanoid:MoveTo(WALK_TARGET) moveConnection = humanoid.MoveToFinished:Connect(function(reached) if moveConnection then moveConnection:Disconnect() moveConnection = nil end if not running then return end if reached then returningToStart = false startCFrame() else task.wait(0.15) if running then humanoid.WalkSpeed = NORMAL_WALKSPEED humanoid:MoveTo(WALK_TARGET) end end end) end button.Activated:Connect(function() if running then stop() else start() end end)