--!nocheck -- trident ui - sleek mobile shell local library = loadstring(game:HttpGet("https://raw.githubusercontent.com/i77lhm/Libraries/refs/heads/main/Millenium/Library.lua"))() local TEAL = Color3.fromRGB(16, 185, 129) local BG = Color3.fromRGB(14, 16, 20) local CARD = Color3.fromRGB(28, 32, 40) local TEXT = Color3.fromRGB(232, 238, 244) local MUTED = Color3.fromRGB(128, 140, 150) local STROKE = Color3.fromRGB(38, 45, 55) library:update_theme("accent", TEAL) -- clear stale windows (library names them "\0", not "") for _, g in ipairs(game:GetService("CoreGui"):GetChildren()) do if g:IsA("ScreenGui") and (g.Name == "" or g.Name == "\0") then g:Destroy() end end local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local MarketplaceService = game:GetService("MarketplaceService") local Camera = workspace.CurrentCamera local isMobile = UIS.TouchEnabled and not UIS.KeyboardEnabled local view = Camera.ViewportSize local panelW, panelH if isMobile then panelW = math.clamp(view.X * 0.90, 280, 440) panelH = math.clamp(view.Y - 100, 340, 700) else panelW, panelH = 760, 660 end local barW = isMobile and math.clamp(view.X * 0.28, 110, 150) or 160 local logoSize = isMobile and 30 or 42 local infoTextRef = nil local window = library:window({ name = "TRIDENT", suffix = "", gameInfo = "trident", size = UDim2.fromOffset(panelW, panelH), }) local main = window.items["main"] -- kill the library's shadow frame (sticks out past rounded corners) for _, c in ipairs(main:GetChildren()) do if c:IsA("ImageLabel") and c.ZIndex <= -50 then c:Destroy() end if c:IsA("UICorner") or c:IsA("UIStroke") then c:Destroy() end end -- kill the library's default title label and info bar entirely if window.items["title"] then window.items["title"]:Destroy() end local infoFrame = window.items["info"] if infoFrame then for _, c in ipairs(infoFrame:GetChildren()) do c:Destroy() end infoFrame:Destroy() end main.BackgroundColor3 = BG main.BackgroundTransparency = 0.03 main.Active = true main.ClipsDescendants = true local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 16) corner.Parent = main local stroke = Instance.new("UIStroke") stroke.Color = STROKE stroke.Thickness = 1.5 stroke.Transparency = 0.4 stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border stroke.Parent = main -- ============ header branding (centered logo) ============ do local side = window.items["side_frame"] side.BackgroundTransparency = 1 side.Size = UDim2.new(0, barW, 1, -25) window.items["multi_holder"].Position = UDim2.new(0, barW, 0, 0) window.items["multi_holder"].Size = UDim2.new(1, -barW, 0, 56) window.items["global_fade"].Position = UDim2.new(0, barW, 0, 56) window.items["global_fade"].Size = UDim2.new(1, -barW, 1, -81) window.items["multi_holder"].BackgroundTransparency = 1 local logoW = logoSize * 1.9 local header = library:create("Frame", { Parent = side; Name = "Header"; BackgroundTransparency = 1; BorderSizePixel = 0; Position = UDim2.new(0, 0, 0, 20); Size = UDim2.new(1, 0, 0, logoW + 8); }) library:create("ImageLabel", { Parent = header; Name = "Logo"; BackgroundTransparency = 1; BorderSizePixel = 0; Position = UDim2.new(0.5, -logoW / 2, 0, 0); Size = UDim2.new(0, logoW, 0, logoW); Image = "rbxassetid://90829033870443"; ImageColor3 = TEAL; ScaleType = Enum.ScaleType.Fit; }) local infoText = library:create("TextLabel", { Parent = side; Name = "InfoText"; BackgroundTransparency = 1; BorderSizePixel = 0; Position = UDim2.new(0, 14, 1, -22); Size = UDim2.new(0, barW - 28, 0, 14); Font = Enum.Font.Gotham; RichText = true; Text = 'trident shell teal'; TextColor3 = MUTED; TextSize = isMobile and 9 or 11; TextXAlignment = Enum.TextXAlignment.Left; BackgroundColor3 = Color3.fromRGB(255, 255, 255); }) infoTextRef = infoText local wordmark = library:create("TextLabel", { Parent = side; Name = "Wordmark"; BackgroundTransparency = 1; BorderSizePixel = 0; Position = UDim2.new(0, 14, 1, -6); Size = UDim2.new(0, barW - 28, 0, 14); Font = Enum.Font.GothamBold; RichText = true; Text = "TRIDENT"; TextColor3 = TEXT; TextSize = isMobile and 11 or 14; TextXAlignment = Enum.TextXAlignment.Left; BackgroundColor3 = Color3.fromRGB(255, 255, 255); }) end -- ============ tab bar styling ============ for _, c in ipairs(window.items["button_holder"]:GetChildren()) do if c:IsA("TextButton") then c.BackgroundTransparency = 0.2 c.BackgroundColor3 = CARD c.TextColor3 = MUTED c.TextSize = isMobile and 11 or 12 c.Font = Enum.Font.GothamBold c.AutoButtonColor = false c.BorderSizePixel = 0 c.ClipsDescendants = true for _, ch in ipairs(c:GetChildren()) do if ch:IsA("UICorner") or ch:IsA("UIStroke") then ch:Destroy() end end local ccorner = Instance.new("UICorner") ccorner.CornerRadius = UDim.new(0, 10) ccorner.Parent = c local cstroke = Instance.new("UIStroke") cstroke.Color = STROKE cstroke.Thickness = 1 cstroke.Transparency = 0.6 cstroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border cstroke.Parent = c elseif c:IsA("TextLabel") then c.TextColor3 = MUTED c.TextSize = isMobile and 10 or 11 c.Font = Enum.Font.GothamBold end end -- fix tab layout to match custom sidebar width local function fixTabLayout() for _, child in ipairs(main:GetChildren()) do if child:IsA("Frame") then local sx = child.Size.X.Offset local py = child.Position.Y.Offset if sx < -50 and py >= 0 then child.Size = UDim2.new(1, -barW, 1, -81) child.Position = UDim2.new(0, barW, 0, py) end end end end -- fix tab page width so content fills the page and isn't pushed right local function fixPageWidths() for _, child in ipairs(main:GetChildren()) do if child:IsA("Frame") then local sx = child.Size.X.Offset local py = child.Position.Y.Offset if sx < -50 and py >= 50 then for _, page in ipairs(child:GetChildren()) do if page:IsA("Frame") then page.Size = UDim2.new(1, 0, 1, 0) for _, column in ipairs(page:GetChildren()) do if column:IsA("Frame") then column.Size = UDim2.new(1, 0, column.Size.Y.Scale, column.Size.Y.Offset) for _, outline in ipairs(column:GetChildren()) do if outline:IsA("Frame") and outline.Name == "\0" then outline.Size = UDim2.new(1, 0, outline.Size.Y.Scale, outline.Size.Y.Offset) end end end end end end end end end end -- fix dropdown labels so they go above the dropdown on mobile instead of phasing into it local function fixDropdowns() if not sections then return end for _, section in ipairs(sections) do local inline = section.items and section.items["inline"] if not inline then continue end for _, child in ipairs(inline:GetChildren()) do if child:IsA("Frame") then local btn, label for _, elem in ipairs(child:GetChildren()) do if elem:IsA("TextButton") then btn = elem end if elem:IsA("TextLabel") and elem ~= btn then label = elem end end if btn and label and isMobile then label.Position = UDim2.new(0, 10, 0, -15) label.Size = UDim2.new(1, -20, 0, 14) label.TextXAlignment = Enum.TextXAlignment.Left label.TextSize = 12 label.BackgroundTransparency = 1 label.TextColor3 = MUTED btn.Position = UDim2.new(0, 10, 0, 3) btn.Size = UDim2.new(1, -20, 0, 26) end end end end end -- ============ content ============ window:seperator({name = "General"}) local combat, visuals, misc = window:tab({name = "Main", tabs = {"Combat", "Visuals", "Misc"}}) local sections = {} for _, tab in {combat, visuals, misc} do local column = tab:column({}) local section = column:section({name = "General", default = true}) table.insert(sections, section) section:label({name = "Trident UI", info = "Sleek shell — trident decal, teal theme."}) section:toggle({name = "Enabled", seperator = true, callback = function(bool) print("trident:", bool) end}):colorpicker({}) section:dropdown({name = "Mode", items = {"Legit", "Rage", "Silent"}, default = "Legit", seperator = true}) section:slider({name = "Smoothness", min = 1, max = 10, interval = 0.1, default = 5, seperator = true, info = "Aim smoothing."}) section:toggle({name = "Draw FOV", seperator = true}):colorpicker({}) section:keybind({name = "Panic Key", callback = function(k) print("panic:", k) end, info = "Unloads menu."}) end do local column = combat:column({}) local section = column:section({name = "Combat", default = true}) table.insert(sections, section) section:toggle({name = "Silent Aim", seperator = true, callback = function(b) print("silent aim:", b) end}):colorpicker({}) section:toggle({name = "Team Check", seperator = true}) section:dropdown({name = "Hitbox", items = {"Head", "UpperTorso", "HumanoidRootPart"}, default = "Head", seperator = true}) section:slider({name = "FOV", min = 0, max = 360, interval = 1, default = 90, seperator = true}) end do local column = visuals:column({}) local section = column:section({name = "ESP", default = true}) table.insert(sections, section) section:toggle({name = "Boxes", seperator = true}):colorpicker({}) section:toggle({name = "Names", seperator = true}):colorpicker({}) section:toggle({name = "Health Bars", seperator = true}):colorpicker({}) section:toggle({name = "Chams", seperator = true}):colorpicker({}) section:dropdown({name = "Font", items = {"Gotham", "Arial", "SourceSans"}, default = "Gotham", seperator = true}) end do local column = misc:column({}) local section = column:section({name = "Misc", default = true}) table.insert(sections, section) section:toggle({name = "Watermark", seperator = true, callback = function(b) print("watermark:", b) end}) section:toggle({name = "Console", seperator = true}) section:button({name = "Unload UI", callback = function() if library.unload_menu then library:unload_menu() end print("trident unloaded") end, seperator = true}) end -- section restyling for _, section in ipairs(sections) do local outline = section.items and section.items["outline"] local inline = section.items and section.items["inline"] local column = outline and outline.Parent if column and column:IsA("Frame") then column.Size = UDim2.new(1, 0, column.Size.Y.Scale, column.Size.Y.Offset) end if outline then outline.BackgroundColor3 = CARD outline.BackgroundTransparency = 0.2 outline.Size = UDim2.new(1, 0, outline.Size.Y.Scale, outline.Size.Y.Offset) for _, c in ipairs(outline:GetChildren()) do if c:IsA("UICorner") then c:Destroy() end end local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 12) corner.Parent = outline local stroke = Instance.new("UIStroke") stroke.Color = STROKE stroke.Thickness = 1 stroke.Transparency = 0.6 stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border stroke.Parent = outline end if inline then inline.BackgroundColor3 = BG inline.BackgroundTransparency = 0.1 inline.Size = UDim2.new(1, -2, inline.Size.Y.Scale, inline.Size.Y.Offset) for _, c in ipairs(inline:GetChildren()) do if c:IsA("UICorner") then c:Destroy() end end local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 10) corner.Parent = inline end end -- ============ drag: invisible header zone, mobile-aware ============ do local headerBar = library:create("Frame", { Parent = main; Name = "DragZone"; BackgroundTransparency = 1; BorderSizePixel = 0; Position = UDim2.new(0, 0, 0, 0); Size = UDim2.new(1, 0, 0, isMobile and 80 or 56); Active = true; ZIndex = 40; }) local dzCorner = Instance.new("UICorner") dzCorner.CornerRadius = UDim.new(0, 16) dzCorner.Parent = headerBar local dragging = false local startPos, startScreen headerBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then dragging = true startPos = input.Position startScreen = main.Position end end) headerBar.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UIS.TouchMoved:Connect(function(touch) if dragging then local delta = touch.Position - startPos main.Position = UDim2.new(0, startScreen.X.Offset + delta.X, 0, startScreen.Y.Offset + delta.Y) end end) UIS.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - startPos main.Position = UDim2.new(0, startScreen.X.Offset + delta.X, 0, startScreen.Y.Offset + delta.Y) end end) end -- ============ resize handle (invisible, easy to grab on mobile) ============ do local handle = library:create("Frame", { Parent = main; Name = "ResizeHandle"; BackgroundTransparency = 1; BorderSizePixel = 0; Position = UDim2.new(1, -26, 1, -26); Size = UDim2.new(0, 26, 0, 26); Active = true; ZIndex = 60; }) local resizing = false local rStart, rSize handle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then resizing = true rStart = input.Position rSize = Vector2.new(main.Size.X.Offset, main.Size.Y.Offset) end end) handle.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then resizing = false end end) UIS.TouchMoved:Connect(function(touch) if resizing then local delta = touch.Position - rStart local minW = isMobile and 260 or 400 local maxW = isMobile and (view.X - 20) or 1200 local minH = isMobile and 300 or 350 local maxH = isMobile and (view.Y - 20) or 900 main.Size = UDim2.new(0, math.clamp(rSize.X + delta.X, minW, maxW), 0, math.clamp(rSize.Y + delta.Y, minH, maxH)) end end) UIS.InputChanged:Connect(function(input) if resizing and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - rStart local minW = isMobile and 260 or 400 local maxW = isMobile and (view.X - 20) or 1200 local minH = isMobile and 300 or 350 local maxH = isMobile and (view.Y - 20) or 900 main.Size = UDim2.new(0, math.clamp(rSize.X + delta.X, minW, maxW), 0, math.clamp(rSize.Y + delta.Y, minH, maxH)) end end) end -- ============ close / open buttons (mobile) ============ do local closeBtn = library:create("TextButton", { Parent = main; Name = "CloseBtn"; BackgroundColor3 = Color3.fromRGB(20, 24, 30); BackgroundTransparency = 0.15; BorderSizePixel = 0; Position = UDim2.new(1, -26, 0, 10); Size = UDim2.new(0, 20, 0, 20); Active = true; ZIndex = 50; Text = "×"; TextColor3 = MUTED; TextSize = isMobile and 16 or 18; Font = Enum.Font.GothamBold; }) local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(1, 0) closeCorner.Parent = closeBtn -- open button: floating decal button with visible background circle local openBtn = library:create("ImageButton", { Parent = main.Parent; Name = "OpenBtn"; BackgroundColor3 = Color3.fromRGB(20, 24, 30); BackgroundTransparency = 0.1; BorderSizePixel = 0; Position = UDim2.new(0, 12, 0, 100); Size = UDim2.new(0, 48, 0, 48); Active = true; ZIndex = 50; Visible = false; Image = "rbxassetid://90829033870443"; ImageColor3 = TEAL; }) local openCorner = Instance.new("UICorner") openCorner.CornerRadius = UDim.new(1, 0) openCorner.Parent = openBtn local openStroke = Instance.new("UIStroke") openStroke.Color = TEAL openStroke.Thickness = 2 openStroke.Transparency = 0.3 openStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border openStroke.Parent = openBtn closeBtn.MouseButton1Click:Connect(function() main.Visible = false openBtn.Visible = true end) openBtn.MouseButton1Click:Connect(function() main.Visible = true openBtn.Visible = false end) -- drag open button on mobile local obDragging = false local obStartPos, obStartScreen openBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then obDragging = true obStartPos = input.Position obStartScreen = openBtn.Position end end) openBtn.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then obDragging = false end end) UIS.TouchMoved:Connect(function(touch) if obDragging then local delta = touch.Position - obStartPos openBtn.Position = UDim2.new(0, obStartScreen.X.Offset + delta.X, 0, obStartScreen.Y.Offset + delta.Y) end end) end -- ============ FPS + game name counter ============ do local fps = 0 local frames = 0 local lastTime = tick() RunService.Heartbeat:Connect(function() frames += 1 local now = tick() if now - lastTime >= 1 then fps = frames frames = 0 lastTime = now end end) local gameName = "Unknown Game" local ok, info = pcall(function() return MarketplaceService:GetProductInfo(game.PlaceId) end) if ok and info then gameName = info.Name end local infoText = infoTextRef task.spawn(function() while main and main.Parent do if infoText then infoText.Text = string.format('%s %d FPS', gameName, fps) end task.wait(1) end end) end -- ============ final layout pass (init_config adds Configs tab) ============ library:init_config(window) -- enforce final layout (init_config overrides size/position) main.Size = UDim2.fromOffset(panelW, panelH) main.Position = UDim2.new(0, math.max(10, (view.X - panelW) / 2), 0, isMobile and 90 or 100) main.ClipsDescendants = true fixTabLayout() fixPageWidths() fixDropdowns() -- re-fix whenever a tab is selected for _, c in ipairs(window.items["button_holder"]:GetChildren()) do if c:IsA("TextButton") then c.MouseButton1Click:Connect(function() task.wait(0.05) fixTabLayout() fixPageWidths() fixDropdowns() end) end end -- final enforcement after everything settles task.delay(0.5, function() main.Size = UDim2.fromOffset(panelW, panelH) main.Position = UDim2.new(0, math.max(10, (view.X - panelW) / 2), 0, isMobile and 90 or 100) main.ClipsDescendants = true fixTabLayout() fixPageWidths() fixDropdowns() end)