Wait Until The World Ends Script (November 2026)

PUBLISHEDUPDATED
1 Available ScriptFree

Grinding out resources before the sun blows up gets old fast, so adding the Wait Until The World Ends script helps you skip the boring manual labor.

You only get thirty days before the world explodes in this sandbox survival game, meaning every second spent swinging a basic shovel counts. You need to mine the land, craft gear, climb the tech ladder, and build up a solid base before the wind picks up and the grass dies.

Since you want to spend less time hitting rocks and more time surviving the apocalypse, grab the working code below and get to work.

Wait Until The World Ends Script – £50 PAID ONLY & More

£50 PAID ONLY & MoreFree
£50 PAID ONLY
-- Ensure old GUI is cleanly removed before running
local ExistingGui = game:GetService("CoreGui"):FindFirstChild("AutoDigGUI") or game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui"):FindFirstChild("AutoDigGUI")
if ExistingGui then ExistingGui:Destroy() end

-- Main Containers
local ScreenGui = Instance.new("ScreenGui")
local MainFrame = Instance.new("Frame")
local TopBar = Instance.new("Frame")
local Title = Instance.new("TextLabel")
local MinimizeBtn = Instance.new("TextButton")
local ToggleBtn = Instance.new("TextButton")
local HardToggleBtn = Instance.new("TextButton")

local UICorner_Main = Instance.new("UICorner")
local UICorner_Top = Instance.new("UICorner")
local UICorner_Btn = Instance.new("UICorner")
local UICorner_HardBtn = Instance.new("UICorner")

ScreenGui.Name = "AutoDigGUI"
ScreenGui.Parent = game:GetService("CoreGui") or game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
ScreenGui.ResetOnSpawn = false

-- Base Window Frame
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 220, 0, 185)
MainFrame.Position = UDim2.new(0.5, -110, 0.4, -92)
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Parent = ScreenGui

UICorner_Main.CornerRadius = UDim.new(0, 10)
UICorner_Main.Parent = MainFrame

-- Draggable Top Bar
TopBar.Name = "TopBar"
TopBar.Size = UDim2.new(1, 0, 0, 35)
TopBar.BackgroundColor3 = Color3.fromRGB(40, 40, 47)
TopBar.BorderSizePixel = 0
TopBar.Parent = MainFrame

UICorner_Top.CornerRadius = UDim.new(0, 10)
UICorner_Top.Parent = TopBar

-- Window Title
Title.Size = UDim2.new(1, -40, 1, 0)
Title.Position = UDim2.new(0, 10, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "V3 Instant-Toggle"
Title.TextColor3 = Color3.fromRGB(240, 240, 240)
Title.TextSize = 14
Title.Font = Enum.Font.SourceSansBold
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = TopBar

-- Minimize Button
MinimizeBtn.Name = "MinimizeBtn"
MinimizeBtn.Size = UDim2.new(0, 30, 0, 30)
MinimizeBtn.Position = UDim2.new(1, -35, 0, 2)
MinimizeBtn.BackgroundTransparency = 1
MinimizeBtn.Text = "−"
MinimizeBtn.TextColor3 = Color3.fromRGB(200, 200, 200)
MinimizeBtn.TextSize = 20
MinimizeBtn.Font = Enum.Font.SourceSansBold
MinimizeBtn.Parent = TopBar

-- Main Regular Dig Toggle Button
ToggleBtn.Name = "ToggleBtn"
ToggleBtn.Size = UDim2.new(0, 180, 0, 45)
ToggleBtn.Position = UDim2.new(0.5, -90, 0, 50)
ToggleBtn.BackgroundColor3 = Color3.fromRGB(220, 50, 50)
ToggleBtn.Text = "Auto Dig: OFF"
ToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
ToggleBtn.TextSize = 16
ToggleBtn.Font = Enum.Font.SourceSansSemibold
ToggleBtn.Parent = MainFrame

UICorner_Btn.CornerRadius = UDim.new(0, 8)
UICorner_Btn.Parent = ToggleBtn

-- Cobblestone (DigHard) Toggle Button
HardToggleBtn.Name = "HardToggleBtn"
HardToggleBtn.Size = UDim2.new(0, 180, 0, 45)
HardToggleBtn.Position = UDim2.new(0.5, -90, 0, 115)
HardToggleBtn.BackgroundColor3 = Color3.fromRGB(220, 50, 50)
HardToggleBtn.Text = "Auto Cobble: OFF"
HardToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
HardToggleBtn.TextSize = 16
HardToggleBtn.Font = Enum.Font.SourceSansSemibold
HardToggleBtn.Parent = MainFrame

UICorner_HardBtn.CornerRadius = UDim.new(0, 8)
UICorner_HardBtn.Parent = HardToggleBtn

-- ==========================================
-- Modern Smooth Dragging Engine
-- ==========================================
local UserInputService = game:GetService("UserInputService")
local dragging, dragInput, dragStart, startPos

local function update(input)
    local delta = input.Position - dragStart
    MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end

TopBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position
        
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

TopBar.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        update(input)
    end
end)

-- ==========================================
-- Minimize/Maximize Engine
-- ==========================================
local isMinimized = false
MinimizeBtn.MouseButton1Click:Connect(function()
    isMinimized = not isMinimized
    if isMinimized then
        ToggleBtn.Visible = false
        HardToggleBtn.Visible = false
        MainFrame.Size = UDim2.new(0, 220, 0, 35)
        MinimizeBtn.Text = "+"
    else
        MainFrame.Size = UDim2.new(0, 220, 0, 185)
        ToggleBtn.Visible = true
        HardToggleBtn.Visible = true
        MinimizeBtn.Text = "−"
    end
end)

-- ==========================================
-- Common Variables & Services
-- ==========================================
local Players = game:GetService("Players")

_G.AutoDigEnabled = false
_G.AutoCobbleEnabled = false

-- ==========================================
-- Thread 1: Regular Auto-Dig (Instant Shutoff)
-- ==========================================
ToggleBtn.MouseButton1Click:Connect(function()
    _G.AutoDigEnabled = not _G.AutoDigEnabled
    
    if _G.AutoDigEnabled then
        ToggleBtn.BackgroundColor3 = Color3.fromRGB(50, 180, 50)
        ToggleBtn.Text = "Auto Dig: ON"
        
        task.spawn(function()
            while _G.AutoDigEnabled do
                local player = Players.LocalPlayer
                local character = player and player.Character
                local rootPart = character and character:FindFirstChild("HumanoidRootPart")
                local digger = character and character:FindFirstChild("Digger")
                
                if digger and rootPart then
                    local blockFill = digger:FindFirstChild("BlockFill")
                    if blockFill and _G.AutoDigEnabled then
                        local args = {
                            rootPart.Position,
                            2,
                            true,
                            false,
                            false,
                            0,
                            workspace:WaitForChild("Terrain"),
                            "Dig"
                        }
                        
                        pcall(function()
                            blockFill:FireServer(unpack(args))
                        end)
                    end
                end
                task.wait(0.1) -- Fast loop delay without click-clashing lag
            end
        end)
    else
        ToggleBtn.BackgroundColor3 = Color3.fromRGB(220, 50, 50)
        ToggleBtn.Text = "Auto Dig: OFF"
    end
end)

-- ==========================================
-- Thread 2: Cobblestone Auto-Dig (Instant Shutoff)
-- ==========================================
HardToggleBtn.MouseButton1Click:Connect(function()
    _G.AutoCobbleEnabled = not _G.AutoCobbleEnabled
    
    if _G.AutoCobbleEnabled then
        HardToggleBtn.BackgroundColor3 = Color3.fromRGB(50, 180, 50)
        HardToggleBtn.Text = "Auto Cobble: ON"
        
        task.spawn(function()
            while _G.AutoCobbleEnabled do
                local player = Players.LocalPlayer
                local character = player and player.Character
                local rootPart = character and character:FindFirstChild("HumanoidRootPart")
                local digger = character and character:FindFirstChild("Digger")
                
                if digger and rootPart then
                    local blockFill = digger:FindFirstChild("BlockFill")
                    if blockFill and _G.AutoCobbleEnabled then
                        local args = {
                            rootPart.Position,
                            2,
                            false,
                            true,
                            false,
                            0,
                            workspace:WaitForChild("Terrain"),
                            "DigHard"
                        }
                        
                        pcall(function()
                            blockFill:FireServer(unpack(args))
                        end)
                    end
                end
                task.wait(0.1) -- Fast loop delay without click-clashing lag
            end
        end)
    else
        HardToggleBtn.BackgroundColor3 = Color3.fromRGB(220, 50, 50)
        HardToggleBtn.Text = "Auto Cobble: OFF"
    end
end)
Executor compatibility changes over time. Check current reports before testing.

Copy the code above into a compatible Roblox script executor if you choose to test it.

Wait Until The World Ends Script Status

✓AvailabilityFree
$Price$0
◫CompatibilityDesktop & Mobile
★SafetyVerified

Roblox and game updates can affect compatibility, so the script’s status should be treated as temporary rather than guaranteed.

Frequently Asked Questions

What is a Wait Until The World Ends script?

A Wait Until The World Ends script is third-party Lua code intended to run alongside the Roblox game through a compatible script executor.

What features does this Wait Until The World Ends script include?

Different scripts contain different code. This version includes: £50 PAID ONLY.

How do you use the Wait Until The World Ends script?

Pick a compatible executor such as Hydrogen, MacSploit, AWP.GG, Delta, Fluxus, Codex, launch Roblox and join the game, copy the complete Lua code from the script card above, paste it into the executor’s editor, and click Run or Execute. Compatibility changes over time, so a name here doesn’t guarantee current support.

Can a Wait Until The World Ends script get your Roblox account banned?

Yes. Third-party scripts can violate Roblox rules and may put an account at risk. Only use code from a source you trust, never enter your Roblox password into a script or executor, and test on an alternate account first.

Does the Wait Until The World Ends script work on mobile?

Check whether both the executor and the script support your device and the current Roblox version. Mobile executor support does not guarantee that every script will work.

Check out our Roblox Scripts hub and Roblox Games Directory for more.

Leave a Comment