local player = game.Players.LocalPlayer local UIS = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local Debris = game:GetService("Debris") -- Character local character = player.Character or player.CharacterAdded:Wait() local root = character:WaitForChild("HumanoidRootPart") player.CharacterAdded:Connect(function(char) character = char root = character:WaitForChild("HumanoidRootPart") end) -- GUI local gui = Instance.new("ScreenGui") gui.Name = "AutoFarmUI" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") -- Button local button = Instance.new("TextButton") button.Size = UDim2.new(0, 180, 0, 55) button.Position = UDim2.new(0, 25, 0, 25) button.Text = "" button.BackgroundColor3 = Color3.fromRGB(35,35,35) button.Parent = gui Instance.new("UICorner", button).CornerRadius = UDim.new(0,12) -- Gradient local gradient = Instance.new("UIGradient") gradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(60,60,60)), ColorSequenceKeypoint.new(1, Color3.fromRGB(25,25,25)) } gradient.Rotation = 90 gradient.Parent = button -- Stroke local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(80,80,80) stroke.Thickness = 2 stroke.Parent = button -- Shadow local shadow = Instance.new("Frame") shadow.Size = button.Size shadow.Position = button.Position + UDim2.new(0,4,0,4) shadow.BackgroundColor3 = Color3.fromRGB(0,0,0) shadow.BackgroundTransparency = 0.6 shadow.ZIndex = 0 shadow.Parent = gui Instance.new("UICorner", shadow).CornerRadius = UDim.new(0,12) -- Label local label = Instance.new("TextLabel") label.Size = UDim2.new(1,0,1,0) label.BackgroundTransparency = 1 label.Text = "AutoFarm: OFF" label.Font = Enum.Font.GothamBold label.TextSize = 18 label.TextColor3 = Color3.fromRGB(255,255,255) label.Parent = button -- Settings local autofarm = false local distance = 10 local speed = 0.1 -- Tween helper local function tween(obj, props) TweenService:Create(obj, TweenInfo.new(0.15), props):Play() end -- Fonts local fonts = { Enum.Font.Gotham, Enum.Font.GothamBold, Enum.Font.Arcade, Enum.Font.FredokaOne, Enum.Font.Cartoon, Enum.Font.Bangers, Enum.Font.SourceSansBold, Enum.Font.Code, Enum.Font.RobotoMono } -- Rainbow local function getRainbowColor(t) return Color3.fromHSV(t % 1, 1, 1) end -- Hover FX local hovering = false local finalRotation = -3 button.MouseEnter:Connect(function() hovering = true tween(button, {Size = UDim2.new(0,210,0,70)}) TweenService:Create(label, TweenInfo.new(0.15), { TextSize = 22 }):Play() -- tilt once local tilt1 = TweenService:Create(label, TweenInfo.new(0.12), {Rotation = 6}) local tilt2 = TweenService:Create(label, TweenInfo.new(0.12), {Rotation = finalRotation}) tilt1:Play() tilt1.Completed:Connect(function() tilt2:Play() end) -- effects loop task.spawn(function() local t = 0 while hovering do local c1 = getRainbowColor(t) local c2 = getRainbowColor(t + 0.3) label.Font = fonts[math.random(1,#fonts)] label.TextColor3 = c1 gradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, c1), ColorSequenceKeypoint.new(1, c2) } t = t + 0.05 task.wait(0.03) end end) end) button.MouseLeave:Connect(function() hovering = false tween(button, {Size = UDim2.new(0,180,0,55)}) label.Font = Enum.Font.GothamBold label.TextSize = 18 label.TextColor3 = Color3.fromRGB(255,255,255) label.Rotation = finalRotation gradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(60,60,60)), ColorSequenceKeypoint.new(1, Color3.fromRGB(25,25,25)) } end) -- Drag local dragging = false local dragInput, dragStart, startPos local moved = false local function update(input) local delta = input.Position - dragStart if delta.Magnitude > 5 then moved = true end local newPos = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) button.Position = newPos shadow.Position = newPos + UDim2.new(0,4,0,4) end button.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true moved = false dragStart = input.Position startPos = button.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) button.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) -- CLICK EFFECT + TOGGLE button.MouseButton1Click:Connect(function() if moved then return end -- press animation local originalSize = button.Size local press = TweenService:Create(button, TweenInfo.new(0.08), { Size = originalSize - UDim2.new(0,10,0,10) }) local release = TweenService:Create(button, TweenInfo.new(0.1), { Size = originalSize }) press:Play() press.Completed:Connect(function() release:Play() end) -- ripple local ripple = Instance.new("Frame") ripple.Size = UDim2.new(0,0,0,0) ripple.Position = UDim2.new(0.5,0,0.5,0) ripple.AnchorPoint = Vector2.new(0.5,0.5) ripple.BackgroundColor3 = Color3.fromRGB(255,255,255) ripple.BackgroundTransparency = 0.5 ripple.Parent = button Instance.new("UICorner", ripple).CornerRadius = UDim.new(1,0) TweenService:Create(ripple, TweenInfo.new(0.4), { Size = UDim2.new(0,200,0,200), BackgroundTransparency = 1 }):Play() Debris:AddItem(ripple, 0.4) -- flash local old = gradient.Color gradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(255,255,255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(200,200,200)) } task.delay(0.1, function() gradient.Color = old end) -- toggle autofarm = not autofarm label.Text = autofarm and "AutoFarm: ON" or "AutoFarm: OFF" end) -- Movement task.spawn(function() while true do if autofarm and root then root.CFrame = root.CFrame + root.CFrame.LookVector * distance task.wait(speed) root.CFrame = root.CFrame - root.CFrame.LookVector * distance task.wait(speed) else task.wait(0.1) end end end)