Universal Esp
Key RequiredUniversal

Universal Esp

Universal ScriptDinas2Dinas2 1.9K views 1K executesUpdated Nov 30, 2025
5.0/ 5(2 votes)
20100% Positive
Lua Script•553 lines (25793 chars)
local LibraryUrl = "https://raw.githubusercontent.com/Vovabro46/trash/refs/heads/main/Test.lua"
local Success, Library = pcall(function()
    return loadstring(game:HttpGet(LibraryUrl))()
end)


local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local Camera = Workspace.CurrentCamera
local CoreGui = game:GetService("CoreGui")

-- ==============================================================================
-- >> ESP (LOGIC) <<
-- ==============================================================================

local ESPSettings = {
    Enabled = false,
    TeamCheck = false,
    
    -- 2D Boxes
    Box = false,
    BoxColor = Color3.fromRGB(255, 255, 255),
    BoxOutline = true,
    
    -- Tracers
    Tracers = false,
    TracersOrigin = "Bottom", 
    TracersColor = Color3.fromRGB(255, 255, 255),
    
    -- Text Info
    Name = false,
    NameColor = Color3.fromRGB(255, 255, 255),
    Distance = false,
    Weapon = false,
    WeaponColor = Color3.fromRGB(200, 200, 255),
    
    -- Bars
    HealthBar = false,
    
    -- Skeleton & Head
    Skeleton = false,
    SkeletonColor = Color3.fromRGB(255, 255, 255),
    HeadDot = false,
    HeadDotColor = Color3.fromRGB(255, 0, 0),
    ViewTracer = false,
    ViewTracerColor = Color3.fromRGB(255, 100, 100),

    -- 3D Chams
    Chams = false,
    ChamsFillColor = Color3.fromRGB(255, 0, 0),
    ChamsOutlineColor = Color3.fromRGB(255, 255, 255),
    ChamsTransparency = 0.5,
    ChamsOutlineTransparency = 0
}

local ESPStorage = {} 

local function CreateDrawing(Type, Properties)
    local DrawingObj = Drawing.new(Type)
    for Property, Value in pairs(Properties) do
        DrawingObj[Property] = Value
    end
    return DrawingObj
end

local function RemoveESP(Player)
    if ESPStorage[Player] then
        for _, Obj in pairs(ESPStorage[Player].Drawings) do
            if Obj.Remove then Obj:Remove() end
        end
        if ESPStorage[Player].SkeletonLines then
            for _, Line in pairs(ESPStorage[Player].SkeletonLines) do
                Line:Remove()
            end
        end
        if ESPStorage[Player].Highlight then
            ESPStorage[Player].Highlight:Destroy()
        end
        ESPStorage[Player] = nil
    end
end

local function AddESP(Player)
    if Player == LocalPlayer then return end
    
    local SkeletonLines = {}
    for i = 1, 16 do
        table.insert(SkeletonLines, CreateDrawing("Line", {Thickness = 1, Color = Color3.new(1,1,1), ZIndex = 2}))
    end

    ESPStorage[Player] = {
        Drawings = {
            Box = CreateDrawing("Square", {Thickness = 1, Filled = false, ZIndex = 2}),
            BoxOutline = CreateDrawing("Square", {Thickness = 3, Filled = false, Color = Color3.new(0,0,0), ZIndex = 1}),
            Tracer = CreateDrawing("Line", {Thickness = 1, ZIndex = 2}),
            Name = CreateDrawing("Text", {Size = 13, Center = true, Outline = true, Font = 2, ZIndex = 3}),
            Distance = CreateDrawing("Text", {Size = 12, Center = true, Outline = true, Font = 2, ZIndex = 3}),
            Weapon = CreateDrawing("Text", {Size = 11, Center = true, Outline = true, Font = 2, ZIndex = 3}),
            HealthBar = CreateDrawing("Square", {Thickness = 1, Filled = true, ZIndex = 2}),
            HealthOutline = CreateDrawing("Square", {Thickness = 1, Filled = true, Color = Color3.new(0,0,0), ZIndex = 1}),
            HeadDot = CreateDrawing("Circle", {Radius = 3, Filled = true, NumSides = 12, ZIndex = 3}),
            ViewTracer = CreateDrawing("Line", {Thickness = 1, ZIndex = 2})
        },
        SkeletonLines = SkeletonLines,
        Highlight = nil
    }
end

local function UpdateSkeletonLine(Line, PartA, PartB)
    if not PartA or not PartB then Line.Visible = false return end
    
    local PosA, OnScreenA = Camera:WorldToViewportPoint(PartA.Position)
    local PosB, OnScreenB = Camera:WorldToViewportPoint(PartB.Position)
    
    if OnScreenA or OnScreenB then
        Line.From = Vector2.new(PosA.X, PosA.Y)
        Line.To = Vector2.new(PosB.X, PosB.Y)
        Line.Color = ESPSettings.SkeletonColor
        Line.Visible = true
    else
        Line.Visible = false
    end
end

RunService.RenderStepped:Connect(function()
    for Player, Storage in pairs(ESPStorage) do
        local Character = Player.Character
        local RootPart = Character and Character:FindFirstChild("HumanoidRootPart")
        local Humanoid = Character and Character:FindFirstChild("Humanoid")
        local Head = Character and Character:FindFirstChild("Head")
        
        local Drawings = Storage.Drawings
        local ShouldDraw = false
        
        if ESPSettings.Enabled and Character and RootPart and Humanoid and Humanoid.Health > 0 and Head then
            if not ESPSettings.TeamCheck or Player.Team ~= LocalPlayer.Team then
                
                local Vector, OnScreen = Camera:WorldToViewportPoint(RootPart.Position)
                
                if OnScreen then
                    ShouldDraw = true
                    
                    local HeadPos = Head.Position + Vector3.new(0, 0.5, 0)
                    local LegPos = RootPart.Position - Vector3.new(0, Humanoid.HipHeight + 2, 0)
                    
                    local TopPos = Camera:WorldToViewportPoint(HeadPos)
                    local BotPos = Camera:WorldToViewportPoint(LegPos)
                    
                    local Height = math.abs(TopPos.Y - BotPos.Y)
                    local Width = Height / 1.6
                    local BoxPos = Vector2.new(Vector.X - Width / 2, Vector.Y - Height / 2)
                    
                    -- 1. BOX ESP
                    if ESPSettings.Box then
                        Drawings.Box.Size = Vector2.new(Width, Height)
                        Drawings.Box.Position = BoxPos
                        Drawings.Box.Color = ESPSettings.BoxColor
                        Drawings.Box.Visible = true
                        
                        if ESPSettings.BoxOutline then
                            Drawings.BoxOutline.Size = Vector2.new(Width, Height)
                            Drawings.BoxOutline.Position = BoxPos
                            Drawings.BoxOutline.Visible = true
                        else
                            Drawings.BoxOutline.Visible = false
                        end
                    else
                        Drawings.Box.Visible = false
                        Drawings.BoxOutline.Visible = false
                    end
                    
                    -- 2. TRACERS
                    if ESPSettings.Tracers then
                        local Origin = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y) -- Bottom
                        if ESPSettings.TracersOrigin == "Center" then
                            Origin = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
                        elseif ESPSettings.TracersOrigin == "Mouse" then
                            Origin = UserInputService:GetMouseLocation()
                        end
                        Drawings.Tracer.From = Origin
                        Drawings.Tracer.To = Vector2.new(Vector.X, BotPos.Y)
                        Drawings.Tracer.Color = ESPSettings.TracersColor
                        Drawings.Tracer.Visible = true
                    else
                        Drawings.Tracer.Visible = false
                    end

                    -- 3. HEALTH BAR
                    if ESPSettings.HealthBar then
                        local BarWidth = 2
                        local HealthPercent = math.clamp(Humanoid.Health / Humanoid.MaxHealth, 0, 1)
                        local BarHeight = Height * HealthPercent
                        
                        Drawings.HealthOutline.Size = Vector2.new(BarWidth + 2, Height + 2)
                        Drawings.HealthOutline.Position = Vector2.new(BoxPos.X - 6, BoxPos.Y - 1)
                        Drawings.HealthOutline.Visible = true
                        
                        Drawings.HealthBar.Size = Vector2.new(BarWidth, BarHeight)
                        Drawings.HealthBar.Position = Vector2.new(BoxPos.X - 5, BoxPos.Y + (Height - BarHeight))
                        Drawings.HealthBar.Color = Color3.fromRGB(255, 0, 0):Lerp(Color3.fromRGB(0, 255, 0), HealthPercent)
                        Drawings.HealthBar.Visible = true
                    else
                        Drawings.HealthBar.Visible = false
                        Drawings.HealthOutline.Visible = false
                    end
                    
                    -- 4. TEXT INFO (Name, Distance, Weapon)
                    local TextYOffset = BoxPos.Y - 16
                    
                    -- Name
                    if ESPSettings.Name then
                        Drawings.Name.Text = Player.Name
                        Drawings.Name.Position = Vector2.new(Vector.X, TextYOffset)
                        Drawings.Name.Color = ESPSettings.NameColor
                        Drawings.Name.Visible = true
                        TextYOffset = TextYOffset - 14
                    else
                        Drawings.Name.Visible = false
                    end
                    
                    -- Bottom Text Start
                    local BottomOffset = BoxPos.Y + Height + 2
                    
                    -- Distance
                    if ESPSettings.Distance then
                        local Dist = math.floor((Camera.CFrame.Position - RootPart.Position).Magnitude)
                        Drawings.Distance.Text = "[" .. tostring(Dist) .. "m]"
                        Drawings.Distance.Position = Vector2.new(Vector.X, BottomOffset)
                        Drawings.Distance.Color = Color3.fromRGB(255, 255, 255)
                        Drawings.Distance.Visible = true
                        BottomOffset = BottomOffset + 14
                    else
                        Drawings.Distance.Visible = false
                    end

                    -- Weapon
                    if ESPSettings.Weapon then
                        local Tool = Character:FindFirstChildOfClass("Tool")
                        local WeaponName = Tool and Tool.Name or "None"
                        Drawings.Weapon.Text = WeaponName
                        Drawings.Weapon.Position = Vector2.new(Vector.X, BottomOffset)
                        Drawings.Weapon.Color = ESPSettings.WeaponColor
                        Drawings.Weapon.Visible = true
                    else
                        Drawings.Weapon.Visible = false
                    end

                    -- 5. HEAD DOT
                    if ESPSettings.HeadDot then
                        local HeadVect = Camera:WorldToViewportPoint(Head.Position)
                        Drawings.HeadDot.Position = Vector2.new(HeadVect.X, HeadVect.Y)
                        Drawings.HeadDot.Color = ESPSettings.HeadDotColor
                        Drawings.HeadDot.Visible = true
                    else
                        Drawings.HeadDot.Visible = false
                    end

                    -- 6. VIEW TRACER (Gaze)
                    if ESPSettings.ViewTracer then
                        local HeadVect = Camera:WorldToViewportPoint(Head.Position)
                        local LookVect = Camera:WorldToViewportPoint(Head.Position + Head.CFrame.LookVector * 10)
                        
                        Drawings.ViewTracer.From = Vector2.new(HeadVect.X, HeadVect.Y)
                        Drawings.ViewTracer.To = Vector2.new(LookVect.X, LookVect.Y)
                        Drawings.ViewTracer.Color = ESPSettings.ViewTracerColor
                        Drawings.ViewTracer.Visible = true
                    else
                        Drawings.ViewTracer.Visible = false
                    end

                    -- 7. SKELETON (BONES)
                    if ESPSettings.Skeleton then
                        local S = Storage.SkeletonLines
                        local R15 = Humanoid.RigType == Enum.HumanoidRigType.R15
                        
                        if R15 then
                            -- R15 Connections
                            UpdateSkeletonLine(S[1], Character:FindFirstChild("Head"), Character:FindFirstChild("UpperTorso"))
                            UpdateSkeletonLine(S[2], Character:FindFirstChild("UpperTorso"), Character:FindFirstChild("LowerTorso"))
                            UpdateSkeletonLine(S[3], Character:FindFirstChild("UpperTorso"), Character:FindFirstChild("LeftUpperArm"))
                            UpdateSkeletonLine(S[4], Character:FindFirstChild("LeftUpperArm"), Character:FindFirstChild("LeftLowerArm"))
                            UpdateSkeletonLine(S[5], Character:FindFirstChild("LeftLowerArm"), Character:FindFirstChild("LeftHand"))
                            UpdateSkeletonLine(S[6], Character:FindFirstChild("UpperTorso"), Character:FindFirstChild("RightUpperArm"))
                            UpdateSkeletonLine(S[7], Character:FindFirstChild("RightUpperArm"), Character:FindFirstChild("RightLowerArm"))
                            UpdateSkeletonLine(S[8], Character:FindFirstChild("RightLowerArm"), Character:FindFirstChild("RightHand"))
                            UpdateSkeletonLine(S[9], Character:FindFirstChild("LowerTorso"), Character:FindFirstChild("LeftUpperLeg"))
                            UpdateSkeletonLine(S[10], Character:FindFirstChild("LeftUpperLeg"), Character:FindFirstChild("LeftLowerLeg"))
                            UpdateSkeletonLine(S[11], Character:FindFirstChild("LeftLowerLeg"), Character:FindFirstChild("LeftFoot"))
                            UpdateSkeletonLine(S[12], Character:FindFirstChild("LowerTorso"), Character:FindFirstChild("RightUpperLeg"))
                            UpdateSkeletonLine(S[13], Character:FindFirstChild("RightUpperLeg"), Character:FindFirstChild("RightLowerLeg"))
                            UpdateSkeletonLine(S[14], Character:FindFirstChild("RightLowerLeg"), Character:FindFirstChild("RightFoot"))
                        else
                            -- R6 Connections (Simpler)
                            local Torso = Character:FindFirstChild("Torso")
                            UpdateSkeletonLine(S[1], Character:FindFirstChild("Head"), Torso)
                            UpdateSkeletonLine(S[2], Torso, Character:FindFirstChild("Left Arm"))
                            UpdateSkeletonLine(S[3], Torso, Character:FindFirstChild("Right Arm"))
                            UpdateSkeletonLine(S[4], Torso, Character:FindFirstChild("Left Leg"))
                            UpdateSkeletonLine(S[5], Torso, Character:FindFirstChild("Right Leg"))
                            -- Hide unused lines
                            for i=6, 14 do S[i].Visible = false end
                        end
                    else
                        -- Hide all skeleton lines
                        for _, L in pairs(Storage.SkeletonLines) do L.Visible = false end
                    end
                    
                end -- End OnScreen Check
                
                -- 8. CHAMS (3D)
                if ESPSettings.Chams then
                    if not Storage.Highlight then
                        local Highlight = Instance.new("Highlight")
                        Highlight.Name = "ESPHighlight"
                        Highlight.FillColor = ESPSettings.ChamsFillColor
                        Highlight.OutlineColor = ESPSettings.ChamsOutlineColor
                        Highlight.FillTransparency = ESPSettings.ChamsTransparency
                        Highlight.OutlineTransparency = ESPSettings.ChamsOutlineTransparency
                        Highlight.Adornee = Character
                        Highlight.Parent = CoreGui
                        Storage.Highlight = Highlight
                    else
                        Storage.Highlight.Adornee = Character
                        Storage.Highlight.FillColor = ESPSettings.ChamsFillColor
                        Storage.Highlight.OutlineColor = ESPSettings.ChamsOutlineColor
                        Storage.Highlight.FillTransparency = ESPSettings.ChamsTransparency
                        Storage.Highlight.OutlineTransparency = ESPSettings.ChamsOutlineTransparency
                        Storage.Highlight.Enabled = true
                    end
                else
                    if Storage.Highlight then Storage.Highlight.Enabled = false end
                end
                
            else
                ShouldDraw = false
            end
        end
        
        if not ShouldDraw then
            for _, Obj in pairs(Drawings) do Obj.Visible = false end
            for _, Line in pairs(Storage.SkeletonLines) do Line.Visible = false end
            if Storage.Highlight then Storage.Highlight.Enabled = false end
        end
    end
end)

Players.PlayerAdded:Connect(AddESP)
Players.PlayerRemoving:Connect(RemoveESP)
for _, P in pairs(Players:GetPlayers()) do AddESP(P) end

-- ==============================================================================
-- >> (UI SETUP) <<
-- ==============================================================================

Library:Watermark("DINAS ESP")
local Window = Library:Window("Dinas Hub")

-- TABS
Window:Section("Menu")
local VisualsTab = Window:Tab("Visuals", "eye")
Window:Section("System")
local SettingsTab = Window:Tab("Settings", "settings")

-- >> VISUALS TAB 
local VisualsPage = VisualsTab:SubTab("ESP Config")

local ESPMain = VisualsPage:Groupbox("Main ESP", "Left")
local ESPInfo = VisualsPage:Groupbox("Info & Extras", "Left")
local ESPWorld = VisualsPage:Groupbox("Skeleton & World", "Right")
local ESPColors = VisualsPage:Groupbox("Color Palette", "Right")

-- Main
ESPMain:AddToggle({ Title = "Master Switch", Default = false, Callback = function(V) ESPSettings.Enabled = V end })
ESPMain:AddToggle({ Title = "Team Check", Default = false, Callback = function(V) ESPSettings.TeamCheck = V end })
ESPMain:AddToggle({ Title = "Boxes", Default = false, Callback = function(V) ESPSettings.Box = V end })
ESPMain:AddToggle({ Title = "Tracers", Default = false, Callback = function(V) ESPSettings.Tracers = V end })
ESPMain:AddDropdown({ Title = "Tracer Origin", Values = {"Bottom", "Center", "Mouse"}, Default = "Bottom", Multi = false, Callback = function(V) ESPSettings.TracersOrigin = V end })

-- Info
ESPInfo:AddToggle({ Title = "Names", Default = false, Callback = function(V) ESPSettings.Name = V end })
ESPInfo:AddToggle({ Title = "Distance", Default = false, Callback = function(V) ESPSettings.Distance = V end })
ESPInfo:AddToggle({ Title = "Show Weapon", Default = false, Description = "Shows the item in hands", Callback = function(V) ESPSettings.Weapon = V end })
ESPInfo:AddToggle({ Title = "Health Bar", Default = false, Callback = function(V) ESPSettings.HealthBar = V end })

-- World / Skeleton
ESPWorld:AddToggle({ Title = "Skeleton", Default = false, Description = "Rendering bones (R6/R15)", Callback = function(V) ESPSettings.Skeleton = V end })
ESPWorld:AddToggle({ Title = "Head Dot", Default = false, Description = "Dot on the head", Callback = function(V) ESPSettings.HeadDot = V end })
ESPWorld:AddToggle({ Title = "View Tracers", Default = false, Description = "Where the player is looking", Callback = function(V) ESPSettings.ViewTracer = V end })
ESPWorld:AddToggle({ Title = "Chams (3D)", Default = false, Description = "See through walls", Callback = function(V) ESPSettings.Chams = V end })
ESPWorld:AddSlider({ Title = "Chams Transparency", Min = 0, Max = 1, Default = 0.5, Rounding = 1, Callback = function(V) ESPSettings.ChamsTransparency = V end })

ESPColors:AddLabel("ESP Colors")
ESPColors:AddColorPicker({ Title = "Box Color", Default = ESPSettings.BoxColor, Callback = function(V) ESPSettings.BoxColor = V end })
ESPColors:AddColorPicker({ Title = "Skeleton Color", Default = ESPSettings.SkeletonColor, Callback = function(V) ESPSettings.SkeletonColor = V end })
ESPColors:AddColorPicker({ Title = "Head Dot Color", Default = ESPSettings.HeadDotColor, Callback = function(V) ESPSettings.HeadDotColor = V end })
ESPColors:AddColorPicker({ Title = "View Tracer Color", Default = ESPSettings.ViewTracerColor, Callback = function(V) ESPSettings.ViewTracerColor = V end })
ESPColors:AddColorPicker({ Title = "Weapon Text Color", Default = ESPSettings.WeaponColor, Callback = function(V) ESPSettings.WeaponColor = V end })
ESPColors:AddLabel("Chams Colors")
ESPColors:AddColorPicker({ Title = "Fill Color", Default = ESPSettings.ChamsFillColor, Callback = function(V) ESPSettings.ChamsFillColor = V end })
ESPColors:AddColorPicker({ Title = "Outline Color", Default = ESPSettings.ChamsOutlineColor, Callback = function(V) ESPSettings.ChamsOutlineColor = V end })


-- ============================
-- >> SETTINGS TAB <<
-- ============================
local SettingsPage = SettingsTab:SubTab("Menu Settings")

-- >> CONFIG MANAGER <<
local ConfigGroup = SettingsPage:Groupbox("Configuration", "Left")
local Configs = Library:GetConfigs()

ConfigGroup:AddDropdown({
    Title = "Select Config",
    Values = Configs,
    Default = "default",
    Multi = false,
    Flag = "SelectedConfig",
    Callback = function(Value) end
})

ConfigGroup:AddTextbox({
    Title = "New Config Name",
    Placeholder = "Type name...",
    Flag = "NewConfigName",
    Callback = function(Value) end
})

ConfigGroup:AddButton({
    Title = "Load Selected",
    Callback = function()
        local name = Library.Flags["SelectedConfig"]
        if name then
            Library:LoadConfig(name)
        else
            Library:Notify("Error", "No config selected!", 3)
        end
    end
})

ConfigGroup:AddButton({
    Title = "Save Config",
    Callback = function()
        local name = Library.Flags["NewConfigName"]
        if name == "" or name == nil then name = Library.Flags["SelectedConfig"] end
        if name and name ~= "" then
            Library:SaveConfig(name)
            local NewList = Library:GetConfigs()
            if Library.Items["SelectedConfig"] then Library.Items["SelectedConfig"].Refresh(NewList) end
        else
            Library:Notify("Error", "Enter a name or select a config!", 3)
        end
    end
})

ConfigGroup:AddButton({
    Title = "Refresh List",
    Callback = function()
        local NewList = Library:GetConfigs()
        if Library.Items["SelectedConfig"] then Library.Items["SelectedConfig"].Refresh(NewList) end
        Library:Notify("Configs", "List refreshed", 2)
    end
})

-- >> THEME MANAGER <<
local ThemeGroup = SettingsPage:Groupbox("Theme Manager", "Right")

ThemeGroup:AddLabel("Main Colors")

ThemeGroup:AddColorPicker({
    Title = "Accent Color", Default = Library.Theme.Accent, Flag = "ThemeAccent",
    Callback = function(Value) Library:UpdateTheme("Accent", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Background", Default = Library.Theme.Background, Flag = "ThemeBackground",
    Callback = function(Value) Library:UpdateTheme("Background", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Sidebar", Default = Library.Theme.Sidebar, Flag = "ThemeSidebar",
    Callback = function(Value) Library:UpdateTheme("Sidebar", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Groupbox", Default = Library.Theme.Groupbox, Flag = "ThemeGroupbox",
    Callback = function(Value) Library:UpdateTheme("Groupbox", Value) end
})

ThemeGroup:AddLabel("Text & Outlines")

ThemeGroup:AddColorPicker({
    Title = "Main Text", Default = Library.Theme.Text, Flag = "ThemeText",
    Callback = function(Value) Library:UpdateTheme("Text", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Secondary Text", Default = Library.Theme.TextDark, Flag = "ThemeTextDark",
    Callback = function(Value) Library:UpdateTheme("TextDark", Value) end
})

ThemeGroup:AddColorPicker({
    Title = "Outline/Stroke", Default = Library.Theme.Outline, Flag = "ThemeOutline",
    Callback = function(Value) Library:UpdateTheme("Outline", Value) end
})

ThemeGroup:AddButton({
    Title = "Reset Theme to Default",
    Callback = function()
        Library:UpdateTheme("Background", Color3.fromRGB(15, 15, 15))
        Library:UpdateTheme("Sidebar",    Color3.fromRGB(20, 20, 20))
        Library:UpdateTheme("Groupbox",   Color3.fromRGB(25, 25, 25))
        Library:UpdateTheme("Outline",    Color3.fromRGB(45, 45, 45))
        Library:UpdateTheme("Accent",     Color3.fromRGB(255, 40, 40))
        Library:UpdateTheme("Text",       Color3.fromRGB(235, 235, 235))
        Library:UpdateTheme("TextDark",   Color3.fromRGB(140, 140, 140))
        Library:Notify("Theme", "Colors reset to default", 2)
    end
    })
    
    -- >> (Theme Manager) : UI SETTINGS <<
local UISettings = SettingsPage:Groupbox("UI Settings", "Right")

UISettings:AddToggle({
    Title = "Show Watermark",
    Default = true,
    Flag = "WatermarkToggle",
    Callback = function(Value)
        Library.WatermarkSettings.Enabled = Value
    end
})

UISettings:AddTextbox({
    Title = "Watermark Text",
    Default = "RedOnyx",
    Placeholder = "Enter text...",
    ClearOnFocus = false,
    Callback = function(Value)
        Library.WatermarkSettings.Text = Value
    end
})

UISettings:AddButton({
    Title = "Unload / Destroy UI",
    Callback = function()
        local gui = game:GetService("CoreGui"):FindFirstChild("RedOnyx")
        local water = game:GetService("CoreGui"):FindFirstChild("Watermark")
        if gui then gui:Destroy() end
        if water then water:Destroy() end
    end
})

Features & Information

Esp Chams Settings Chams Settings Esp

Community Comments (2)

DEATH_0v0DEATH_0v0Dec 11, 2025

love this script bro. keep going. love you

SketoXSketoXDec 14, 2025

you should add keybinds to open or close the gui

More Scripts for Universal Scripts