READ DESCRIPTION  autofarm
Key Required

READ DESCRIPTION autofarm

Grace [GRACE BUT EVIL]zestpulityzestpulity 2.5K views 661 executesUpdated Mar 30, 2026
5.0/ 5(4 votes)
40100% Positive
Lua Script•263 lines (6959 chars)
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)

Features & Information

https://www.youtube.com/watch?v=_tKhqWhkWc0&t=16s THIS IS THE TUTORIAL ON HOW TO USE IT In this script you can get a level every 0.25 seconds if you use it properly, you can use it overnight or afk also if you want to by deleting goat man (in the tutorial also) credit to @Noob_ for making a script before this
#grace#autofarm

Community Comments (15)

VeryNetlyyyVeryNetlyyyMar 30, 2026

tysm best scripttt

RedzGuyRedzGuyMar 30, 2026

why ts don't put a credits because he stealed my idea... PUT CREDITS KID

RedzGuyRedzGuyMar 30, 2026(edited)

Im really saying serious. I Published my Autofarm script first kid this is a copy but I accept everything in that script Like it don't get all the *ets (Totally different but still a copy) I accepet all the *ets Thanks for reading.

Replying to @RedzGuy
zestpulityzestpulityMar 31, 2026

@Noob_ I saw another video about this without exploits and I made one with exploits but i didn’t know you made one before so I will credit you still

Replying to @zestpulity
RedzGuyRedzGuyMar 31, 2026

@zestpulity Thanks.

randomsrcipterrandomsrcipterApr 2, 2026

could you add a death farm where it basically famrs deaths for you

Replying to @randomsrcipter
zestpulityzestpulityApr 3, 2026

@randomscipter I will try but it will be a separate script

A2000A2000Apr 4, 2026

It don't work it just teleports me to the saferoom

Replying to @A2000
zestpulityzestpulityApr 8, 2026

@A2000 are you talking about the void rooms that teleport you to the safe room? if you are you have to go back then use it, keep going forward untill you start gettting xp and levels

whatyyyyywhatyyyyyApr 5, 2026

I made an auto death farm script for this script

whatyyyyywhatyyyyyApr 5, 2026

use it on WOED

Replying to @whatyyyyy
Johan1Johan1Apr 8, 2026

@whatyyyyy what's WOED??

Replying to @Johan1
whatyyyyywhatyyyyyApr 9, 2026

@Johan1 World of Eternal Domains

YouknowiscriptYouknowiscriptApr 8, 2026

tysm

RedzGuyRedzGuySep 27, 2026

Hiii im back after some um... days?

More Scripts for Grace [GRACE BUT EVIL]