Universal Script – Zenthix - Verified script for Universal Roblox
Key RequiredUniversal

Universal Script – Zenthix

Universal ScriptZamixZamix 1.4K views 4.1K executesUpdated Oct 18, 2026
Unrated
00
Lua Script•460 lines (17410 chars)
local HttpService = game:GetService("HttpService")
local CoreGui = game:GetService("CoreGui")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")

-- 1. Hapus UI Lama jika ada
if CoreGui:FindFirstChild("AdvancedTopUI") then
    CoreGui.AdvancedTopUI:Destroy()
end

-- 2. ScreenGui Utama
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "AdvancedTopUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = CoreGui
ScreenGui.IgnoreGuiInset = true

-- Container Notifikasi (Pojok Kanan Bawah)
local NotificationContainer = Instance.new("Frame")
NotificationContainer.Name = "NotificationContainer"
NotificationContainer.AnchorPoint = Vector2.new(1, 1)
NotificationContainer.Position = UDim2.new(1, -20, 1, -20)
NotificationContainer.Size = UDim2.new(0, 220, 0, 300)
NotificationContainer.BackgroundTransparency = 1
NotificationContainer.Parent = ScreenGui

local NotifLayout = Instance.new("UIListLayout")
NotifLayout.VerticalAlignment = Enum.VerticalAlignment.Bottom
NotifLayout.SortOrder = Enum.SortOrder.LayoutOrder
NotifLayout.Padding = UDim.new(0, 6)
NotifLayout.Parent = NotificationContainer

-- Fungsi Notifikasi
local function Notify(title, message, duration)
    duration = duration or 2.5
    
    local NotifFrame = Instance.new("Frame")
    NotifFrame.Size = UDim2.new(1, 0, 0, 45)
    NotifFrame.BackgroundColor3 = Color3.fromRGB(15, 25, 55)
    NotifFrame.BackgroundTransparency = 0.2
    NotifFrame.BorderSizePixel = 0
    NotifFrame.Parent = NotificationContainer

    local NotifCorner = Instance.new("UICorner")
    NotifCorner.CornerRadius = UDim.new(0, 6)
    NotifCorner.Parent = NotifFrame

    local NotifStroke = Instance.new("UIStroke")
    NotifStroke.Color = Color3.fromRGB(70, 120, 240)
    NotifStroke.Thickness = 1
    NotifStroke.Parent = NotifFrame

    local NotifTitle = Instance.new("TextLabel")
    NotifTitle.Size = UDim2.new(1, -10, 0, 18)
    NotifTitle.Position = UDim2.new(0, 8, 0, 4)
    NotifTitle.BackgroundTransparency = 1
    NotifTitle.Font = Enum.Font.GothamBold
    NotifTitle.Text = title
    NotifTitle.TextColor3 = Color3.fromRGB(100, 180, 255)
    NotifTitle.TextSize = 11
    NotifTitle.TextXAlignment = Enum.TextXAlignment.Left
    NotifTitle.Parent = NotifFrame

    local NotifMsg = Instance.new("TextLabel")
    NotifMsg.Size = UDim2.new(1, -10, 0, 18)
    NotifMsg.Position = UDim2.new(0, 8, 0, 22)
    NotifMsg.BackgroundTransparency = 1
    NotifMsg.Font = Enum.Font.Gotham
    NotifMsg.Text = message
    NotifMsg.TextColor3 = Color3.fromRGB(220, 220, 220)
    NotifMsg.TextSize = 10
    NotifMsg.TextXAlignment = Enum.TextXAlignment.Left
    NotifMsg.Parent = NotifFrame

    -- Animasi Masuk & Keluar
    NotifFrame.Position = UDim2.new(1, 240, 0, 0)
    TweenService:Create(NotifFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Position = UDim2.new(0, 0, 0, 0)}):Play()
    
    task.delay(duration, function()
        local tweenOut = TweenService:Create(NotifFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {BackgroundTransparency = 1})
        TweenService:Create(NotifTitle, TweenInfo.new(0.3), {TextTransparency = 1}):Play()
        TweenService:Create(NotifMsg, TweenInfo.new(0.3), {TextTransparency = 1}):Play()
        TweenService:Create(NotifStroke, TweenInfo.new(0.3), {Transparency = 1}):Play()
        tweenOut:Play()
        tweenOut.Completed:Connect(function() NotifFrame:Destroy() end)
    end)
end

-- 3. TopBar Utama (Navigasi Kanan Atas)
local TopBar = Instance.new("Frame")
TopBar.Name = "TopBar"
TopBar.AnchorPoint = Vector2.new(1, 0)
TopBar.Position = UDim2.new(1, -5, 0, 0)
TopBar.Size = UDim2.new(0, 320, 0, 30)
TopBar.BackgroundColor3 = Color3.fromRGB(12, 20, 48)
TopBar.BackgroundTransparency = 0.2
TopBar.BorderSizePixel = 0
TopBar.Parent = ScreenGui

local TopBarStroke = Instance.new("UIStroke")
TopBarStroke.Color = Color3.fromRGB(50, 90, 200)
TopBarStroke.Thickness = 1.5
TopBarStroke.Parent = TopBar

local TopBarLayout = Instance.new("UIListLayout")
TopBarLayout.FillDirection = Enum.FillDirection.Horizontal
TopBarLayout.SortOrder = Enum.SortOrder.LayoutOrder
TopBarLayout.Padding = UDim.new(0, 2)
TopBarLayout.Parent = TopBar

-- =======================================================
-- BRAND LABEL "ZENTHIX" DENGAN EFEK CAHAYA BERGERAK (SHIMMER)
-- =======================================================
local BrandLabel = Instance.new("TextLabel")
BrandLabel.Name = "BrandLabel"
BrandLabel.Size = UDim2.new(0, 100, 1, 0)
BrandLabel.BackgroundTransparency = 1
BrandLabel.Font = Enum.Font.GothamBold
BrandLabel.Text = "ZENTHIX"
BrandLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
BrandLabel.TextSize = 16
BrandLabel.LayoutOrder = 99 -- Diposisikan paling kanan di dalam TopBar
BrandLabel.Parent = TopBar

-- UIGradient untuk memberikan efek cahaya halus pada teks
local BrandGradient = Instance.new("UIGradient")
BrandGradient.Color = ColorSequence.new({
    ColorSequenceKeypoint.new(0.0, Color3.fromRGB(50, 90, 200)),
    ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 255, 255)),
    ColorSequenceKeypoint.new(1.0, Color3.fromRGB(50, 100, 200))
})
BrandGradient.Parent = BrandLabel

-- Animasi Looping Menggeser Gradasi (Slow Aesthetic Effect)
BrandGradient.Offset = Vector2.new(-1, 0)
local glowTweenInfo = TweenInfo.new(3.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true)
TweenService:Create(BrandGradient, glowTweenInfo, {Offset = Vector2.new(1, 0)}):Play()

-- Fitur Dragging TopBar
-- =======================================================
-- SISTEM DRAGGING DENGAN TOGGLE ON / OFF
-- =======================================================
local isDraggable = false -- Status default drag: OFF
local dragging, dragStart, startPos

TopBar.InputBegan:Connect(function(input)
    -- Mengecek apakah fitur dragging sedang diaktifkan (ON)
    if not isDraggable then return end
    
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = TopBar.Position
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if dragging and isDraggable and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        local delta = input.Position - dragStart
        TopBar.Position = UDim2.new(
            startPos.X.Scale, startPos.X.Offset + delta.X,
            startPos.Y.Scale, startPos.Y.Offset + delta.Y
        )
    end
end)

UserInputService.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = false
    end
end)

-- Multi-Tab Manager
local activeDropdown = nil
local Library = {}

function Library:AddTab(tabName, tabWidth)
    local TabButton = Instance.new("TextButton")
    TabButton.Name = tabName .. "Tab"
    TabButton.Size = UDim2.new(0, tabWidth, 1, 0)
    TabButton.BackgroundColor3 = Color3.fromRGB(18, 30, 70)
    TabButton.BackgroundTransparency = 0.3
    TabButton.BorderSizePixel = 0
    TabButton.Font = Enum.Font.GothamBold
    TabButton.Text = tabName
    TabButton.TextColor3 = Color3.fromRGB(240, 240, 240)
    TabButton.TextSize = 12
    TabButton.Parent = TopBar

    local TabStroke = Instance.new("UIStroke")
    TabStroke.Color = Color3.fromRGB(50, 90, 200)
    TabStroke.Thickness = 1
    TabStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
    TabStroke.Parent = TabButton

    local Dropdown = Instance.new("Frame")
    Dropdown.Name = tabName .. "Dropdown"
    Dropdown.Position = UDim2.new(0, 0, 1, 3)
    Dropdown.Size = UDim2.new(1, 0, 0, 0)
    Dropdown.BackgroundColor3 = Color3.fromRGB(12, 20, 48)
    Dropdown.BackgroundTransparency = 0.15
    Dropdown.BorderSizePixel = 0
    Dropdown.ClipsDescendants = true
    Dropdown.Parent = TabButton

    local DropdownStroke = Instance.new("UIStroke")
    DropdownStroke.Color = Color3.fromRGB(50, 90, 200)
    DropdownStroke.Thickness = 1
    DropdownStroke.Parent = Dropdown

    local DropdownLayout = Instance.new("UIListLayout")
    DropdownLayout.SortOrder = Enum.SortOrder.LayoutOrder
    DropdownLayout.Padding = UDim.new(0, 2)
    DropdownLayout.Parent = Dropdown

    local currentHeight = 0
    local TabElements = {}

    local function updateHeight(delta)
        currentHeight = currentHeight + delta
        if activeDropdown == Dropdown then
            TweenService:Create(Dropdown, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(1, 0, 0, currentHeight)}):Play()
        end
    end

    -- Toggle Buka/Tutup
    TabButton.MouseButton1Click:Connect(function()
        if activeDropdown and activeDropdown ~= Dropdown then
            TweenService:Create(activeDropdown, TweenInfo.new(0.2), {Size = UDim2.new(1, 0, 0, 0)}):Play()
        end

        if activeDropdown == Dropdown then
            TweenService:Create(Dropdown, TweenInfo.new(0.2), {Size = UDim2.new(1, 0, 0, 0)}):Play()
            activeDropdown = nil
        else
            TweenService:Create(Dropdown, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(1, 0, 0, currentHeight)}):Play()
            activeDropdown = Dropdown
        end
    end)

    -- 1. ELEMEN: BUTTON
    function TabElements:AddButton(text, callback)
        local Btn = Instance.new("TextButton")
        Btn.Size = UDim2.new(1, 0, 0, 26)
        Btn.BackgroundColor3 = Color3.fromRGB(22, 36, 85)
        Btn.BackgroundTransparency = 0.4
        Btn.BorderSizePixel = 0
        Btn.Font = Enum.Font.Gotham
        Btn.Text = text
        Btn.TextColor3 = Color3.fromRGB(220, 220, 220)
        Btn.TextSize = 11
        Btn.Parent = Dropdown

        Btn.MouseButton1Click:Connect(function()
            if callback then callback() end
        end)

        updateHeight(28)
    end

    -- 2. ELEMEN: TOGGLE (ON / OFF)
    function TabElements:AddToggle(text, default, callback)
        local toggled = default or false
        
        local ToggleBtn = Instance.new("TextButton")
        ToggleBtn.Size = UDim2.new(1, 0, 0, 26)
        ToggleBtn.BackgroundColor3 = Color3.fromRGB(22, 36, 85)
        ToggleBtn.BackgroundTransparency = 0.4
        ToggleBtn.BorderSizePixel = 0
        ToggleBtn.Font = Enum.Font.Gotham
        ToggleBtn.Text = "  " .. text
        ToggleBtn.TextColor3 = toggled and Color3.fromRGB(100, 255, 150) or Color3.fromRGB(180, 180, 180)
        ToggleBtn.TextSize = 11
        ToggleBtn.TextXAlignment = Enum.TextXAlignment.Left
        ToggleBtn.Parent = Dropdown

        local StatusLabel = Instance.new("TextLabel")
        StatusLabel.Size = UDim2.new(0, 30, 1, 0)
        StatusLabel.Position = UDim2.new(1, -30, 0, 0)
        StatusLabel.BackgroundTransparency = 1
        StatusLabel.Font = Enum.Font.GothamBold
        StatusLabel.Text = toggled and "ON" or "OFF"
        StatusLabel.TextColor3 = toggled and Color3.fromRGB(100, 255, 150) or Color3.fromRGB(255, 100, 100)
        StatusLabel.TextSize = 10
        StatusLabel.Parent = ToggleBtn

        ToggleBtn.MouseButton1Click:Connect(function()
            toggled = not toggled
            StatusLabel.Text = toggled and "ON" or "OFF"
            StatusLabel.TextColor3 = toggled and Color3.fromRGB(100, 255, 150) or Color3.fromRGB(255, 100, 100)
            ToggleBtn.TextColor3 = toggled and Color3.fromRGB(100, 255, 150) or Color3.fromRGB(180, 180, 180)
            
            if callback then callback(toggled) end
        end)

        updateHeight(28)
    end

    -- 3. ELEMEN: TEXTBOX (INPUT TEXT)
    function TabElements:AddTextBox(placeholder, callback)
        local BoxFrame = Instance.new("Frame")
        BoxFrame.Size = UDim2.new(1, 0, 0, 26)
        BoxFrame.BackgroundColor3 = Color3.fromRGB(22, 36, 85)
        BoxFrame.BackgroundTransparency = 0.4
        BoxFrame.BorderSizePixel = 0
        BoxFrame.Parent = Dropdown

        local TextBox = Instance.new("TextBox")
        TextBox.Size = UDim2.new(1, -10, 1, 0)
        TextBox.Position = UDim2.new(0, 5, 0, 0)
        TextBox.BackgroundTransparency = 1
        TextBox.Font = Enum.Font.Gotham
        TextBox.PlaceholderText = placeholder
        TextBox.PlaceholderColor3 = Color3.fromRGB(120, 120, 140)
        TextBox.Text = ""
        TextBox.TextColor3 = Color3.fromRGB(240, 240, 240)
        TextBox.TextSize = 11
        TextBox.Parent = BoxFrame

        TextBox.FocusLost:Connect(function(enterPressed)
            if enterPressed and callback then
                callback(TextBox.Text)
            end
        end)

        updateHeight(28)
    end

    return TabElements
end

-- =======================================================
-- CARA PENGGUNAAN SKRIP (EKSEKUSI FITUR HUB)
-- =======================================================

-- Tab 1: Home
local HomeTab = Library:AddTab("Home", 70)

HomeTab:AddButton("Discord Invite", function()
    setclipboard("https://discord.gg/example")
    Notify("Success", "Link Discord tersimpan di Clipboard!", 2)
end)

HomeTab:AddButton("Rejoin Server", function()
    game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, game.JobId)
end)

-- Fitur Toggle Drag ON / OFF di Tab Home
HomeTab:AddToggle("Drag UI", false, function(state)
    isDraggable = state -- Mengubah variabel penanda drag
    Notify("UI Dragging", state and "Drag Diaktifkan (ON)" or "Drag Dinonaktifkan (OFF)", 2)
end)

-- Tombol Reset Posisi UI
HomeTab:AddButton("Reset Posisi", function()
    -- Mengembalikan posisi TopBar ke titik semula secara halus
    TweenService:Create(TopBar, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
        Position = UDim2.new(1, -5, 0, 0)
    }):Play()
    Notify("Reset Posisi", "Posisi UI dikembalikan ke semula", 2)
end)

-- Tombol Hapus GUI (Destroy UI)
HomeTab:AddButton("Hapus GUI", function()
    Notify("UI Destroyer", "Menghapus UI Hub...", 1.5)
    task.wait(0.5)
    ScreenGui:Destroy()
end)

-- Tab 2: Player Options
local PlayerTab = Library:AddTab("Player", 70)

-- Variabel untuk menyimpan koneksi event anti-afk
local antiAfkConnection = nil

PlayerTab:AddToggle("Anti-AFK", false, function(state)
    if state then
        -- Menggunakan VirtualUser untuk mensimulasikan aktivitas player agar tidak kena kick AFK
        local vu = game:GetService("VirtualUser")
        antiAfkConnection = Players.LocalPlayer.Idled:Connect(function()
            vu:Button2Down(Vector2.new(0, 0), workspace.CurrentCamera.CFrame)
            task.wait(1)
            vu:Button2Up(Vector2.new(0, 0), workspace.CurrentCamera.CFrame)
        end)
        Notify("Anti-AFK", "Aktif (Terhindar dari Kick)", 2)
    else
        -- Mematikan/memutus koneksi saat toggle diubah ke OFF
        if antiAfkConnection then
            antiAfkConnection:Disconnect()
            antiAfkConnection = nil
        end
        Notify("Anti-AFK", "Nonaktif", 2)
    end
end)

PlayerTab:AddToggle("Noclip", false, function(state)
    Notify("Noclip Mode", state and "Dikeluarkan dari Kolisi" or "Normal", 2)
end)

PlayerTab:AddTextBox("WalkSpeed...", function(text)
    local speed = tonumber(text)
    if speed then
        Players.LocalPlayer.Character.Humanoid.WalkSpeed = speed
        Notify("Speed Updated", "WalkSpeed diubah ke " .. speed, 2)
    end
end)

-- Tab 3: Server & Extra
local ScriptTab = Library:AddTab("Script", 70)

-- URL Raw JSON GitHub kamu
local jsonUrl = "https://raw.githubusercontent.com/zdanx/pitur/refs/heads/main/script.json"

-- Mengambil data dari URL menggunakan pcall untuk mencegah error jika internet/koneksi bermasalah
local success, response = pcall(function()
    return game:HttpGet(jsonUrl)
end)

if success then
    local decodeSuccess, scriptList = pcall(function()
        return HttpService:JSONDecode(response)
    end)
    
    if decodeSuccess and type(scriptList) == "table" then
        -- Perulangan untuk setiap item data di dalam file JSON[cite: 4]
        for _, scriptData in ipairs(scriptList) do
            local scriptName = scriptData.Nama
            local scriptUrl = scriptData.Url
            
            -- Tambahkan tombol secara dinamis ke dalam ScriptTab
            ScriptTab:AddButton(scriptName, function()
                -- Eksekusi script saat tombol diklik
                local execSuccess, execErr = pcall(function()
                    loadstring(game:HttpGet(scriptUrl))()
                end)
                
                if execSuccess then
                    Notify("Script Executed", "Berhasil menjalankan: " .. scriptName, 2)
                else
                    Notify("Execution Error", "Gagal menjalankan " .. scriptName .. ": " .. tostring(execErr), 3)
                end
            end)
        end
        Notify("Dynamic Scripts", "Berhasil memuat daftar script dari GitHub!", 2)
    else
        Notify("JSON Error", "Format data JSON tidak valid.", 3)
    end
else
    Notify("Network Error", "Gagal mengambil data script dari GitHub.", 3)
end

--[[
ScriptTab:AddButton("Infinite Yield", function()
    
    Notify("Success", "Script Infinite Yield diaktifkan!", 2)
end)
]]
Notify("Prometheus UI", "UI Framework Berhasil Dimuat!", 3)

How to Execute Universal Script – Zenthix

Step 1: Copy Code: Click the Copy Code button in the viewer above to grab the clean Lua loadstring.

Step 2: Launch Executor: Open a compatible, unpatched executor. If you need one, check our Roblox Executors Directory.

Step 3: Join Experience: Launch Roblox and join Universal Script.

Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.

Created By

Zamix
Zamix
Script Creator
View Author Profile

Features & Information

Execute Universal Script – Zenthix. Key system required, created by Zamix, updated Oct 18, 2026. Tested and working on supported executors.

Script Changelog (2)

@QueueSpeedDemonOct 18, 2026

Edited during review before approval

@ZamixOct 18, 2026

Create script

Community Comments (0)

No comments yet for this script.

Frequently Asked Questions

How do I execute Universal Script – Zenthix in Roblox?

To run Universal Script – Zenthix, copy the Lua loadstring from the code viewer above, launch Roblox and join Universal Script, attach a working executor (such as Potassium, Solara, or Delta from our Executors directory), paste the code into your executor console, and click Execute.

Is Universal Script – Zenthix keyless or does it require an access key?

Universal Script – Zenthix requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.

Is Universal Script – Zenthix currently safe and working?

This script is active and operational. Always test scripts using a secondary (alt) Roblox account to safeguard your main profile against anti-cheat bans.