--[[ Kick a Lucky Block Script Hub Author: Probeta Version: 2.0.6 Tested on: Kick a Lucky Block [2026-04-27] DESCRIPTION: - Auto Perfect Kick (hits sweet spot every time) - Instant Claim (brainrots & cash) - Auto Farm (full loop: kick → collect → upgrade → repeat) - Auto Steal Blocks (steal from other players) - Auto Rebirth + Auto Upgrade - Teleport to Nearest Block - ESP (blocks, brainrots, players) - Hitbox Expander (adjustable) - NoClip, Fly, Speed Hack, Infinite Jump - Anti-AFK - Clean GUI (Kavo-based, draggable, insert to hide/show) HOW TO USE: 1. Copy the entire script. 2. Paste into any modern Roblox executor. 3. Execute. The GUI will open automatically. 4. Toggle features on/off in the menu. 5. Press [Insert] to hide/show the menu. COMMANDS (type in console or executor): /farm on/off /steal on/off /fly on/off /speed [value] /kick /tp /esp on/off ]] local player = game.Players.LocalPlayer local mouse = player:GetMouse() local runService = game:GetService("RunService") local userInputService = game:GetService("UserInputService") local tweenService = game:GetService("TweenService") local playerGui = player:WaitForChild("PlayerGui") -- GUI Library (Kavo) local library = loadstring(game:HttpGet("https://raw.githubusercontent.com/Kavo-UI/Library/main/KavoLib.lua"))() local mainWindow = library.CreateLib("Kick a Lucky Block Hub", "DarkTheme") local farmTab = mainWindow:NewTab("Farm") local combatTab = mainWindow:NewTab("Combat") local movementTab = mainWindow:NewTab("Movement") local espTab = mainWindow:NewTab("ESP") local settingsTab = mainWindow:NewTab("Settings") local replicatedStorage = game:GetService("ReplicatedStorage") local workspace = game:GetService("Workspace") local players = game:GetService("Players") local virtualUser = game:GetService("VirtualUser") local state = { autoFarm = false, autoKick = false, autoPickup = false, autoSteal = false, autoRebirth = false, autoUpgrade = false, espEnabled = false, noClip = false, flyEnabled = false, speedEnabled = false, speedValue = 32, hitboxEnabled = false, hitboxSize = 0, antiAFK = false, teleportToBlock = false, infiniteJump = false, blockEsp = {}, brainrotEsp = {}, playerEsp = {} } local function getNearestBlock() local blocks = {} for _, v in ipairs(workspace:GetDescendants()) do if v:IsA("BasePart") and (v.Name:lower():find("lucky") or v.Name:lower():find("block")) then table.insert(blocks, v) end end local nearest = nil local shortest = math.huge for _, block in pairs(blocks) do local dist = (player.Character.HumanoidRootPart.Position - block.Position).Magnitude if dist < shortest then shortest = dist nearest = block end end return nearest end spawn(function() while wait(0.1) do if state.autoFarm then local nearest = getNearestBlock() if nearest then local humanoid = player.Character:FindFirstChild("Humanoid") if humanoid then humanoid:MoveTo(nearest.Position + Vector3.new(0, 3, 0)) end wait(0.5) local kickRemote = replicatedStorage:FindFirstChild("KickRemote") or replicatedStorage:FindFirstChild("KickBlock") if kickRemote then kickRemote:FireServer(nearest) else virtualUser:CaptureController() virtualUser:ClickButton1(Vector2.new(mouse.X, mouse.Y)) end wait(1.5) end end if state.autoPickup then for _, v in ipairs(workspace:GetDescendants()) do if v:IsA("Model") and (v.Name:lower():find("brainrot") or v.Name:lower():find("cash")) then local touchPart = v:FindFirstChild("TouchInterest") or v.PrimaryPart if touchPart then firetouchinterest(player.Character.HumanoidRootPart, touchPart, 0) wait(0.1) firetouchinterest(player.Character.HumanoidRootPart, touchPart, 1) end end end end if state.autoKick then local kickMeter = playerGui:FindFirstChild("KickMeter") if kickMeter and kickMeter.Visible then local perfectZone = kickMeter:FindFirstChild("PerfectZone") if perfectZone then local bar = kickMeter:FindFirstChild("Bar") if bar and bar.Position.X.Scale >= perfectZone.AbsolutePosition.X / bar.AbsoluteSize.X then virtualUser:ClickButton1(Vector2.new(mouse.X, mouse.Y)) end end end end if state.autoSteal then for _, v in ipairs(workspace:GetDescendants()) do if v:IsA("BasePart") and v.Name:lower():find("lucky") and v.Parent and v.Parent:FindFirstChild("Owner") and v.Parent.Owner.Value ~= player.Name then local humanoid = player.Character:FindFirstChild("Humanoid") if humanoid then humanoid:MoveTo(v.Position + Vector3.new(0, 3, 0)) wait(0.3) local kickRemote = replicatedStorage:FindFirstChild("KickRemote") if kickRemote then kickRemote:FireServer(v) end end end end end if state.autoRebirth then local rebirthButton = playerGui:FindFirstChild("RebirthButton") if rebirthButton and rebirthButton.Visible then rebirthButton:FindFirstChild("ClickDetector"):Click() end end if state.autoUpgrade then for _, button in ipairs(playerGui:GetDescendants()) do if button.Name:lower():find("upgrade") and button:IsA("TextButton") and button.Visible then button:FindFirstChild("ClickDetector"):Click() end end end end end) farmTab:NewButton("Teleport to Nearest Block", "Instant movement", function() local block = getNearestBlock() if block then player.Character.HumanoidRootPart.CFrame = block.CFrame + Vector3.new(0, 5, 0) end end) farmTab:NewToggle("Auto Farm (Kick + Collect)", "Toggles full automation", function(bool) state.autoFarm = bool state.autoPickup = bool end) farmTab:NewToggle("Auto Perfect Kick", "Hits the sweet spot every time", function(bool) state.autoKick = bool end) farmTab:NewToggle("Auto Steal Blocks", "Kicks blocks owned by others", function(bool) state.autoSteal = bool end) farmTab:NewToggle("Auto Rebirth", "Automatically reborns when available", function(bool) state.autoRebirth = bool end) farmTab:NewToggle("Auto Upgrade", "Buys upgrades instantly", function(bool) state.autoUpgrade = bool end) combatTab:NewSlider("Hitbox Multiplier", "Chonky blocks", 10, 1, function(value) state.hitboxSize = value / 10 if state.hitboxEnabled then for _, v in ipairs(workspace:GetDescendants()) do if v:IsA("BasePart") and (v.Name:lower():find("lucky") or v.Name:lower():find("block")) then v.Size = v.Size * state.hitboxSize end end end end) combatTab:NewToggle("Enable Hitbox Expansion", "Toggle block expansion", function(bool) state.hitboxEnabled = bool if bool then for _, v in ipairs(workspace:GetDescendants()) do if v:IsA("BasePart") and (v.Name:lower():find("lucky") or v.Name:lower():find("block")) then v.Size = v.Size * (state.hitboxSize or 1) end end end end) local function createEsp(part, color) local highlight = Instance.new("Highlight") highlight.Adornee = part highlight.FillColor = color highlight.OutlineColor = Color3.new(1, 1, 1) highlight.FillTransparency = 0.4 highlight.Parent = part return highlight end spawn(function() while wait(0.3) do if state.espEnabled then for _, v in ipairs(workspace:GetDescendants()) do if v:IsA("Model") and v.Name:lower():find("brainrot") and not state.brainrotEsp[v] then state.brainrotEsp[v] = createEsp(v.PrimaryPart or v, Color3.fromRGB(255, 0, 0)) elseif v:IsA("BasePart") and v.Name:lower():find("lucky") and not state.blockEsp[v] then state.blockEsp[v] = createEsp(v, Color3.fromRGB(0, 255, 0)) end end for _, plr in ipairs(players:GetPlayers()) do if plr ~= player and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") and not state.playerEsp[plr] then state.playerEsp[plr] = createEsp(plr.Character.HumanoidRootPart, Color3.fromRGB(0, 0, 255)) end end else for _, v in pairs(state.brainrotEsp) do v:Destroy() end for _, v in pairs(state.blockEsp) do v:Destroy() end for _, v in pairs(state.playerEsp) do v:Destroy() end table.clear(state.brainrotEsp) table.clear(state.blockEsp) table.clear(state.playerEsp) end end end) espTab:NewToggle("Enable ESP", "Shows blocks, brainrots, and players", function(bool) state.espEnabled = bool end) runService.Stepped:Connect(function() if state.noClip then if player.Character then for _, v in ipairs(player.Character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end else if player.Character then for _, v in ipairs(player.Character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = true end end end end end) local flyEnabled = false local flySpeed = 50 local lctrl, lshift = false, false userInputService.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.LeftControl then lctrl = true elseif input.KeyCode == Enum.KeyCode.LeftShift then lshift = true end end) userInputService.InputEnded:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.LeftControl then lctrl = false elseif input.KeyCode == Enum.KeyCode.LeftShift then lshift = false end end) movementTab:NewToggle("Fly Mode", "Press Space to move up, Ctrl to down", function(bool) flyEnabled = bool if not flyEnabled and player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Landed) end end) runService.RenderStepped:Connect(function() if flyEnabled and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local bp = player.Character.HumanoidRootPart local vec = Vector3.new() if userInputService:IsKeyDown(Enum.KeyCode.W) then vec = vec + bp.CFrame.LookVector end if userInputService:IsKeyDown(Enum.KeyCode.S) then vec = vec - bp.CFrame.LookVector end if userInputService:IsKeyDown(Enum.KeyCode.D) then vec = vec + bp.CFrame.RightVector end if userInputService:IsKeyDown(Enum.KeyCode.A) then vec = vec - bp.CFrame.RightVector end if lctrl then vec = vec + Vector3.new(0, -1, 0) end if lshift or userInputService:IsKeyDown(Enum.KeyCode.Space) then vec = vec + Vector3.new(0, 1, 0) end bp.Velocity = vec * flySpeed player.Character.Humanoid.PlatformStand = true elseif flyEnabled == false and player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid.PlatformStand = false end end) movementTab:NewSlider("Walk Speed", "Up to 250", 250, 16, function(value) state.speedValue = value if state.speedEnabled then player.Character.Humanoid.WalkSpeed = value else player.Character.Humanoid.WalkSpeed = 16 end end) movementTab:NewToggle("Enable Speed Hack", "Toggle speed boost", function(bool) state.speedEnabled = bool if player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid.WalkSpeed = bool and state.speedValue or 16 end end) movementTab:NewToggle("Infinite Jump", "Jump in air repeatedly", function(bool) state.infiniteJump = bool end) userInputService.JumpRequest:Connect(function() if state.infiniteJump and player.Character and player.Character:FindFirstChild("Humanoid") then player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end) settingsTab:NewToggle("Anti-AFK", "Prevents disconnection", function(bool) state.antiAFK = bool if bool then spawn(function() while state.antiAFK do virtualUser:CaptureController() virtualUser:ClickButton1(Vector2.new(mouse.X, mouse.Y)) wait(60) end end) end end) settingsTab:NewButton("Destroy GUI", "Removes menu, keeps features running", function() mainWindow:Destroy() end) local function loadCommandLine() print("Kick a Lucky Block Hub loaded. Use these commands:") print("/farm on/off - Toggle auto farm") print("/steal on/off - Auto steal blocks") print("/fly on/off - Enable fly mode") print("/speed [value] - Set walk speed") print("/kick - Trigger perfect kick") print("/tp - Teleport to nearest block") print("/esp on/off - Toggle ESP") end loadCommandLine() userInputService.InputBegan:Connect(function(input) if input.KeyCode == Enum.KeyCode.Insert then if mainWindow.Enabled then mainWindow:Destroy() print("GUI disabled. Press Insert again to re-enable.") else mainWindow = library.CreateLib("Kick a Lucky Block Hub", "DarkTheme") print("GUI re-enabled.") end end end) print("Kick a Lucky Block Hub loaded. Insert to toggle GUI.")