local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local hrp = character:WaitForChild("HumanoidRootPart") local autoFarm = false local iceFarmed = 0 -- ================== EDIT THIS ================== -- 1. Go to the obby -- 2. Stand on each checkpoint / platform (including the finish platform) -- 3. Run in console (F9): print(game.Players.LocalPlayer.Character.HumanoidRootPart.Position) -- 4. Copy the Vector3 and paste it here (add as many as you want) local waypoints = { Vector3.new(0, 5, 0), -- ← REPLACE THESE Vector3.new(50, 10, 20), Vector3.new(120, 25, 80), Vector3.new(200, 15, 150), Vector3.new(280, 40, 220), -- last one should be near the claim prompt -- Add more lines if your obby has more checkpoints } local tweenSpeed = 350 -- higher = faster (300-400 is good) local claimDelay = 1.2 -- seconds to wait after claim -- =============================================== -- Create draggable GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "KnockoutAutoFarm" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 260, 0, 180) frame.Position = UDim2.new(0.5, -130, 0.3, 0) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 30) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = screenGui Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10) local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 40) title.BackgroundTransparency = 1 title.Text = "🚀 Knockout Auto Ice Farm" title.TextColor3 = Color3.fromRGB(0, 255, 120) title.TextSize = 18 title.Font = Enum.Font.GothamBold title.Parent = frame local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0.9, 0, 0, 45) toggleBtn.Position = UDim2.new(0.05, 0, 0, 50) toggleBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 45) toggleBtn.Text = "START AUTO FARM" toggleBtn.TextColor3 = Color3.new(1,1,1) toggleBtn.TextSize = 16 toggleBtn.Font = Enum.Font.GothamSemibold toggleBtn.Parent = frame Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8) local status = Instance.new("TextLabel") status.Size = UDim2.new(0.9, 0, 0, 25) status.Position = UDim2.new(0.05, 0, 0, 105) status.BackgroundTransparency = 1 status.Text = "Status: Idle" status.TextColor3 = Color3.fromRGB(180, 180, 180) status.TextSize = 14 status.Parent = frame local counter = Instance.new("TextLabel") counter.Size = UDim2.new(0.9, 0, 0, 25) counter.Position = UDim2.new(0.05, 0, 0, 135) counter.BackgroundTransparency = 1 counter.Text = "Ice farmed: 0" counter.TextColor3 = Color3.fromRGB(0, 255, 150) counter.TextSize = 14 counter.Parent = frame -- Tween helper local function tweenTo(pos) local distance = (pos - hrp.Position).Magnitude local tweenInfo = TweenInfo.new(distance / tweenSpeed, Enum.EasingStyle.Linear) local tween = TweenService:Create(hrp, tweenInfo, {CFrame = CFrame.new(pos + Vector3.new(0, 4, 0))}) tween:Play() tween.Completed:Wait() end -- Find and trigger any nearby claim prompt local function claimReward() for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("ProximityPrompt") then if (obj.Parent.Position - hrp.Position).Magnitude < 40 then pcall(function() local oldHold = obj.HoldDuration obj.HoldDuration = 0 obj:InputHoldBegin() task.wait(0.4) obj:InputHoldEnd() obj.HoldDuration = oldHold end) break end end end end -- Main farm loop local function startFarming() while autoFarm and character and character:FindFirstChild("HumanoidRootPart") do status.Text = "Running obby..." for i, pos in ipairs(waypoints) do if not autoFarm then break end status.Text = "Checkpoint " .. i .. "/" .. #waypoints tweenTo(pos) task.wait(0.15) end if not autoFarm then break end status.Text = "Claiming 10 Ice..." claimReward() task.wait(claimDelay) iceFarmed += 10 counter.Text = "Ice farmed: " .. iceFarmed status.Text = "Restarting obby..." task.wait(0.8) -- Teleport back to start for next run if #waypoints > 0 then hrp.CFrame = CFrame.new(waypoints[1] + Vector3.new(0, 5, 0)) end end status.Text = "Status: Stopped" end -- Toggle button toggleBtn.MouseButton1Click:Connect(function() autoFarm = not autoFarm if autoFarm then toggleBtn.Text = "STOP AUTO FARM" toggleBtn.BackgroundColor3 = Color3.fromRGB(220, 50, 50) spawn(startFarming) else toggleBtn.Text = "START AUTO FARM" toggleBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 45) end end) -- Reconnect if character respawns player.CharacterAdded:Connect(function(newChar) character = newChar hrp = newChar:WaitForChild("HumanoidRootPart") end) print("✅ Knockout Auto Ice Farm loaded!") print(" → Edit the 'waypoints' table with your checkpoint positions") print(" → Toggle the GUI to start farming")