Ui Luna update
Key RequiredUniversal

Ui Luna update

Universal ScriptWelionWelion 433 views 375 executesUpdated Apr 26, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•256 lines (9354 chars)
local LunaVenyx = Instance.new("ScreenGui")
local MainFrame = Instance.new("Frame")
local TopBar = Instance.new("Frame")
local TabHolder = Instance.new("Frame")
local ContentFrame = Instance.new("Frame")

LunaVenyx.Name = "LunaVenyxGlass"
LunaVenyx.Parent = game:GetService("CoreGui")
LunaVenyx.ResetOnSpawn = false

-- 1. Janela Principal (500x300 Inicial)
MainFrame.Name = "MainFrame"
MainFrame.Parent = LunaVenyx
MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
MainFrame.BackgroundTransparency = 0.25
MainFrame.Position = UDim2.new(0.5, -250, 0.5, -150)
MainFrame.Size = UDim2.new(0, 500, 0, 300)
MainFrame.BorderSizePixel = 0

local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 12)
UICorner.Parent = MainFrame

-- Barra Superior (Sem título, apenas para arrastar)
TopBar.Name = "TopBar"
TopBar.Parent = MainFrame
TopBar.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
TopBar.BackgroundTransparency = 0.4
TopBar.Size = UDim2.new(1, 0, 0, 25)

local TopCorner = Instance.new("UICorner")
TopCorner.CornerRadius = UDim.new(0, 12)
TopCorner.Parent = TopBar

-- Container de Abas (Lado Esquerdo) - Usando % para não quebrar
TabHolder.Name = "TabHolder"
TabHolder.Parent = MainFrame
TabHolder.BackgroundColor3 = Color3.fromRGB(10, 10, 15)
TabHolder.BackgroundTransparency = 0.5
TabHolder.Position = UDim2.new(0.02, 0, 0.12, 0)
TabHolder.Size = UDim2.new(0.25, 0, 0.84, 0)

local TabList = Instance.new("UIListLayout")
TabList.Parent = TabHolder
TabList.Padding = UDim.new(0, 4)

local TabCorner = Instance.new("UICorner")
TabCorner.CornerRadius = UDim.new(0, 8)
TabCorner.Parent = TabHolder

-- Container de Conteúdo (Lado Direito) - Usando % para não quebrar
ContentFrame.Name = "ContentFrame"
ContentFrame.Parent = MainFrame
ContentFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 15)
ContentFrame.BackgroundTransparency = 0.5
ContentFrame.Position = UDim2.new(0.3, 0, 0.12, 0)
ContentFrame.Size = UDim2.new(0.68, 0, 0.84, 0)

local ContentCorner = Instance.new("UICorner")
ContentCorner.CornerRadius = UDim.new(0, 8)
ContentCorner.Parent = ContentFrame

-- 2. Sistema de Abas e Páginas Isoladas
local tabs = {}
local pages = {}

local function CreateTab(name)
    local page = Instance.new("ScrollingFrame")
    page.Name = name .. "Page"
    page.Parent = ContentFrame
    page.BackgroundTransparency = 1
    page.Size = UDim2.new(0.96, 0, 0.96, 0)
    page.Position = UDim2.new(0.02, 0, 0.02, 0)
    page.CanvasSize = UDim2.new(0, 0, 0, 500)
    page.ScrollBarThickness = 2
    page.Visible = false
    
    local pageList = Instance.new("UIListLayout")
    pageList.Parent = page
    pageList.Padding = UDim.new(0, 6)
    
    local btn = Instance.new("TextButton")
    btn.Parent = TabHolder
    btn.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
    btn.BackgroundTransparency = 0.3
    btn.Size = UDim2.new(1, 0, 0, 32)
    btn.Font = Enum.Font.GothamBold
    btn.Text = name
    btn.TextColor3 = Color3.fromRGB(200, 200, 200)
    btn.TextSize = 11
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
    
    btn.MouseButton1Click:Connect(function()
        for _, p in pairs(pages) do p.Visible = false end
        for _, t in pairs(tabs) do t.TextColor3 = Color3.fromRGB(200, 200, 200) end
        page.Visible = true
        btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    end)
    
    table.insert(tabs, btn)
    table.insert(pages, page)
    return page
end

local page1 = CreateTab("Aba 1")
local page2 = CreateTab("Aba 2")
local page3 = CreateTab("Aba 3")
local page4 = CreateTab("Aba 4")
local pageConfig = CreateTab("Configuração")

pages[1].Visible = true
tabs[1].TextColor3 = Color3.fromRGB(255, 255, 255)

-- 3. Slider Arco-Íris Moderno (Aba Configuração)
local Label = Instance.new("TextLabel")
Label.Parent = pageConfig
Label.BackgroundTransparency = 1
Label.Size = UDim2.new(1, 0, 0, 20)
Label.Font = Enum.Font.GothamBold
Label.Text = "Escolha a Cor da Interface:"
Label.TextColor3 = Color3.fromRGB(255, 255, 255)
Label.TextSize = 12

local SliderFrame = Instance.new("Frame")
SliderFrame.Parent = pageConfig
SliderFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SliderFrame.Size = UDim2.new(0.95, 0, 0, 15)
Instance.new("UICorner", SliderFrame).CornerRadius = UDim.new(0, 6)

local Gradient = Instance.new("UIGradient")
Gradient.Parent = SliderFrame
Gradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
    ColorSequenceKeypoint.new(0.2, Color3.fromRGB(255, 255, 0)),
    ColorSequenceKeypoint.new(0.4, Color3.fromRGB(0, 255, 0)),
    ColorSequenceKeypoint.new(0.6, Color3.fromRGB(0, 255, 255)),
    ColorSequenceKeypoint.new(0.8, Color3.fromRGB(0, 0, 255)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 255))
}

local SliderBtn = Instance.new("TextButton")
SliderBtn.Parent = SliderFrame
SliderBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SliderBtn.Size = UDim2.new(0, 15, 1, 0)
SliderBtn.Text = ""
Instance.new("UICorner", SliderBtn).CornerRadius = UDim.new(0, 50)

local UserInputService = game:GetService("UserInputService")
local sliding = false

local function UpdateColor(input)
    local relativeX = math.clamp((input.Position.X - SliderFrame.AbsolutePosition.X) / SliderFrame.AbsoluteSize.X, 0, 1)
    SliderBtn.Position = UDim2.new(relativeX, -7, 0, 0)
    local color = Color3.fromHSV(relativeX, 1, 0.5)
    MainFrame.BackgroundColor3 = color
    for _, t in pairs(tabs) do t.BackgroundColor3 = color end
end

SliderBtn.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        sliding = true
        UpdateColor(input)
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if sliding and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        UpdateColor(input)
    end
end)

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

-- 4. Botão Flutuante Arrastável
local FloatGui = Instance.new("ScreenGui", game:GetService("CoreGui"))
local FloatBtn = Instance.new("TextButton", FloatGui)
FloatBtn.Size = UDim2.new(0, 45, 0, 45)
FloatBtn.Position = UDim2.new(0.05, 0, 0.20, 0)
FloatBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
FloatBtn.BackgroundTransparency = 0.2
FloatBtn.Text = "LUNA"
FloatBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
FloatBtn.Font = Enum.Font.GothamBold
FloatBtn.TextSize = 10
Instance.new("UICorner", FloatBtn).CornerRadius = UDim.new(0, 50)

-- 5. Sistema de Redimensionamento Corrigido
local ResizeBtn = Instance.new("TextButton")
ResizeBtn.Name = "ResizeBtn"
ResizeBtn.Parent = MainFrame
ResizeBtn.BackgroundColor3 = Color3.fromRGB(10, 10, 15)
ResizeBtn.BackgroundTransparency = 0.5
ResizeBtn.Size = UDim2.new(0, 15, 0, 15)
ResizeBtn.Position = UDim2.new(1, -15, 1, -15)
ResizeBtn.Text = ""
Instance.new("UICorner", ResizeBtn).CornerRadius = UDim.new(0, 4)

local resizing = false
local resizeStartPos, startSize

ResizeBtn.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        resizing = true
        resizeStartPos = input.Position
        startSize = MainFrame.AbsoluteSize
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if resizing and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        local delta = input.Position - resizeStartPos
        -- Limita o tamanho para que as abas e o slider fiquem bonitos e visíveis
        local newWidth = math.clamp(startSize.X + delta.X, 350, 800)
        local newHeight = math.clamp(startSize.Y + delta.Y, 200, 600)
        MainFrame.Size = UDim2.new(0, newWidth, 0, newHeight)
    end
end)

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

-- Sistema de Arrastar Janela e Botão Flutuante
local function MakeDraggable(obj, parentObj)
    local dragging, dragInput, dragStart, startPos
    parentObj = parentObj or obj

    obj.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            dragStart = input.Position
            startPos = parentObj.Position
            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then dragging = false end
            end)
        end
    end)

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

MakeDraggable(TopBar, MainFrame)
MakeDraggable(FloatBtn)

FloatBtn.MouseButton1Click:Connect(function()
    MainFrame.Visible = not MainFrame.Visible
end)

Features & Information

Ui bonita e gratis

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts