KeylessUniversal
Zenthix
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



