Merge a nuke AUTO UPGRADE
Key Required

Merge a nuke AUTO UPGRADE

[☢️] Merge a Nuke!InlawryInlawry 260 views 2.7K executesUpdated Aug 12, 2026
Unrated
00
Lua Script•421 lines (11971 chars)
-- ╔══════════════════════════════════════════════════════════════════════╗
-- ║           NUKE AUTO UPGRADE  —  Wind UI  •  LocalScript            ║
-- ╚══════════════════════════════════════════════════════════════════════╝

local cloneref = (cloneref or clonereference or function(i) return i end)

-- ┌──────────────────────────────────────────────────────────────────────┐
-- │  Wind UI загрузка                                                    │
-- └──────────────────────────────────────────────────────────────────────┘
local WindUI
do
    local ok, result = pcall(function()
        return require("./src/Init")
    end)
    if ok then
        WindUI = result
    else
        if cloneref(game:GetService("RunService")):IsStudio() then
            WindUI = require(cloneref(
                game:GetService("ReplicatedStorage")
                    :WaitForChild("WindUI")
                    :WaitForChild("Init")
            ))
        else
            WindUI = loadstring(game:HttpGet(
                "https://raw.githubusercontent.com/Footagesus/WindUI/main/dist/main.lua"
            ))()
        end
    end
end

-- ┌──────────────────────────────────────────────────────────────────────┐
-- │  REMOTE                                                              │
-- └──────────────────────────────────────────────────────────────────────┘
local PurchaseUpgrade = game:GetService("ReplicatedStorage")
    :WaitForChild("NukeRemotes")
    :WaitForChild("PurchaseUpgrade")

local RequestLockBase = game:GetService("ReplicatedStorage")
    :WaitForChild("NukeRemotes")
    :WaitForChild("RequestLockBase")

-- ┌──────────────────────────────────────────────────────────────────────┐
-- │  СОСТОЯНИЕ                                                           │
-- └──────────────────────────────────────────────────────────────────────┘
local State = {
    running    = false,
    thread     = nil,
    interval   = 100,
    doLockbase        = true,
    doTier            = true,
    doMax             = true,
    doRequestLockBase = true,
    totalFires        = 0,
}

-- ┌──────────────────────────────────────────────────────────────────────┐
-- │  ЛОГИКА АПГРЕЙДОВ                                                    │
-- └──────────────────────────────────────────────────────────────────────┘
local function fireUpgrades()
    if State.doLockbase then
        PurchaseUpgrade:FireServer("LOCKBASE")
        State.totalFires += 1
    end
    if State.doTier then
        PurchaseUpgrade:FireServer("TIER")
        State.totalFires += 1
    end
    if State.doMax then
        PurchaseUpgrade:FireServer("MAX")
        State.totalFires += 1
    end
    if State.doRequestLockBase then
        RequestLockBase:FireServer()
        State.totalFires += 1
    end
end

local statusLabel  -- заполнится после создания UI

local function runLoop()
    while State.running do
        fireUpgrades()
        if statusLabel then
            statusLabel:SetDesc("Всего отправлено: " .. State.totalFires)
        end
        task.wait(State.interval / 1000)
    end
end

local function startLoop()
    if State.running then return end
    if not (State.doLockbase or State.doTier or State.doMax or State.doRequestLockBase) then
        WindUI:Notify({
            Title   = "Ничего не выбрано",
            Content = "Выбери хотя бы один апгрейд.",
            Icon    = "triangle-alert",
            Duration = 3,
        })
        return
    end
    State.running = true
    State.thread  = task.spawn(runLoop)
end

local function stopLoop()
    State.running = false
    if State.thread then
        task.cancel(State.thread)
        State.thread = nil
    end
end

-- ┌──────────────────────────────────────────────────────────────────────┐
-- │  СКРЫТИЕ NotifFrame                                                  │
-- └──────────────────────────────────────────────────────────────────────┘
local function hideNotifFrames()
    local playerGui = game:GetService("Players").LocalPlayer
        :WaitForChild("PlayerGui")

    -- Скрыть уже существующие
    for _, obj in ipairs(playerGui:GetDescendants()) do
        if obj:IsA("Frame") and obj.Name:lower():find("notif") then
            obj.Visible = false
        end
    end

    -- Скрывать новые при появлении
    playerGui.DescendantAdded:Connect(function(obj)
        if obj:IsA("Frame") and obj.Name:lower():find("notif") then
            task.defer(function()
                obj.Visible = false
            end)
        end
    end)
end

task.spawn(hideNotifFrames)

-- ┌──────────────────────────────────────────────────────────────────────┐
-- │  ОКНО                                                                │
-- └──────────────────────────────────────────────────────────────────────┘
local Window = WindUI:CreateWindow({
    Title  = "Nuke Auto Upgrade",
    Author = "AutoScript",
    Folder = "NukeAutoUpgrade",
    Icon   = "zap",
    NewElements = true,
    OpenButton = {
        Title        = "Nuke Upgrade",
        CornerRadius = UDim.new(1, 0),
        StrokeThickness = 2,
        Enabled      = true,
        Draggable    = true,
        OnlyMobile   = false,
        Scale        = 0.5,
        Color        = ColorSequence.new(
            Color3.fromHex("#a855f7"),
            Color3.fromHex("#6366f1")
        ),
    },
    Topbar = {
        Height      = 44,
        ButtonsType = "Mac",
    },
})

-- ┌──────────────────────────────────────────────────────────────────────┐
-- │  ВКЛАДКИ                                                             │
-- └──────────────────────────────────────────────────────────────────────┘
local MainTab = Window:Tab({
    Title = "Main",
    Icon  = "zap",
})

local SettTab = Window:Tab({
    Title = "Settings",
    Icon  = "settings",
})

-- ════════════════════════════════════════════════════════════
--  MAIN TAB
-- ════════════════════════════════════════════════════════════

-- ── Секция: выбор апгрейдов ──────────────────────────────
local TargetsSection = MainTab:Section({
    Title  = "Upgrade Targets",
    Opened = true,
})

TargetsSection:Toggle({
    Title   = "LOCKBASE",
    Desc    = "FireServer(\"LOCKBASE\") каждый тик",
    Value   = true,
    Callback = function(v)
        State.doLockbase = v
    end,
})

TargetsSection:Space()

TargetsSection:Toggle({
    Title   = "TIER",
    Desc    = "FireServer(\"TIER\") каждый тик",
    Value   = true,
    Callback = function(v)
        State.doTier = v
    end,
})

TargetsSection:Space()

TargetsSection:Toggle({
    Title   = "MAX",
    Desc    = "FireServer(\"MAX\") каждый тик",
    Value   = true,
    Callback = function(v)
        State.doMax = v
    end,
})

TargetsSection:Space()

TargetsSection:Toggle({
    Title   = "RequestLockBase",
    Desc    = "NukeRemotes.RequestLockBase:FireServer()",
    Value   = true,
    Callback = function(v)
        State.doRequestLockBase = v
    end,
})

MainTab:Space()

-- ── Секция: управление ───────────────────────────────────
local ControlSection = MainTab:Section({
    Title  = "Control",
    Opened = true,
})

-- Кнопка Start/Stop (меняет текст сама себя)
local startStopBtn
startStopBtn = ControlSection:Button({
    Title    = "▶  Start Auto Upgrade",
    Desc     = "Запустить цикл апгрейдов",
    Color    = Color3.fromHex("#a855f7"),
    Icon     = "play",
    Justify  = "Left",
    Callback = function()
        if State.running then
            stopLoop()
            startStopBtn:SetTitle("▶  Start Auto Upgrade")
            startStopBtn:SetDesc("Запустить цикл апгрейдов")
            startStopBtn:SetIcon("play")
            startStopBtn:SetColor(Color3.fromHex("#a855f7"))
            WindUI:Notify({
                Title    = "Остановлено",
                Content  = "Цикл апгрейдов остановлен.",
                Icon     = "square",
                Duration = 2,
            })
        else
            startLoop()
            if State.running then
                startStopBtn:SetTitle("⏹  Stop Auto Upgrade")
                startStopBtn:SetDesc("Нажми чтобы остановить")
                startStopBtn:SetIcon("square")
                startStopBtn:SetColor(Color3.fromHex("#ef4444"))
                WindUI:Notify({
                    Title    = "Запущено",
                    Content  = "Цикл апгрейдов активен!",
                    Icon     = "zap",
                    Duration = 2,
                })
            end
        end
    end,
})

ControlSection:Space()

ControlSection:Button({
    Title    = "Однократный запуск",
    Desc     = "Выполнить выбранные апгрейды один раз",
    Icon     = "mouse-pointer-click",
    Callback = function()
        local before = State.totalFires
        fireUpgrades()
        local fired = State.totalFires - before
        WindUI:Notify({
            Title    = "Выполнено",
            Content  = "Отправлено " .. fired .. " запрос(ов).",
            Icon     = "check",
            Duration = 2,
        })
        if statusLabel then
            statusLabel:SetDesc("Всего отправлено: " .. State.totalFires)
        end
    end,
})

MainTab:Space()

-- ── Секция: статус ────────────────────────────────────────
local StatusSection = MainTab:Section({
    Title  = "Status",
    Opened = true,
})

statusLabel = StatusSection:Section({
    Title    = "Ожидание запуска...",
    Desc     = "Всего отправлено: 0",
    TextSize = 14,
})

StatusSection:Space()

StatusSection:Section({
    Title    = "NotifFrame",
    Desc     = "Скрывается автоматически ✓",
    TextSize = 14,
})

-- ════════════════════════════════════════════════════════════
--  SETTINGS TAB
-- ════════════════════════════════════════════════════════════

local IntervalSection = SettTab:Section({
    Title  = "Interval",
    Opened = true,
})

IntervalSection:Slider({
    Title = "Delay (мс)",
    Desc  = "Задержка между тиками цикла",
    Step  = 50,
    Value = {
        Min     = 50,
        Max     = 2000,
        Default = 100,
    },
    Callback = function(v)
        State.interval = v
    end,
})

SettTab:Space()

local NotifSection = SettTab:Section({
    Title  = "Notifications",
    Opened = true,
})

NotifSection:Toggle({
    Title    = "Скрывать NotifFrame",
    Desc     = "Авто-скрытие уведомлений игры",
    Value    = true,
    Callback = function(v)
        if v then
            task.spawn(hideNotifFrames)
        end
    end,
})

NotifSection:Space()

NotifSection:Button({
    Title    = "Скрыть NotifFrame сейчас",
    Desc     = "Принудительно скрыть все фреймы",
    Icon     = "eye-off",
    Callback = function()
        local count = 0
        for _, obj in ipairs(game:GetService("Players").LocalPlayer
            :WaitForChild("PlayerGui"):GetDescendants()) do
            if obj:IsA("Frame") and obj.Name:lower():find("notif") then
                obj.Visible = false
                count += 1
            end
        end
        WindUI:Notify({
            Title    = "NotifFrame",
            Content  = "Скрыто фреймов: " .. count,
            Icon     = "eye-off",
            Duration = 3,
        })
    end,
})

SettTab:Space()

local ResetSection = SettTab:Section({
    Title  = "Misc",
    Opened = true,
})

ResetSection:Button({
    Title    = "Сбросить счётчик",
    Icon     = "rotate-ccw",
    Callback = function()
        State.totalFires = 0
        if statusLabel then
            statusLabel:SetDesc("Всего отправлено: 0")
        end
        WindUI:Notify({
            Title    = "Сброшено",
            Content  = "Счётчик обнулён.",
            Icon     = "check",
            Duration = 2,
        })
    end,
})

-- ┌──────────────────────────────────────────────────────────────────────┐
-- │  СТАРТ УВЕДОМЛЕНИЕ                                                   │
-- └──────────────────────────────────────────────────────────────────────┘
WindUI:Notify({
    Title    = "Nuke Auto Upgrade",
    Content  = "Скрипт загружен. Выбери цели → Start.",
    Icon     = "zap",
    Duration = 4,
})

Features & Information

Auto upgrade Lock base

Community Comments (0)

No comments yet for this script.

More Scripts for [☢️] Merge a Nuke!