robloxexploits.lol
KeylessUniversal

Zenthix

Zamix 18 hours ago 905 views

Run it

Copy the script and paste it into your executor.

Zenthix.lua · 460 lines
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)

Obfuscated. The code is scrambled, so you can't read what it does. Common for key systems, but take care.

Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: discord.gg, raw.githubusercontent.com.

About this script

Clean TopBar UI Framework with Zenthix branding & shimmer animation effect Draggable UI toggle & Reset Position feature Built-in notification system Home Tab: Discord invite, Rejoin Server, and UI Destroyer Player Tab: Anti-AFK simulation, Noclip, and WalkSpeed customizer Script Tab: Dynamic script loader

More universal scripts