Lewati ke konten
Berfungsi

NEXAL HUB SCRIPT [VERSION 2]

CLclarkdevlinorg0 tayanganIslands26 Jul 2026
Bagikan
NEXAL HUB  SCRIPT [VERSION 2]

Kode Script

Lua
-- [[ NEXAL HUB: ULTIMATE PURPLE ECLIPSE - DARK THEME ]] --
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local UserInputService = game:GetService("UserInputService")
local VirtualUser = game:GetService("VirtualUser")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local localPlayer = Players.LocalPlayer

-- [[ NETWORKING ]] --
local netManaged = ReplicatedStorage:WaitForChild("rbxts_include"):WaitForChild("node_modules"):WaitForChild("@rbxts"):WaitForChild("net"):WaitForChild("out"):WaitForChild("_NetManaged")
local remotes = {
    pickup = netManaged:WaitForChild("CLIENT_TOOL_PICKUP_REQUEST"),
    swing = netManaged:WaitForChild("CIENT_SWING_SWORD"),
    plow = netManaged:WaitForChild("CLIENT_PLOW_BLOCK_REQUEST"),
    harvest = netManaged:WaitForChild("CLIENT_HARVEST_CROP_REQUEST"),
    place = netManaged:WaitForChild("BLOCK_PLACE_REQUEST")
}

-- [[ STATES ]] --
local running = true
local pickupEnabled, auraEnabled, clearEnabled, farmEnabled = false, false, false, false
local selectedCrop = "wheat"
local activeTargets = {}

-- Visual States
local shadowsEnabled = true
local dayNightEnabled = false
local texturesEnabled = true
local originalClockTime = Lighting.ClockTime

-- Store original materials for proper restore
local originalMaterials = {}

-- [[ UI REBUILD ]] --
if CoreGui:FindFirstChild("NexalHub_Purple_Elite") then CoreGui.NexalHub_Purple_Elite:Destroy() end

local screenGui = Instance.new("ScreenGui", CoreGui)
screenGui.Name = "NexalHub_Purple_Elite"
screenGui.ResetOnSpawn = false

local main = Instance.new("Frame", screenGui)
main.Size = UDim2.new(0, 550, 0, 380)
main.Position = UDim2.new(0.5, -275, 0.4, -190)
main.BackgroundColor3 = Color3.fromRGB(8, 8, 12)
main.BorderSizePixel = 0
Instance.new("UICorner", main).CornerRadius = UDim.new(0, 12)

-- Shadow
local shadow = Instance.new("ImageLabel", screenGui)
shadow.BackgroundTransparency = 1
shadow.Image = "rbxassetid://6014261993"
shadow.ImageColor3 = Color3.fromRGB(0,0,0)
shadow.ImageTransparency = 0.65
shadow.Size = UDim2.new(0, 580, 0, 410)
shadow.Position = UDim2.new(0.5, -290, 0.4, -205)
shadow.ZIndex = 0

-- [[ SIDEBAR ]] --
local side = Instance.new("Frame", main)
side.Size = UDim2.new(0, 160, 1, 0)
side.BackgroundColor3 = Color3.fromRGB(12, 10, 18)
side.BorderSizePixel = 0
Instance.new("UICorner", side).CornerRadius = UDim.new(0, 12)

local sep = Instance.new("Frame", side)
sep.Size = UDim2.new(0, 1, 0.8, 0)
sep.Position = UDim2.new(1, -1, 0.1, 0)
sep.BackgroundColor3 = Color3.fromRGB(25, 20, 35)
sep.BorderSizePixel = 0

local title = Instance.new("TextLabel", side)
title.Size = UDim2.new(1, 0, 0, 65)
title.Text = "NEXAL HUB"
title.TextColor3 = Color3.new(1,1,1)
title.Font = "GothamBold"
title.TextSize = 20
title.BackgroundTransparency = 1

local grad = Instance.new("UIGradient", title)
grad.Color = ColorSequence.new({
    ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 60, 200)),
    ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 255, 255)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 60, 200))
})

task.spawn(function()
    while running do
        local t = TweenService:Create(grad, TweenInfo.new(3, Enum.EasingStyle.Linear), {Offset = Vector2.new(1, 0)})
        grad.Offset = Vector2.new(-1, 0)
        t:Play()
        t.Completed:Wait()
    end
end)

-- [[ PAGES ]] --
local container = Instance.new("Frame", main)
container.Position = UDim2.new(0, 170, 0, 20)
container.Size = UDim2.new(1, -190, 1, -40)
container.BackgroundTransparency = 1

local pages = {}
local buttons = {}

local function createPage(name, y)
    local p = Instance.new("ScrollingFrame", container)
    p.Size = UDim2.new(1, 0, 1, 0)
    p.BackgroundTransparency = 1
    p.Visible = (name == "AUTO")
    p.ScrollBarThickness = 0
    p.CanvasSize = UDim2.new(0,0,0,0)
    p.AutomaticCanvasSize = Enum.AutomaticSize.Y

    local layout = Instance.new("UIListLayout", p)
    layout.Padding = UDim.new(0, 10)
    layout.SortOrder = Enum.SortOrder.LayoutOrder

    pages[name] = p

    local b = Instance.new("TextButton", side)
    b.Size = UDim2.new(0.8, 0, 0, 35)
    b.Position = UDim2.new(0.1, 0, 0, y)
    b.Text = name
    b.BackgroundColor3 = (name == "AUTO") and Color3.fromRGB(45, 20, 80) or Color3.fromRGB(20, 18, 28)
    b.TextColor3 = Color3.new(1,1,1)
    b.Font = "GothamSemibold"
    b.TextSize = 12
    b.AutoButtonColor = false
    Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
    buttons[name] = b

    b.MouseButton1Click:Connect(function()
        for _, v in pairs(pages) do v.Visible = false end
        for _, btn in pairs(buttons) do btn.BackgroundColor3 = Color3.fromRGB(20, 18, 28) end
        p.Visible = true
        b.BackgroundColor3 = Color3.fromRGB(45, 20, 80)
    end)
end

local function addToggle(name, parent, callback)
    local frame = Instance.new("Frame", parent)
    frame.Size = UDim2.new(1, 0, 0, 45)
    frame.BackgroundColor3 = Color3.fromRGB(15, 12, 22)
    Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8)

    local t = Instance.new("TextLabel", frame)
    t.Size = UDim2.new(1, -50, 1, 0)
    t.Position = UDim2.new(0, 15, 0, 0)
    t.Text = name
    t.TextColor3 = Color3.fromRGB(220, 220, 220)
    t.Font = "GothamSemibold"
    t.TextSize = 13
    t.TextXAlignment = Enum.TextXAlignment.Left
    t.BackgroundTransparency = 1

    local btn = Instance.new("TextButton", frame)
    btn.Size = UDim2.new(0, 40, 0, 20)
    btn.Position = UDim2.new(1, -55, 0.5, -10)
    btn.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
    btn.Text = ""
    Instance.new("UICorner", btn).CornerRadius = UDim.new(1, 0)

    local circle = Instance.new("Frame", btn)
    circle.Size = UDim2.new(0, 16, 0, 16)
    circle.Position = UDim2.new(0, 2, 0.5, -8)
    circle.BackgroundColor3 = Color3.new(1,1,1)
    Instance.new("UICorner", circle).CornerRadius = UDim.new(1, 0)

    local state = false
    btn.MouseButton1Click:Connect(function()
        state = not state
        callback(state)
        TweenService:Create(circle, TweenInfo.new(0.2), {Position = state and UDim2.new(1, -18, 0.5, -8) or UDim2.new(0, 2, 0.5, -8)}):Play()
        TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = state and Color3.fromRGB(90, 30, 180) or Color3.fromRGB(35, 35, 45)}):Play()
    end)
end

-- Setup Pages
createPage("AUTO", 80)
createPage("FARM", 125)
createPage("NAV", 170)
createPage("VISUALS", 215)

addToggle("Kill Aura", pages.AUTO, function(v) auraEnabled = v end)
addToggle("Auto Pickup", pages.AUTO, function(v) pickupEnabled = v end)
addToggle("Auto Clear", pages.AUTO, function(v) clearEnabled = v end)
addToggle("Master Farm", pages.FARM, function(v) farmEnabled = v end)

-- ==================== VISUALS TAB ====================
addToggle("Disable Shadows", pages.VISUALS, function(v)
    shadowsEnabled = v
    Lighting.GlobalShadows = not v
end)

addToggle("Day/Night Cycle (20min)", pages.VISUALS, function(v)
    dayNightEnabled = v
    if v then
        originalClockTime = Lighting.ClockTime
    else
        Lighting.ClockTime = originalClockTime
    end
end)

addToggle("Disable Textures", pages.VISUALS, function(v)
    texturesEnabled = v
    
    if v then
        -- First time: save original materials
        if next(originalMaterials) == nil then
            for _, obj in ipairs(workspace:GetDescendants()) do
                if obj:IsA("BasePart") then
                    originalMaterials[obj] = obj.Material
                end
            end
        end
        
        -- Disable textures
        for _, obj in ipairs(workspace:GetDescendants()) do
            if obj:IsA("Texture") or obj:IsA("Decal") then
                obj.Transparency = 1
            elseif obj:IsA("BasePart") then
                obj.Material = Enum.Material.Plastic  -- matte / non-reflective
            end
        end
    else
        -- Restore original materials
        for part, originalMat in pairs(originalMaterials) do
            if part and part.Parent then
                part.Material = originalMat
            end
        end
        -- Restore textures
        for _, obj in ipairs(workspace:GetDescendants()) do
            if obj:IsA("Texture") or obj:IsA("Decal") then
                obj.Transparency = 0
            end
        end
    end
end)

local cropLabel = Instance.new("TextLabel", pages.FARM)
cropLabel.Size = UDim2.new(1,0,0,25)
cropLabel.Text = "SELECTED CROP: " .. selectedCrop:upper()
cropLabel.TextColor3 = Color3.fromRGB(160, 80, 255)
cropLabel.Font = "GothamBold"
cropLabel.BackgroundTransparency = 1
cropLabel.TextSize = 11

for _, crop in pairs({"wheat", "onion", "carrot", "tomato"}) do
    local b = Instance.new("TextButton", pages.FARM)
    b.Size = UDim2.new(1, 0, 0, 35)
    b.Text = "Select " .. crop:sub(1,1):upper()..crop:sub(2)
    b.BackgroundColor3 = Color3.fromRGB(18, 16, 28)
    b.TextColor3 = Color3.new(0.8,0.8,0.8)
    b.Font = "GothamSemibold"
    b.TextSize = 12
    Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)

    b.MouseButton1Click:Connect(function()
        selectedCrop = crop
        cropLabel.Text = "SELECTED CROP: " .. crop:upper()
    end)
end

-- [[ LOOPS ]] --

-- Day/Night Cycle
task.spawn(function()
    while running do
        if dayNightEnabled then
            local time = (tick() % 1200) / 1200 * 24
            Lighting.ClockTime = time
        end
        task.wait(0.5)
    end
end)

-- Farming loop (unchanged)
task.spawn(function()
    while running do
        if farmEnabled then
            local island = workspace:FindFirstChild("Islands") and workspace.Islands:FindFirstChild(localPlayer.UserId .. "-island")
            if island then
                local blocks = island:WaitForChild("Blocks"):GetChildren()
                local occupied = {}

                for _, b in ipairs(blocks) do
                    local n = b.Name:lower()
                    if n:find("wheat") or n:find("onion") or n:find("carrot") or n:find("tomato") then
                        occupied[math.floor(b.Position.X) .. "," .. math.floor(b.Position.Z)] = true
                    end
                end

                for _, block in ipairs(blocks) do
                    if not farmEnabled then break end

                    local name = string.lower(block.Name)

                    if name:find(selectedCrop) then
                        remotes.harvest:InvokeServer({player = localPlayer, model = block})

                    elseif block.Name == "farmland" or block.Name == "soil" then
                        local key = math.floor(block.Position.X) .. "," .. math.floor(block.Position.Z)
                        if not occupied[key] then
                            remotes.place:InvokeServer({
                                cframe = CFrame.new(block.Position + Vector3.new(0, 3, 0)),
                                blockType = selectedCrop
                            })
                            occupied[key] = true
                        end
                    end
                end
            end
        end
        task.wait(0.005)
    end
end)

-- (Aura, Pickup, Clear loops unchanged - omitted for brevity)
task.spawn(function()
    while running do
        if auraEnabled and workspace:FindFirstChild("Entities") then
            for _, entity in ipairs(workspace.Entities:GetChildren()) do
                if auraEnabled and entity:IsA("Model") and entity ~= localPlayer.Character and not activeTargets[entity] then
                    activeTargets[entity] = true
                    task.spawn(function()
                        while running and auraEnabled and entity.Parent and entity:FindFirstChild("Humanoid") and entity.Humanoid.Health > 0 do
                            remotes.swing:InvokeServer({ hitUnit = entity });
                            task.wait(0.01)
                        end
                        activeTargets[entity] = nil
                    end)
                end
            end
        end
        task.wait(0.03)
    end
end)

task.spawn(function()
    while running do
        if pickupEnabled then
            local isl = workspace.Islands:FindFirstChild(localPlayer.UserId .. "-island")
            if isl and isl:FindFirstChild("Drops") then
                for _, item in ipairs(isl.Drops:GetChildren()) do
                    remotes.pickup:InvokeServer({ tool = item })
                end
            end
        end
        task.wait(0.01)
    end
end)

task.spawn(function()
    while running do
        if clearEnabled then
            local isl = workspace.Islands:FindFirstChild(localPlayer.UserId .. "-island")
            if isl and isl:FindFirstChild("Blocks") then
                for _, b in ipairs(isl.Blocks:GetChildren()) do
                    if b.Name == "tallGrass" or b.Name == "naturalRock1" then
                        remotes.plow:InvokeServer({ block = b });
                        task.wait(0.1)
                    end
                end
            end
        end
        task.wait(1)
    end
end)

-- [[ NAVIGATION ]] --
local function addTele(name, callback)
    local b = Instance.new("TextButton", pages.NAV)
    b.Size = UDim2.new(1, 0, 0, 40)
    b.Text = "Go to " .. name
    b.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
    b.TextColor3 = Color3.new(1,1,1)
    b.Font = "GothamSemibold"
    b.TextSize = 12
    Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
    b.MouseButton1Click:Connect(callback)
end

addTele("Home Island", function()
    local island = workspace.Islands:FindFirstChild(localPlayer.UserId .. "-island")
    if island and localPlayer.Character:FindFirstChild("HumanoidRootPart") then
        local spawnLoc = island.Blocks:FindFirstChild("SpawnLocation")
        localPlayer.Character.HumanoidRootPart.CFrame = spawnLoc and spawnLoc.CFrame + Vector3.new(0, 3, 0) or island.Blocks:GetChildren()[1].CFrame + Vector3.new(0, 5, 0)
    end
end)

addTele("Main Hub", function()
    if localPlayer.Character:FindFirstChild("HumanoidRootPart") then
        localPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(276.45, 97.40, -561.03)
    end
end)

addTele("Slime Island", function()
    if localPlayer.Character:FindFirstChild("HumanoidRootPart") then
        localPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(926.19, 224.69, -401.42)
    end
end)

-- [[ DRAGGING ]] --
local drag, dragStart, startPos
main.InputBegan:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.MouseButton1 then
        drag, dragStart, startPos = true, i.Position, main.Position
    end
end)
UserInputService.InputChanged:Connect(function(i)
    if drag and i.UserInputType == Enum.UserInputType.MouseMovement then
        local d = i.Position - dragStart
        local newPos = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y)
        main.Position = newPos
        shadow.Position = UDim2.new(newPos.X.Scale, newPos.X.Offset - 15, newPos.Y.Scale, newPos.Y.Offset - 15)
    end
end)
UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then drag = false end end)

UserInputService.InputBegan:Connect(function(i, p)
    if not p and i.KeyCode == Enum.KeyCode.J then
        main.Visible = not main.Visible
        shadow.Visible = main.Visible
    end
end)

localPlayer.Idled:Connect(function() VirtualUser:CaptureController(); VirtualUser:ClickButton2(Vector2.new()) end)

local exit = Instance.new("TextButton", side)
exit.Size = UDim2.new(0.8, 0, 0, 35)
exit.Position = UDim2.new(0.1, 0, 1, -50)
exit.BackgroundColor3 = Color3.fromRGB(90, 20, 20)
exit.Text = "UNLOAD"
exit.TextColor3 = Color3.new(1,1,1)
exit.Font = "GothamBold"
exit.TextSize = 12
Instance.new("UICorner", exit).CornerRadius = UDim.new(0, 6)

exit.MouseButton1Click:Connect(function()
    running = false
    screenGui:Destroy()
end)

print("NEXAL HUB - VERSION 2")

Komentar (0)

Masuk untuk ikut berdiskusi

  • Jadilah yang pertama berkomentar.

Pertanyaan yang sering diajukan

Bagaimana cara menggunakan script NEXAL HUB SCRIPT [VERSION 2]?
Salin kode script di atas, buka executor Roblox Anda, tempel kodenya, lalu tekan execute saat Anda berada di dalam game. Fitur akan aktif seketika setelah script berjalan.
Apakah script NEXAL HUB SCRIPT [VERSION 2] gratis?
Ya. Script ini gratis untuk disalin dan digunakan. Jika menggunakan sistem kunci, ikuti tautan "Dapatkan kunci" untuk membukanya tanpa biaya.
Apakah script NEXAL HUB SCRIPT [VERSION 2] aman digunakan?
Kode sumber lengkap ditampilkan di halaman ini sehingga Anda bisa membaca persis apa yang dilakukannya sebelum menjalankannya. Selalu gunakan executor tepercaya, dan ingat bahwa menggunakan script melanggar ketentuan layanan Roblox, jadi gunakan dengan risiko Anda sendiri.
Executor mana yang kompatibel dengan NEXAL HUB SCRIPT [VERSION 2]?
Script ini bekerja dengan sebagian besar executor Roblox populer. Lihat halaman executor kami untuk menemukan executor gratis atau berbayar yang tepercaya untuk perangkat Anda.
NEXAL HUB SCRIPT [VERSION 2] | BloxScripter