Pull Lucky Blocks Roblox Scripts

Pull Lucky Blocks turns Roblox into a high-stakes treasure hunt where raw strength decides everything. You yank massive Lucky Blocks across the map, drag them home for massive rewards, then upgrade your pull power and rebirth to chase even rarer drops. The catch? Stronger blocks spawn farther out, other players are always stealing, and one wrong move leaves you ragdolled and empty-handed. It’s addictive until the grind kicks in — constantly checking for OG, God, or Divine blocks while manually collecting cash and upgrading everything.

These undetected Pull Lucky Blocks scripts fix that exact pain point. Updated through late March 2026 and built for PC and mobile (KRNL, Cryptic, Delta, CodeX), they automate the entire loop: auto-stealing top-tier blocks, farming power, collecting earnings, upgrading, and rebirthing. Whether you want a clean GUI or a lightweight loader, the scripts below let you focus on the thrill of the pull instead of the repetition.

Pull Lucky Blocks Script GUI (ToraHub) – Auto OG, Auto Exclusive, Auto God

AspectDetails
Script NamePull Lucky Blocks Script GUI (ToraHub)
Supported GamePull Lucky Blocks
Key Features / StatusAuto OG, Auto Exclusive, Auto God, Auto Rebirth / UNDETECTED, Version 1.0.0 (Updated March 26, 2026)
AnalysisToraHub delivers a straightforward GUI packed with the core farming tools players need most. It automatically hunts the highest-value Lucky Blocks (OG, Exclusive, God), collects cash in the background, upgrades everything, boosts strength, and triggers rebirths at the perfect moment. Ideal for steady, set-and-forget progress that turns hours of manual dragging into passive gains.
loadstring(game:HttpGet("https://raw.githubusercontent.com/gumanba/Scripts/main/PullLuckyBlocks"))()

Pull Lucky Blocks Open Source GUI (Phemonaz) – Auto Steal, Auto Power & Rarity Filter

AspectDetails
Script NamePull Lucky Blocks Open Source Script (Phemonaz)
Supported GamePull Lucky Blocks
Key Features / StatusAuto Steal (Rarity Filter), Auto Power, Auto Rebirth, Auto Collect, Auto Upgrade
AnalysisThis fully open-source Fluent GUI gives you total control with toggles for auto power training, VIP door bypass, rebirth, cash collection, smart upgrades, dumbell buying, and pull limit increases. The star feature is the advanced auto-steal system that targets specific rarities, avoids others, and intelligently handles ragdolls and returns — perfect for players who want precision farming without babysitting.
local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/SaveManager.lua"))()
local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/InterfaceManager.lua"))()
-- [services]
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
local Remotes = ReplicatedStorage:WaitForChild("SharedModules"):WaitForChild("Network"):WaitForChild("Remotes")
local DumbellRemote = Remotes:WaitForChild("Activate Dumbell")
local RebirthRemote = Remotes:WaitForChild("Rebirth")
local CollectRemote = Remotes:WaitForChild("Collect Earnings")
local UpgradeFriendRemote = Remotes:WaitForChild("Upgrade Friend")
local BuyDumbellRemote = Remotes:WaitForChild("Buy Dumbell")
local UpgradeCarryRemote = Remotes:WaitForChild("Upgrade Carry Limit")
-- [to find your base]
local function getPlayerBase()
    local plots = workspace:FindFirstChild("Plots")
    if not plots then return nil end
    for i = 1, 5 do
        local base = plots:FindFirstChild("BasePos" .. i)
        if base then
            local owner = base:FindFirstChild("owner")
            if owner and owner:IsA("StringValue") and owner.Value == LocalPlayer.Name then
                return base
            end
        end
    end
    return nil
end

local Window = Fluent:CreateWindow({
    Title = "Pull Lucky Blocks Script",
    SubTitle = "by Phemonaz",
    TabWidth = 160,
    Size = UDim2.fromOffset(550, 430),
    Acrylic = false,
    Theme = "Darker",
    MinimizeKey = Enum.KeyCode.LeftControl
})

local Tabs = {
    Main = Window:AddTab({ Title = "Main", Icon = "box" }),
    Farm = Window:AddTab({ Title = "Farm", Icon = "bot" }),
    Upgrade = Window:AddTab({ Title = "Upgrade", Icon = "wrench" }),
    Settings = Window:AddTab({ Title = "Settings", Icon = "cog" })
}

local Options = Fluent.Options
local connections = {}

do
-----
-----
local Toggle = Tabs.Main:AddToggle("AutoPowerTOGGLE", {Title = "Auto Power", Default = false})
local lastFire = 0
local powerConnection

Toggle:OnChanged(function()
    if Options.AutoPowerTOGGLE.Value then
        powerConnection = RunService.Heartbeat:Connect(function()
            if tick() - lastFire >= 0.05 then
                lastFire = tick()
                DumbellRemote:FireServer()
            end
        end)
    else
        if powerConnection then
            powerConnection:Disconnect()
            powerConnection = nil
        end
    end
end)
Options.AutoPowerTOGGLE:SetValue(false)
-----
-----
local Toggle = Tabs.Main:AddToggle("VIPDoorsToggle", {Title = "Unlock VIP Doors", Default = false})
local storedDoors = {}

Toggle:OnChanged(function()
    if Options.VIPDoorsToggle.Value then
        local VIPDoors = workspace:WaitForChild("Map"):WaitForChild("VIPDoors")
        for _, part in ipairs(VIPDoors:GetChildren()) do
            table.insert(storedDoors, {
                instance = part,
                parent = part.Parent
            })
            part.Parent = nil
        end
    else
        for _, data in ipairs(storedDoors) do
            data.instance.Parent = data.parent
        end
        storedDoors = {}
    end
end)
Options.VIPDoorsToggle:SetValue(false)
-----
-----
local ToggleRebirth = Tabs.Main:AddToggle("AutoRebirth", {Title = "Auto Rebirth", Default = false})
ToggleRebirth:OnChanged(function()
    if Options.AutoRebirth.Value then
        local last = 0
        connections.rebirth = RunService.Heartbeat:Connect(function()
            if tick() - last >= 1 then
                last = tick()
                RebirthRemote:FireServer()
            end
        end)
    else
        if connections.rebirth then connections.rebirth:Disconnect() connections.rebirth = nil end
    end
end)
Options.AutoRebirth:SetValue(false)
-----
-----
local ToggleCollect = Tabs.Main:AddToggle("AutoCollect", {Title = "Auto Collect Cash", Default = false})
ToggleCollect:OnChanged(function()
    if Options.AutoCollect.Value then
        local last = 0
        local index = 1
        connections.collect = RunService.Heartbeat:Connect(function()
            if tick() - last >= 0.1 then
                last = tick()
                local base = getPlayerBase()
                if not base then return end
                local stands = base.Stands:GetChildren()
                while index <= #stands and not stands[index]:FindFirstChild("Upgrade") do
                    index = index + 1
                end
                if index > #stands then
                    index = 1
                    return
                end
                local stand = stands[index]
                LocalPlayer.Character:PivotTo(stand:GetPivot())
                CollectRemote:FireServer(stand.Name)
                index = index + 1
            end
        end)
    else
        if connections.collect then connections.collect:Disconnect() connections.collect = nil end
    end
end)
Options.AutoCollect:SetValue(false)
-----
-----
local Input = Tabs.Upgrade:AddInput("UpgradeLevel", {
    Title = "Max Upgrade Level",
    Default = "10",
    Placeholder = "Enter max level...",
    Numeric = true,
    Finished = false,
    Callback = function(Value)
        print("Target level set:", Value)
    end
})
local ToggleUpgrade = Tabs.Upgrade:AddToggle("AutoUpgrade", {Title = "Auto Upgrade Brainrots", Default = false})
ToggleUpgrade:OnChanged(function()
    if Options.AutoUpgrade.Value then
        local last = 0
        local pendingUpgrade = {}
        connections.upgrade = RunService.Heartbeat:Connect(function()
            if tick() - last >= 0.1 then
                last = tick()
                local base = getPlayerBase()
                if not base then return end
                local targetLevel = tonumber(Input.Value) or 10
                local stands = base.Stands
                for _, stand in ipairs(stands:GetChildren()) do
                    if stand:FindFirstChild("Upgrade") then
                        local levelLabel = stand.Upgrade
                            :FindFirstChild("SurfaceGui")
                            and stand.Upgrade.SurfaceGui
                            :FindFirstChild("Frame")
                            and stand.Upgrade.SurfaceGui.Frame
                            and stand.Upgrade.SurfaceGui.Frame.Button
                            and stand.Upgrade.SurfaceGui.Frame.Button
                            :FindFirstChild("Level")
                        if levelLabel then
                            local currentLevel = tonumber(levelLabel.Text:match("Lvl%s*(%d+)"))
                            if currentLevel then
                                if pendingUpgrade[stand.Name] and currentLevel ~= pendingUpgrade[stand.Name] then
                                    pendingUpgrade[stand.Name] = nil
                                end
                                if not pendingUpgrade[stand.Name] and currentLevel < targetLevel then
                                    pendingUpgrade[stand.Name] = currentLevel
                                    UpgradeFriendRemote:FireServer(stand.Name)
                                end
                            end
                        end
                    end
                end
            end
        end)
    else
        if connections.upgrade then
            connections.upgrade:Disconnect()
            connections.upgrade = nil
        end
    end
end)
Options.AutoUpgrade:SetValue(false)
-----
-----
local ToggleDumbell = Tabs.Upgrade:AddToggle("AutoDumbell", {Title = "Auto Buy Dumbells", Default = false})
ToggleDumbell:OnChanged(function()
    if Options.AutoDumbell.Value then
        local last = 0
        connections.dumbell = RunService.Heartbeat:Connect(function()
            if tick() - last >= 0.1 then
                last = tick()
                for i = 1, 25 do
                    BuyDumbellRemote:FireServer("Dumbell_" .. i)
                end
            end
        end)
    else
        if connections.dumbell then connections.dumbell:Disconnect() connections.dumbell = nil end
    end
end)
Options.AutoDumbell:SetValue(false)
-----
-----
local ToggleCarry = Tabs.Upgrade:AddToggle("AutoCarry", {Title = "Auto Upgrade Pull Limit", Default = false})
ToggleCarry:OnChanged(function()
    if Options.AutoCarry.Value then
        local last = 0
        connections.carry = RunService.Heartbeat:Connect(function()
            if tick() - last >= 1 then
                last = tick()
                UpgradeCarryRemote:FireServer()
            end
        end)
    else
        if connections.carry then connections.carry:Disconnect() connections.carry = nil end
    end
end)
Options.AutoCarry:SetValue(false)
-----
-----
local rarityThresholds = {
    {name = "Divine",       value = 425000000},
    {name = "OG",           value = 50000000},
    {name = "Brainrot God", value = 10000000},
    {name = "Secret",       value = 2500000},
    {name = "Mythic",       value = 300000},
    {name = "Legendary",    value = 50000},
    {name = "Epic",         value = 10000},
    {name = "Rare",         value = 1250},
    {name = "Common",       value = 100},
}
local rarityRank = {}
for rank, tier in ipairs(rarityThresholds) do
    rarityRank[tier.name] = rank
end
local stealRunning = false
local excludedRarities = {}
local function parseStrength(str)
    str = tostring(str):gsub(",", ""):gsub("%s", "")
    local num, suffix = str:match("^([%d\.]+)([KkMmBbTt]?)$")
    if not num then return 0 end
    num = tonumber(num) or 0
    suffix = suffix:upper()
    if suffix == "K" then num = num * 1000
    elseif suffix == "M" then num = num * 1000000
    elseif suffix == "B" then num = num * 1000000000
    end
    return num
end
local function isBeingStolen(model)
    local mass = model:FindFirstChild("Mass")
    if not mass then return false end
    local stealing = mass:FindFirstChild("STEALING")
    return stealing ~= nil and stealing:IsA("RopeConstraint")
end
local function getRarityText(model)
    local text = nil
    pcall(function()
        text = model.FriendBillboard.Frame.Rarity.Text
    end)
    return text
end
local function isRagdolled()
    local char = workspace:FindFirstChild(LocalPlayer.Name)
    if not char then return false end
    local ragdolled = char:FindFirstChild("Ragdolled")
    return ragdolled and ragdolled:IsA("BoolValue") and ragdolled.Value == true
end
local function waitForRagdollEnd()
    while stealRunning and isRagdolled() do
        task.wait(0.1)
    end
    if not stealRunning then return false end
    task.wait(0.5)
    return true
end
local function attemptSteal(model, rootPart, prompt)
    local MAX_RETRIES = 6
    for attempt = 1, MAX_RETRIES do
        if not stealRunning then return "skip" end
        if not model.Parent then return "skip" end
        if isBeingStolen(model) then return "skip" end
        if isRagdolled() then
            return "ragdoll"
        end
        pcall(function()
            LocalPlayer.Character:PivotTo(rootPart.CFrame)
        end)
        task.wait(0.67)
        if not stealRunning then return "skip" end
        if not model.Parent then return "skip" end
        if isBeingStolen(model) then return "skip" end
        if isRagdolled() then
            return "ragdoll"
        end
        pcall(function() fireproximityprompt(prompt) end)
        task.wait(1.18)
        if not stealRunning then return "skip" end
        if not model.Parent then return "skip" end
        if isBeingStolen(model) then return "skip" end
        if isRagdolled() then
            return "ragdoll"
        end
    end
    return "skip"
end
local function returnHome()
    local HOME = CFrame.new(287, 11, 304)
    while stealRunning do
        if isRagdolled() then
            return false
        end
        pcall(function()
            LocalPlayer.Character:PivotTo(HOME)
        end)
        task.wait(0.1)
        break
    end
    return stealRunning
end
local ExcludeDropdown = Tabs.Farm:AddDropdown("ExcludeRarities", {
    Title = "Exclude Rarities to Collect",
    Description = "excludes what u select",
    Values = {"Common", "Rare", "Epic", "Legendary", "Mythic", "Secret", "Brainrot God", "OG", "Divine"},
    Multi = true,
    Default = {},
})
ExcludeDropdown:OnChanged(function(Value)
    excludedRarities = {}
    for rarity, state in next, Value do
        if state then excludedRarities[rarity] = true end
    end
end)
local ToggleSteal = Tabs.Farm:AddToggle("AutoSteal", {Title = "Auto Collect Lucky Blocks", Default = false})
ToggleSteal:OnChanged(function()
    if Options.AutoSteal.Value then
        stealRunning = true
        task.spawn(function()
            while stealRunning do
                if isRagdolled() then
                    local ok = waitForRagdollEnd()
                    if not ok then break end
                    continue
                end
                local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
                local strengthStat = leaderstats and leaderstats:FindFirstChild("Strength")
                if not strengthStat then task.wait(1) continue end
                local strength = parseStrength(strengthStat.Value)
                local eligibleRarities = {}
                for _, tier in ipairs(rarityThresholds) do
                    if strength >= tier.value and not excludedRarities[tier.name] then
                        eligibleRarities[tier.name] = true
                    end
                end
                if not next(eligibleRarities) then task.wait(1) continue end
                local friendsFolder = workspace:FindFirstChild("Live")
                    and workspace.Live:FindFirstChild("Friends")
                if not friendsFolder then task.wait(1) continue end
                local candidates = {}
                for _, model in ipairs(friendsFolder:GetChildren()) do
                    if not model:IsA("Model") then continue end
                    local rarity = getRarityText(model)
                    if not rarity then continue end
                    if not eligibleRarities[rarity] then continue end
                    if isBeingStolen(model) then continue end
                    local rootPart = model:FindFirstChild("RootPart")
                    if not rootPart then continue end
                    local prompt = rootPart:FindFirstChild("StealPrompt")
                    if not prompt then continue end
                    table.insert(candidates, {
                        model  = model,
                        root   = rootPart,
                        prompt = prompt,
                        rank   = rarityRank[rarity] or 999,
                    })
                end
                if #candidates == 0 then task.wait(1) continue end
                local bestRank = math.huge
                for _, c in ipairs(candidates) do
                    if c.rank < bestRank then bestRank = c.rank end
                end
                local targets = {}
                for _, c in ipairs(candidates) do
                    if c.rank == bestRank then
                        table.insert(targets, c)
                    end
                end
                local ragdolledMidLoop = false
                for _, target in ipairs(targets) do
                    if not stealRunning then break end
                    if not target.model.Parent then continue end
                    if isBeingStolen(target.model) then continue end
                    local result = attemptSteal(target.model, target.root, target.prompt)
                    if result == "ragdoll" then
                        local ok = waitForRagdollEnd()
                        ragdolledMidLoop = true
                        if not ok then stealRunning = false end
                        break
                    end
                    if stealRunning and target.model and target.model.Parent then
                        local HOME = CFrame.new(287, 11, 304)
                        local giveUp = tick() + 5 -- don't wait forever
                        while stealRunning and target.model and target.model.Parent and tick() < giveUp do
                            if isRagdolled() then
                                local ok = waitForRagdollEnd()
                                ragdolledMidLoop = true
                                if not ok then stealRunning = false end
                                break
                            end
                            pcall(function() LocalPlayer.Character:PivotTo(HOME) end)
                            task.wait(0.1)
                        end
                        if ragdolledMidLoop then break end
                    end
                    task.wait(0.5)
                end
                if stealRunning and not ragdolledMidLoop then
                    task.wait(0.5)
                end
            end
        end)
    else
        stealRunning = false
    end
end)
Options.AutoSteal:SetValue(false)
-----
-----
SaveManager:SetLibrary(Fluent)
InterfaceManager:SetLibrary(Fluent)
SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({})
InterfaceManager:SetFolder("FluentScriptHub")
SaveManager:SetFolder("FluentScriptHub/specific-game")
InterfaceManager:BuildInterfaceSection(Tabs.Settings)
SaveManager:BuildConfigSection(Tabs.Settings)
Window:SelectTab(1)
SaveManager:LoadAutoloadConfig()
end

Scripterzz HUB Pull Lucky Blocks Script – Auto OG, Auto Exclusive & Auto God

AspectDetails
Script NamePull Lucky Blocks Script (Scripterzz HUB)
Supported GamePull Lucky Blocks
Key Features / StatusAuto OG, Auto Exclusive, Auto God, Auto Collect Cash
AnalysisThis hub-style script focuses on the premium rarities with built-in cash collection and upgrades. Clean and regularly updated, it’s excellent for players who want reliable high-tier farming without extra complexity.
loadstring(game:HttpGet("https://raw.githubusercontent.com/unkegrrr/ScripterzzHUB/refs/heads/main/HUB.lua"))()

FartezHub Pull Lucky Blocks Script – Auto Steal, Auto Transcendent & Auto Divine

AspectDetails
Script NameFartezHub Pull Lucky Blocks Script
Supported GamePull Lucky Blocks
Key Features / StatusAuto Steal (Rarity Choice), Auto Transcendent, Auto Divine, Auto God / No Key
AnalysisFartezHub’s updated UI brings powerful auto-steal with custom rarity filters plus brand-new Transcendent and Crab support. It also includes auto-collect, auto-upgrade, and hitbox tweaks — a complete package for aggressive farmers who want the rarest blocks fast.
loadstring(game:HttpGet("https://raw.githubusercontent.com/fartez127-design/FARTEZHUB/refs/heads/main/Farte01"))()

Racky Pull Lucky Blocks Script – Auto Steal, Auto Rebirth & Auto Collect

AspectDetails
Script NameRacky Auto Steal Script for Pull Lucky Blocks
Supported GamePull Lucky Blocks
Key Features / StatusAuto Steal, Auto Rebirth, Auto Collect, Auto Upgrade / Free VIP
AnalysisRacky keeps it simple yet effective with core automation for stealing, collecting, buying, upgrading, and rebirth. The included free VIP access makes it a strong all-rounder for consistent daily progress.
loadstring(game:HttpGet("https://pastebin.com/raw/F7XYyVDw"))()

WENDIGO Pull Lucky Blocks Script – Auto OG, Auto Upgrade & Auto Strength

AspectDetails
Script NameWENDIGO Pull Lucky Blocks Script
Supported GamePull Lucky Blocks
Key Features / StatusAuto OG, Auto Upgrade All, Auto Strength
AnalysisFocused on strength training and OG block hunting, this script handles upgrades and power gains automatically. Lightweight and direct — perfect if you want fast strength scaling without a full GUI.
loadstring(game:HttpGet("https://raw.githubusercontent.com/wendigothe48-maker/promoteds/main/PullLuckyblock"))()

Luminis Hub for Pull Lucky Blocks – Fast Power Farm & Lucky Block Auto Farm

AspectDetails
Script NameLuminis Hub Pull Lucky Blocks
Supported GamePull Lucky Blocks
Key Features / StatusOP Fast Farming, Power Farm, Auto Lucky Blocks
AnalysisLuminis Hub excels at rapid power and block farming with smooth execution. It’s a top choice for players chasing maximum efficiency and leaderboard climbs through optimized automation.
loadstring(game:HttpGet("https://api.luarmor.net/files/v4/loaders/24df4399c3458d81346da5dda02fe1d1.lua"))()

These Pull Lucky Blocks scripts turn a grind-heavy experience into something smooth and rewarding. Auto-steal handles the risky part, rebirths keep your progress snowballing, and strength upgrades happen in the background — all while you watch your inventory fill with the rarest blocks.

Quick tip for best results: Start with the ToraHub or Phemonaz GUI if you like visual controls, or go FartezHub if you want the latest Transcendent support. Test in a fresh server, enable one major toggle at a time, and join the Discord/Telegram communities for real-time updates as the game evolves.

If you’re tired of watching other players snatch the God blocks while you’re still dragging Commons, these tools give you the edge. Load your favorite executor, pick the script that matches your style, and start pulling like a pro. The rarest Lucky Blocks are waiting — now you’ll actually get to them first. What are you farming today: pure strength or that next Divine rebirth streak?

Leave a Comment