local ok, show = pcall(function() return (function(...) -- Uranium status page (standalone) — generated by bundle.py from -- coreui/components/Screen.lua + standalone/screen.prelude.lua. -- Do not edit by hand; edit those two and rebuild. -- build: 2026-10-31 14:52:49 9ab54fc-dirty -- The chunk's value is the function: show(opts) -> handle. local passed = ... local CACHE: any = type(passed) == "table" and passed or nil local function service(name: string): any if CACHE then local okCache, cached = pcall(function() return CACHE[name] end) if okCache and cached then return cached end end local ok, svc = pcall(function() local s = game:GetService(name) return (type(cloneref) == "function") and cloneref(s) or s end) return ok and svc or nil end local UIS = service("UserInputService") local TS = service("TweenService") local C = {accent=Color3.fromHex("7CFA3A"),accent_dim=Color3.fromHex("59AD2F"),accent_fill=Color3.fromHex("5FCB23"),accent_soft=Color3.fromHex("273C20"),bg=Color3.fromHex("101411"),border=Color3.fromHex("354139"),border_soft=Color3.fromHex("28312B"),chrome=Color3.fromHex("191F1B"),control=Color3.fromHex("252D28"),control_hi=Color3.fromHex("303B34"),danger=Color3.fromHex("FF6B6B"),knockout=Color3.fromHex("08140A"),pop=Color3.fromHex("212923"),text=Color3.fromHex("EFEFEF"),text_dim=Color3.fromHex("A3A3A3"),text_muted=Color3.fromHex("BABABA"),warning=Color3.fromHex("FFC53D")} local GOTHAM = "rbxasset://fonts/families/GothamSSm.json" local F = { Bold = Font.new(GOTHAM, Enum.FontWeight.Bold), Medium = Font.new(GOTHAM, Enum.FontWeight.Medium), Regular = Font.new(GOTHAM, Enum.FontWeight.Regular), Mono = Font.new("rbxasset://fonts/families/RobotoMono.json", Enum.FontWeight.Regular), } local function new(className: string, props: any?, children: any?): any local inst = Instance.new(className) local parent if props then for key, value in pairs(props) do if key == "Parent" then parent = value else (inst :: any)[key] = value end end end if children then for _, child in ipairs(children) do child.Parent = inst end end inst.Parent = parent return inst end local function corner(radius: number): any return new("UICorner", { CornerRadius = UDim.new(0, radius) }) end local function stroke(color: any, thickness: number?): any return new("UIStroke", { Color = color, Thickness = thickness or 1, ApplyStrokeMode = Enum.ApplyStrokeMode.Border, LineJoinMode = Enum.LineJoinMode.Round, }) end local function pad(top: number, right: number?, bottom: number?, left: number?): any right = right or top bottom = bottom or top left = left or right return new("UIPadding", { PaddingTop = UDim.new(0, top), PaddingRight = UDim.new(0, right), PaddingBottom = UDim.new(0, bottom), PaddingLeft = UDim.new(0, left), }) end local function list(props: any?): any local layout = new("UIListLayout", { SortOrder = Enum.SortOrder.LayoutOrder, FillDirection = Enum.FillDirection.Vertical, }) if props then for key, value in pairs(props) do (layout :: any)[key] = value end end return layout end local OUT = Enum.EasingDirection.Out local QUAD = Enum.EasingStyle.Quad local TW = { Fast = TweenInfo.new(0.12, QUAD, OUT), Normal = TweenInfo.new(0.18, QUAD, OUT), Pop = TweenInfo.new(0.16, Enum.EasingStyle.Back, OUT), MenuOut = TweenInfo.new(0.2, QUAD, Enum.EasingDirection.In), } local function tw(inst: any, info: any, goals: any): any if not TS then for key, value in pairs(goals) do inst[key] = value end return nil end local tween = TS:Create(inst, info, goals) tween:Play() return tween end local ICONS = {["atom"]={16898612629,{48,48},{404,918}},["ban"]={16898612629,{48,48},{196,967}},["clipboard"]={16898613044,{48,48},{49,869}},["download"]={16898613044,{48,48},{820,906}},["external-link"]={16898613353,{48,48},{257,820}},["key"]={16898613509,{48,48},{869,404}},["message-circle"]={16898613613,{48,48},{563,820}},["octagon-alert"]={16898613613,{48,48},{918,404}},["package"]={16898613613,{48,48},{918,196}},["pause"]={16898613699,{48,48},{0,771}},["refresh-cw"]={16898613699,{48,48},{404,869}},["triangle-alert"]={16898613869,{48,48},{967,0}},["wrench"]={16898613869,{48,48},{820,906}},["x"]={16898613869,{48,48},{869,906}}} local function newIcon(name: string, size: number, color: any): any local entry = ICONS[name] if entry then return new("ImageLabel", { Name = "Icon", BackgroundTransparency = 1, Size = UDim2.fromOffset(size, size), Image = "rbxassetid://" .. entry[1], ImageRectSize = Vector2.new(entry[2][1], entry[2][2]), ImageRectOffset = Vector2.new(entry[3][1], entry[3][2]), ImageColor3 = color, ScaleType = Enum.ScaleType.Stretch, }) end return new("TextLabel", { Name = "Icon", BackgroundTransparency = 1, Size = UDim2.fromOffset(size, size), Text = "•", TextColor3 = color, TextSize = size, FontFace = F.Medium, }) end local function tintIcon(icon: any, color: any) if icon:IsA("ImageLabel") then icon.ImageColor3 = color elseif icon:IsA("TextLabel") then icon.TextColor3 = color end end local BRAND = "Uranium" local MARK, ZOOM, LOGO_URL = "uranium/images/2045236083.png", 1.65, "https://raw.githubusercontent.com/funjimmywantstodie/uranium-public/main/Assets/uranium-orbitals-transparent.png" local PNG = "\137PNG\r\n\26\n" local function g(name: string): any local found: any = nil pcall(function() local env = getgenv and getgenv() if type(env) == "table" then found = env[name] end end) if found == nil then pcall(function() found = (getfenv and getfenv() or _G)[name] end) end return type(found) == "function" and found or nil end local function loadLogo(image: any, done: any) done(false) if MARK == "" then return end task.spawn(function() local content: any = nil pcall(function() local get = g("getcustomasset") or g("getsynasset") or g("get_custom_asset") if not get then return end local isFile, writeFile = g("isfile"), g("writefile") if isFile and isFile(MARK) then content = get(MARK) return end if not writeFile or LOGO_URL == "" then return end local body: any = nil pcall(function() body = game:HttpGet(LOGO_URL) end) if type(body) ~= "string" or body == "" then local req = g("request") or g("http_request") local ok, res = pcall(req, { Url = LOGO_URL, Method = "GET" }) body = (ok and type(res) == "table") and res.Body or nil end if type(body) ~= "string" or string.sub(body, 1, 8) ~= PNG then return end local makeFolder, isFolder = g("makefolder"), g("isfolder") if makeFolder and isFolder then local built = "" for segment in string.gmatch(MARK, "[^/]+") do if string.find(segment, "%.") then break -- the filename, not a folder end built = built == "" and segment or (built .. "/" .. segment) if not isFolder(built) then makeFolder(built) end end end writeFile(MARK, body) content = get(MARK) end) if type(content) == "string" and content ~= "" and image.Parent then image.Size = UDim2.fromScale(ZOOM, ZOOM) image.Image = content end end) end local function newFade(root: any): any local self: any = {} local targets: any = nil local driver: any, conn: any = nil, nil local alpha = 0 local function collect(inst: any, out: any) if inst:IsA("GuiObject") then table.insert(out, { inst, "BackgroundTransparency", inst.BackgroundTransparency }) if inst:IsA("TextLabel") or inst:IsA("TextButton") or inst:IsA("TextBox") then table.insert(out, { inst, "TextTransparency", inst.TextTransparency }) end if inst:IsA("ImageLabel") or inst:IsA("ImageButton") then table.insert(out, { inst, "ImageTransparency", inst.ImageTransparency }) end if inst:IsA("ScrollingFrame") then table.insert(out, { inst, "ScrollBarImageTransparency", inst.ScrollBarImageTransparency }) end elseif inst:IsA("UIStroke") then table.insert(out, { inst, "Transparency", inst.Transparency }) end for _, child in ipairs(inst:GetChildren()) do if not (child:IsA("GuiObject") and not child.Visible) then collect(child, out) end end end local function snapshot() if targets then return end targets = {} collect(root, targets) end local function put(a: number) alpha = a if not targets then return end for _, t in ipairs(targets) do t[1][t[2]] = t[3] + (1 - t[3]) * a end end local function stop() if conn then conn:Disconnect() conn = nil end if driver then driver:Destroy() driver = nil end end local function land(a: number, done: any) stop() put(a) if a <= 0 then targets = nil end if done then done() end end function self:Set(a: number) stop() snapshot() put(a) if a <= 0 then targets = nil end end function self:To(info: any, a: number, done: any) stop() snapshot() local value = Instance.new("NumberValue") value.Value = alpha driver = value conn = value.Changed:Connect(put) local tween = tw(value, info, { Value = a }) if not tween then land(a, done) return end tween.Completed:Once(function() if driver ~= value then return end land(a, done) end) end function self:Destroy() stop() targets = nil end return self end local ATTR = "__urn" local ALPHA = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" local function gname(): string local out = {} for i = 1, 12 do local n = math.random(1, #ALPHA) out[i] = string.sub(ALPHA, n, n) end return table.concat(out) end local function mountGui(gui: any, preferred: any) pcall(function() gui:SetAttribute(ATTR, true) end) pcall(function() if type(protect_gui) == "function" then protect_gui(gui) elseif type(syn) == "table" and type(syn.protect_gui) == "function" then syn.protect_gui(gui) end end) local targets = {} if typeof(preferred) == "Instance" then table.insert(targets, preferred) end pcall(function() if type(gethui) == "function" then local hidden = gethui() if typeof(hidden) == "Instance" then table.insert(targets, hidden) end end end) local core = service("CoreGui") if core then table.insert(targets, core) end pcall(function() local players = service("Players") local player = players and players.LocalPlayer if player then local pg = player:FindFirstChildOfClass("PlayerGui") or player:WaitForChild("PlayerGui", 5) if pg then table.insert(targets, pg) end end end) for _, target in ipairs(targets) do local ok = pcall(function() gui.Parent = target end) if ok and gui.Parent == target then return end end end local ORDER = 1000000 -- above the window's ScreenGui, which leaves DisplayOrder at 0 local DIM = 0.28 -- backdrop transparency at rest (lower = darker) local CARD_W = 420 -- max card width; below that it tracks the viewport local PAD = 16 local GAP = 12 local RADIUS = 12 -- Theme.Metrics.windowRadius local BAR = 42 -- titlebar height (the window's own is 50; this is a dialog) local LOGO = 24 -- brand mark, square local CHIP = 36 -- tone icon chip local function str(v: any): string? if type(v) == "string" then return v ~= "" and v or nil end if type(v) == "number" then return tostring(v) end return nil end local function toneOf(v: any): Color3 local name = type(v) == "string" and string.lower(v) or "" if name == "warning" or name == "warn" then return C.warning elseif name == "info" then return C.accent end return C.danger end local function copyText(text: string): boolean local fn: any = nil pcall(function() if type(setclipboard) == "function" then fn = setclipboard elseif type(toclipboard) == "function" then fn = toclipboard end end) if not fn then return false end return (pcall(fn, text)) end local function clipboardFn(): any local fn: any = nil pcall(function() if type(getclipboard) == "function" then fn = getclipboard elseif type(getclipboardtext) == "function" then fn = getclipboardtext elseif type(toclipboard) == "function" then fn = toclipboard end end) return fn end local WORDMARK = (function(): string local out = {} for _, c in utf8.codes(string.upper(BRAND)) do table.insert(out, utf8.char(c)) end return table.concat(out, " ") end)() local function putIcon(parent: Instance, name: string, size: number, color: Color3): any local i: any = newIcon(name, size, color) i.AnchorPoint = Vector2.new(0.5, 0.5) i.Position = UDim2.fromScale(0.5, 0.5) i.Parent = parent return i end local active: any = nil return function(opts: any): any local o: any = {} if type(opts) == "table" then for key, value in opts :: any do o[key] = value end end if active then local previous = active active = nil previous:Close(true, "replaced") end local dismissable = o.Dismissable ~= false local tone = toneOf(o.Tone) local screenGui = new("ScreenGui", { Name = gname(), DisplayOrder = ORDER, IgnoreGuiInset = true, ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, }) local backdrop = new("TextButton", { Name = "Backdrop", AutoButtonColor = false, Modal = true, Text = "", Size = UDim2.fromScale(1, 1), BackgroundColor3 = C.chrome, BackgroundTransparency = DIM, BorderSizePixel = 0, Parent = screenGui, }) local SCALE_REF, SCALE_MAX = 840, 1.6 local function autoScale(): number local vp = Vector2.zero pcall(function() vp = game:GetService("Workspace").CurrentCamera.ViewportSize end) if vp.X <= 0 then pcall(function() vp = screenGui.AbsoluteSize end) end local touch = false pcall(function() touch = UIS.TouchEnabled == true and UIS.KeyboardEnabled ~= true end) if vp.X <= 0 or vp.Y <= 0 or not touch then return 1 end local wanted = math.floor((SCALE_REF / math.min(vp.X, vp.Y)) / 0.05 + 0.5) * 0.05 return math.clamp(wanted, 1, SCALE_MAX) end local pinnedScale = tonumber(o.Scale) local SCALE = if pinnedScale then math.clamp(pinnedScale, 0.75, 2) else autoScale() local stageScale = new("UIScale", { Scale = SCALE }) local stage = new("Frame", { Name = "Stage", Size = UDim2.fromScale(1 / SCALE, 1 / SCALE), BackgroundTransparency = 1, Parent = backdrop, }, { stageScale, }) if not pinnedScale then screenGui:GetPropertyChangedSignal("AbsoluteSize"):Connect(function() local wanted = autoScale() if math.abs(wanted - SCALE) < 0.001 then return end SCALE = wanted stageScale.Scale = wanted stage.Size = UDim2.fromScale(1 / wanted, 1 / wanted) end) end local card = new("Frame", { Name = "Card", AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.5), Size = UDim2.new(0.92, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundColor3 = C.bg, ZIndex = 1, Parent = stage, }, { corner(RADIUS), stroke(C.border), list(), new("UISizeConstraint", { MaxSize = Vector2.new(CARD_W, math.huge) }), }) local scale = new("UIScale", { Parent = card }) local bar = new("Frame", { Name = "Titlebar", Size = UDim2.new(1, 0, 0, BAR), BackgroundColor3 = C.chrome, LayoutOrder = 1, Parent = card, }, { corner(RADIUS), new("Frame", { Name = "SquareFill", AnchorPoint = Vector2.new(0, 1), Position = UDim2.fromScale(0, 1), Size = UDim2.new(1, 0, 0, RADIUS), BackgroundColor3 = C.chrome, BorderSizePixel = 0, }), new("Frame", { Name = "Border", AnchorPoint = Vector2.new(0, 1), Position = UDim2.fromScale(0, 1), Size = UDim2.new(1, 0, 0, 1), BackgroundColor3 = C.border_soft, BorderSizePixel = 0, }), }) local logo = new("Frame", { Name = "Logo", AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(0, 14, 0.5, 0), Size = UDim2.fromOffset(LOGO, LOGO), BackgroundTransparency = 1, ClipsDescendants = true, Parent = bar, }, { corner(7), }) local logoSquare = new("Frame", { Name = "Square", Size = UDim2.fromScale(1, 1), BackgroundColor3 = C.accent_soft, BorderSizePixel = 0, Parent = logo, }, { corner(7), }) local logoInitial = putIcon(logo, "atom", 16, C.accent) local logoImage = new("ImageLabel", { Name = "Mark", BackgroundTransparency = 1, AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.5), Size = UDim2.fromScale(1, 1), Image = "", ScaleType = Enum.ScaleType.Fit, Parent = logo, }) loadLogo(logoImage, function(loaded) logoSquare.Visible = not loaded logoInitial.Visible = not loaded end) local BRAND_X = 14 + LOGO + 10 new("TextLabel", { Name = "Brand", BackgroundTransparency = 1, AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(0, BRAND_X, 0.5, 0), Size = UDim2.new(1, -(BRAND_X + 44), 1, 0), Text = WORDMARK, TextColor3 = C.text, TextSize = 13, FontFace = F.Bold, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, Parent = bar, }) local closeBtn = new("TextButton", { Name = "Close", AutoButtonColor = false, Text = "", BackgroundTransparency = 1, AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -13, 0.5, 0), Size = UDim2.fromOffset(24, 24), Visible = dismissable, Parent = bar, }) local closeIcon = putIcon(closeBtn, "x", 16, C.text_dim) closeBtn.MouseEnter:Connect(function() tintIcon(closeIcon, C.text) end) closeBtn.MouseLeave:Connect(function() tintIcon(closeIcon, C.text_dim) end) local content = new("Frame", { Name = "Content", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, LayoutOrder = 2, Parent = card, }, { pad(PAD), list({ Padding = UDim.new(0, GAP) }), }) local head = new("Frame", { Name = "Head", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, LayoutOrder = 1, Parent = content, }, { list({ FillDirection = Enum.FillDirection.Horizontal, VerticalAlignment = Enum.VerticalAlignment.Center, Padding = UDim.new(0, 12), }), }) local chip = new("Frame", { Name = "Chip", Size = UDim2.fromOffset(CHIP, CHIP), BackgroundColor3 = C.bg:Lerp(tone, 0.18), LayoutOrder = 1, Parent = head, }, { corner(10), }) local iconName = str(o.Icon) or "triangle-alert" local iconInst = putIcon(chip, iconName, 18, tone) local titleBlock = new("Frame", { Name = "TitleBlock", BackgroundTransparency = 1, Size = UDim2.new(1, -(CHIP + 12), 0, 0), AutomaticSize = Enum.AutomaticSize.Y, LayoutOrder = 2, Parent = head, }, { list({ Padding = UDim.new(0, 3) }), }) local title = new("TextLabel", { Name = "Title", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Text = "", TextColor3 = C.text, TextSize = 17, FontFace = F.Bold, TextXAlignment = Enum.TextXAlignment.Left, TextWrapped = true, LayoutOrder = 1, Parent = titleBlock, }) local codeLabel = new("TextLabel", { Name = "Code", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Text = "", TextColor3 = C.text_dim, TextSize = 11, FontFace = F.Mono, TextXAlignment = Enum.TextXAlignment.Left, TextWrapped = true, Visible = false, LayoutOrder = 2, Parent = titleBlock, }) local rule = new("Frame", { Name = "Rule", Size = UDim2.new(1, 0, 0, 1), BackgroundColor3 = tone, BackgroundTransparency = 0.45, BorderSizePixel = 0, LayoutOrder = 3, Parent = content, }) local body = new("TextLabel", { Name = "Text", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Text = "", TextColor3 = C.text_muted, TextSize = 13, FontFace = F.Regular, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top, TextWrapped = true, LineHeight = 1.25, Visible = false, LayoutOrder = 4, Parent = content, }) local inviteRow = new("Frame", { Name = "Discord", Size = UDim2.new(1, 0, 0, 32), BackgroundColor3 = C.control, Visible = false, LayoutOrder = 6, Parent = content, }, { corner(8), stroke(C.border), }) local inviteIcon: any = newIcon("message-circle", 14, C.text_dim) inviteIcon.AnchorPoint = Vector2.new(0, 0.5) inviteIcon.Position = UDim2.new(0, 11, 0.5, 0) inviteIcon.Parent = inviteRow local inviteBox = new("TextBox", { Name = "Invite", BackgroundTransparency = 1, Position = UDim2.fromOffset(33, 0), Size = UDim2.new(1, -44, 1, 0), Text = "", TextColor3 = C.text, TextSize = 12, FontFace = F.Mono, TextXAlignment = Enum.TextXAlignment.Left, ClearTextOnFocus = false, TextEditable = false, Parent = inviteRow, }) local actionList: any = list({ FillDirection = Enum.FillDirection.Horizontal, VerticalAlignment = Enum.VerticalAlignment.Center, Padding = UDim.new(0, 8), }) pcall(function() actionList.Wraps = true end) local actions = new("Frame", { Name = "Actions", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Visible = false, LayoutOrder = 9, Parent = content, }, { actionList, }) local flash = new("TextLabel", { Name = "Flash", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 14), Text = "", TextColor3 = C.accent, TextSize = 11, FontFace = F.Regular, TextXAlignment = Enum.TextXAlignment.Left, TextTransparency = 1, TextTruncate = Enum.TextTruncate.AtEnd, Visible = false, LayoutOrder = 10, Parent = content, }) local footerRule = new("Frame", { Name = "FooterRule", Size = UDim2.new(1, 0, 0, 1), BackgroundColor3 = C.border_soft, BorderSizePixel = 0, Visible = false, LayoutOrder = 11, Parent = content, }) local footer = new("TextLabel", { Name = "Footer", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Text = "", TextColor3 = C.text_dim, TextSize = 11, FontFace = F.Regular, TextXAlignment = Enum.TextXAlignment.Left, TextWrapped = true, Visible = false, LayoutOrder = 12, Parent = content, }) local handle: any = {} handle.ScreenGui = screenGui handle.Card = card local fade = newFade(backdrop) local closing = false local conns: { RBXScriptConnection } = {} local flashToken = 0 local closeFired = false local function fireClose(how: string) if closeFired then return end closeFired = true local fn = o.OnClose if type(fn) ~= "function" then return end task.spawn(function() pcall(fn, handle, how) end) end function handle:Close(immediate: boolean?, how: string?) if closing then return end closing = true fireClose(type(how) == "string" and how or "dismiss") if active == handle then active = nil end if immediate then screenGui:Destroy() return end tw(scale, TW.MenuOut, { Scale = 0.96 }) fade:To(TW.MenuOut, 1, function() screenGui:Destroy() end) end screenGui.Destroying:Connect(function() closing = true fireClose("replaced") if active == handle then active = nil end for _, conn in conns do conn:Disconnect() end table.clear(conns) fade:Destroy() end) function handle:Flash(text: any) local s = str(text) flash.Text = s or "" flash.Visible = s ~= nil if not s then flash.TextTransparency = 1 return end flashToken += 1 local token = flashToken tw(flash, TW.Fast, { TextTransparency = 0 }) task.delay(3, function() if closing or token ~= flashToken then return end tw(flash, TW.Normal, { TextTransparency = 1 }) end) end local function newButton(label: string, icon: string?, primary: boolean, onClick: () -> (), parent: any?): any local base = primary and C.accent_fill or C.control local over = primary and C.accent or C.control_hi local btn = new("TextButton", { Name = "Action", AutoButtonColor = false, AutomaticSize = Enum.AutomaticSize.X, Size = UDim2.fromOffset(0, 34), BackgroundColor3 = base, Text = "", Parent = parent or actions, }, { corner(8), pad(0, 14, 0, 14), list({ FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Center, VerticalAlignment = Enum.VerticalAlignment.Center, Padding = UDim.new(0, 8), }), new("UISizeConstraint", { MinSize = Vector2.new(76, 34) }), }) if icon then local bi: any = newIcon(icon, 14, primary and C.knockout or C.text_muted) bi.LayoutOrder = 1 bi.Parent = btn end new("TextLabel", { Name = "Label", BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.X, Size = UDim2.fromOffset(0, 34), Text = label, TextColor3 = primary and C.knockout or C.text, TextSize = 13, FontFace = F.Medium, LayoutOrder = 2, Parent = btn, }) btn.MouseEnter:Connect(function() if btn:GetAttribute("busy") then return end tw(btn, TW.Fast, { BackgroundColor3 = over }) end) btn.MouseLeave:Connect(function() if btn:GetAttribute("busy") then return end tw(btn, TW.Fast, { BackgroundColor3 = base }) end) btn.Activated:Connect(onClick) return btn end local INPUT_H = 34 -- the action buttons' height: the row has to read as one local MIN_BOX = 200 -- below this the box can't show a full key, so the button wraps local inputBlock: any = nil local applyInput: any = nil local function ensureInput() if inputBlock then return end local reader = clipboardFn() local submitFn: any, filterFn: any, maxLen: any, seenCfg: any = nil, nil, nil, nil local busy, guard, pasteOn, isError = false, false, false, false local estW = 76 inputBlock = new("Frame", { Name = "Input", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, LayoutOrder = 5, Parent = content, }, { list({ Padding = UDim.new(0, 6) }), }) local capLabel = new("TextLabel", { Name = "Label", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 12), Text = "", TextColor3 = C.text_dim, TextSize = 10, FontFace = F.Medium, TextXAlignment = Enum.TextXAlignment.Left, Visible = false, LayoutOrder = 1, Parent = inputBlock, }) local row = new("Frame", { Name = "Row", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, INPUT_H), LayoutOrder = 2, Parent = inputBlock, }) local field = new("Frame", { Name = "Field", Size = UDim2.new(1, 0, 0, INPUT_H), BackgroundColor3 = C.control, Parent = row, }, { corner(8), stroke(C.border), }) local fieldStroke: any = field:FindFirstChildOfClass("UIStroke") local box = new("TextBox", { Name = "Box", BackgroundTransparency = 1, Position = UDim2.fromOffset(12, 0), Size = UDim2.new(1, -24, 1, 0), Text = "", PlaceholderText = "", PlaceholderColor3 = C.text_dim, TextColor3 = C.text, TextSize = 13, FontFace = F.Mono, TextXAlignment = Enum.TextXAlignment.Left, ClearTextOnFocus = false, ClipsDescendants = true, Parent = field, }) local paste = new("TextButton", { Name = "Paste", AutoButtonColor = false, Text = "", AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -6, 0.5, 0), Size = UDim2.fromOffset(24, 24), BackgroundColor3 = C.control_hi, Visible = false, Parent = field, }, { corner(6), }) local pasteIcon = putIcon(paste, "clipboard", 13, C.text_dim) local status = new("TextLabel", { Name = "Status", BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Text = "", TextColor3 = C.danger, TextSize = 11, FontFace = F.Regular, TextXAlignment = Enum.TextXAlignment.Left, TextWrapped = true, Visible = false, LayoutOrder = 3, Parent = inputBlock, }) local function clean(text: string): string local out = text if filterFn then local ok, filtered = pcall(filterFn, out) if ok and type(filtered) == "string" then out = filtered end end if maxLen and #out > maxLen then out = string.sub(out, 1, maxLen) end return out end local function setStatus(text: string?, bad: boolean) isError = text ~= nil and bad status.Text = text or "" status.TextColor3 = bad and C.danger or C.accent status.Visible = text ~= nil end local btn: any = nil local function paintBusy() box.TextEditable = not busy box.TextColor3 = busy and C.text_muted or C.text paste.Visible = pasteOn and not busy if btn then btn:SetAttribute("busy", busy) btn.BackgroundColor3 = busy and C.accent_dim or C.accent_fill end end local ui: any = {} local function submit() if busy or closing or not submitFn then return end local value = box.Text if value == "" then return end local fn = submitFn task.spawn(function() pcall(fn, value, ui) end) end btn = newButton("Continue", nil, true, submit, row) local btnLabel: any = btn:FindFirstChild("Label") local function relayout() local w = row.AbsoluteSize.X / SCALE if w > 0 and (w - estW - 8) < MIN_BOX then btn.AutomaticSize = Enum.AutomaticSize.None btn.AnchorPoint = Vector2.new(0, 0) btn.Position = UDim2.fromOffset(0, INPUT_H + 8) btn.Size = UDim2.new(1, 0, 0, INPUT_H) field.Size = UDim2.new(1, 0, 0, INPUT_H) row.Size = UDim2.new(1, 0, 0, INPUT_H * 2 + 8) else local bw = estW if btn.AutomaticSize == Enum.AutomaticSize.X and btn.AbsoluteSize.X > 0 then bw = btn.AbsoluteSize.X / SCALE end btn.AutomaticSize = Enum.AutomaticSize.X btn.AnchorPoint = Vector2.new(1, 0) btn.Position = UDim2.new(1, 0, 0, 0) btn.Size = UDim2.fromOffset(0, INPUT_H) field.Size = UDim2.new(1, -(bw + 8), 0, INPUT_H) row.Size = UDim2.new(1, 0, 0, INPUT_H) end end function ui:Get(): string return box.Text end function ui:Set(value: any) local text = value == nil and "" or tostring(value) guard = true box.Text = clean(text) guard = false end function ui:Clear() ui:Set("") end function ui:Focus() if busy then return end pcall(function() box:CaptureFocus() end) end function ui:Busy(on: any) busy = on and true or false paintBusy() if busy then pcall(function() box:ReleaseFocus() end) end end function ui:Error(text: any) setStatus(str(text) or "That didn't work.", true) ui:Focus() end function ui:Success(text: any) setStatus(str(text), false) end box:GetPropertyChangedSignal("Text"):Connect(function() if guard then return end local filtered = clean(box.Text) if filtered ~= box.Text then guard = true box.Text = filtered guard = false end if isError then setStatus(nil, true) end end) local shifted = 0 local hasFocus = false local function shiftForKeyboard() local keyboardTop = 0 pcall(function() if UIS and UIS.OnScreenKeyboardVisible == true then keyboardTop = UIS.OnScreenKeyboardPosition.Y end end) local wanted = 0 if hasFocus and keyboardTop > 0 then local inset = 0 pcall(function() inset = game:GetService("GuiService"):GetGuiInset().Y end) local bottom = box.AbsolutePosition.Y + box.AbsoluteSize.Y + inset + 12 local cardTop = card.AbsolutePosition.Y + inset + shifted wanted = math.clamp(shifted + (bottom - keyboardTop), 0, math.max(0, cardTop - 8)) end wanted = math.round(wanted) if wanted == shifted then return end shifted = wanted tw(card, TW.Normal, { Position = UDim2.new(0.5, 0, 0.5, -shifted / SCALE) }) end local function keyboardSoon() task.defer(shiftForKeyboard) end if UIS then for _, prop in { "OnScreenKeyboardVisible", "OnScreenKeyboardPosition" } do pcall(function() table.insert(conns, UIS:GetPropertyChangedSignal(prop):Connect(keyboardSoon)) end) end end box.Focused:Connect(function() tw(fieldStroke, TW.Fast, { Color = C.accent }) hasFocus = true keyboardSoon() end) box.FocusLost:Connect(function(enterPressed) tw(fieldStroke, TW.Fast, { Color = C.border }) hasFocus = false keyboardSoon() if enterPressed then submit() end end) paste.Activated:Connect(function() if busy or not reader then return end local ok, text = pcall(reader) if ok and type(text) == "string" and text ~= "" then ui:Set(text) submit() else handle:Flash("Nothing on the clipboard.") end end) paste.MouseEnter:Connect(function() tw(paste, TW.Fast, { BackgroundColor3 = C.pop }) tintIcon(pasteIcon, C.text) end) paste.MouseLeave:Connect(function() tw(paste, TW.Fast, { BackgroundColor3 = C.control_hi }) tintIcon(pasteIcon, C.text_dim) end) row:GetPropertyChangedSignal("AbsoluteSize"):Connect(relayout) btn:GetPropertyChangedSignal("AbsoluteSize"):Connect(relayout) applyInput = function(cfg: any) submitFn = type(cfg.Submit) == "function" and cfg.Submit or nil filterFn = type(cfg.Filter) == "function" and cfg.Filter or nil maxLen = nil if type(cfg.MaxLength) == "number" and cfg.MaxLength >= 1 then maxLen = math.floor(cfg.MaxLength) end local cap = str(cfg.Label) capLabel.Text = cap and string.upper(cap) or "" capLabel.Visible = cap ~= nil box.PlaceholderText = str(cfg.Placeholder) or "" local text = str(cfg.Button) or "Continue" btnLabel.Text = text estW = math.clamp(#text * 8 + 28, 76, 220) pasteOn = cfg.Paste == true and reader ~= nil box.Size = UDim2.new(1, pasteOn and -48 or -24, 1, 0) paintBusy() if cfg ~= seenCfg then seenCfg = cfg local v = cfg.Value if type(v) == "string" or type(v) == "number" then ui:Set(v) end end relayout() end handle.Input = ui end local function buildActions() for _, child in actions:GetChildren() do if child:IsA("GuiObject") then child:Destroy() end end local n = 0 if type(o.Actions) == "table" then for _, def in o.Actions :: any do if type(def) == "table" then local closeAfter = def.Close ~= false local callback = type(def.Callback) == "function" and def.Callback or nil local btn = newButton(str(def.Label) or "OK", str(def.Icon), def.Primary == true, function() if callback then task.spawn(function() pcall(callback, handle) end) end if closeAfter then handle:Close(nil, "action") end end) n += 1 btn.LayoutOrder = n end end end local invite = str(o.Discord) if invite then local only = n == 0 n += 1 local btn = newButton("Copy Discord", "message-circle", only, function() if copyText(invite) then handle:Flash("Copied " .. invite) else handle:Flash("No clipboard here — select the invite above.") end end) btn.LayoutOrder = n end actions.Visible = n > 0 end local function apply(patch: any?) if patch ~= nil then if type(patch) ~= "table" then return end for key, value in patch :: any do o[key] = value end end dismissable = o.Dismissable ~= false closeBtn.Visible = dismissable tone = toneOf(o.Tone) chip.BackgroundColor3 = C.bg:Lerp(tone, 0.18) rule.BackgroundColor3 = tone local nextIcon = str(o.Icon) or "triangle-alert" if nextIcon ~= iconName then iconName = nextIcon iconInst:Destroy() iconInst = putIcon(chip, iconName, 18, tone) else tintIcon(iconInst, tone) end title.Text = str(o.Title) or "Something went wrong" local code = str(o.Code) codeLabel.Text = code or "" codeLabel.Visible = code ~= nil local text = str(o.Text) body.Text = text or "" body.Visible = text ~= nil if type(o.Input) == "table" then ensureInput() applyInput(o.Input) elseif inputBlock then inputBlock.Visible = false end local invite = str(o.Discord) inviteBox.Text = invite or "" inviteRow.Visible = invite ~= nil local foot = str(o.Footer) footer.Text = foot or "" footer.Visible = foot ~= nil footerRule.Visible = foot ~= nil buildActions() end function handle:Set(patch: any) if closing then return end apply(patch or {}) end closeBtn.Activated:Connect(function() if dismissable then handle:Close(nil, "dismiss") end end) if UIS then table.insert(conns, UIS.InputBegan:Connect(function(input, gameProcessed) if gameProcessed or not dismissable or closing then return end if input.KeyCode == Enum.KeyCode.Escape then handle:Close(nil, "dismiss") end end)) end apply(nil) mountGui(screenGui, typeof(o.Parent) == "Instance" and o.Parent or nil) fade:Set(1) scale.Scale = 0.94 tw(scale, TW.Pop, { Scale = 1 }) fade:To(TW.Normal, 0) active = handle return handle end end)() end) if not (ok and type(show) == "function") then show = nil end return (function(...) local OPTS = ... OPTS = type(OPTS) == "table" and OPTS or {} local API = tostring(OPTS.Api or "") local SCREEN = type(OPTS.Screen) == "function" and OPTS.Screen or nil local DISCORD = tostring(OPTS.Discord or "") local WHERE = tostring(OPTS.Where or "") local NOTE = tostring(OPTS.Note or "") local REASON = tostring(OPTS.Reason or "") local CODE = tostring(OPTS.Code or "NO KEY") local STALE = OPTS.Stale == true local TEST = OPTS.Test == true local QUERY = TEST and "?keytest=1" or "" local FREE = "get the free key in discord, then paste it below." local INVITE = DISCORD ~= "" and DISCORD or (WHERE ~= "" and WHERE or "https://discord.gg/joinuranium") local ADDRESS = INVITE:gsub("^https?://", ""):gsub("/+$", "") local KEYFOLDER = "uranium" local KEYFILE = "uranium/key.json" local HttpServ = game:GetService("HttpService") local function try(fn, ...) local succ, res = pcall(fn, ...) if succ then return res end return nil end local function logWarning(msg) return warn(`[Uranium] {msg}`) end local httpRequest = (type(http) == "table" and type(http.request) == "function" and http.request) or (type(http_request) == "function" and http_request) or (type(request) == "function" and request) or (type(syn) == "table" and type(syn.request) == "function" and syn.request) local function tidy(value) if type(value) ~= "string" then return "" end return (value:gsub("%s+", ""):upper()) end local function readKey() if type(isfile) ~= "function" or type(readfile) ~= "function" then return "" end if not try(isfile, KEYFILE) then return "" end local raw = try(readfile, KEYFILE) if type(raw) ~= "string" or raw == "" then return "" end local data = try(function() return HttpServ:JSONDecode(raw) end) if type(data) == "table" and type(data.key) == "string" then return data.key end if raw:sub(1, 1) == "{" then return "" end return tidy(raw) end local function writeKey(key) if type(writefile) ~= "function" then return end if type(isfolder) == "function" and type(makefolder) == "function" and not try(isfolder, KEYFOLDER) then try(makefolder, KEYFOLDER) end try(function() writefile(KEYFILE, HttpServ:JSONEncode({ key = key, saved = os.time() })) end) end local function fetchLoader(key) local url = `{API}/v1/loader?k={HttpServ:UrlEncode(key)}{TEST and "&keytest=1" or ""}` local src = try(function() return game:HttpGet(url, true) end) if type(src) ~= "string" or src == "" then return nil end return src end local function runLoader(src) local fn, err = loadstring(src) if not fn then logWarning(`loader didn't compile: {err}`) return false end local ok, res = pcall(fn) if not ok then logWarning(`loader errored: {res}`) return false end return true end local function redeem(value) local key = tidy(value) if key == "" then return false, "enter your key first." end if not httpRequest then return false, "your executor can't send requests." end local hwid = try(gethwid) local res = try(httpRequest, { Url = `{API}/v1/key{QUERY}`, Method = "POST", Headers = { ["Content-Type"] = "application/json" }, Body = HttpServ:JSONEncode({ key = key, hwid = hwid and tostring(hwid) or nil }), }) if not res then return false, "couldn't reach the server. try again in a moment." end local data = try(function() return HttpServ:JSONDecode(res.Body or "") end) if type(data) ~= "table" then return false, "the server sent something back we couldn't read." end if not data.ok then return false, tostring(data.reason or "that key didn't work.") end local saved = type(data.key) == "string" and data.key ~= "" and data.key or key writeKey(saved) return true, saved end local override = (type(getgenv) == "function") and getgenv().URANIUM_KEY or nil local key = TEST and "" or tidy(override) if key == "" and not STALE and not TEST then key = readKey() end if key ~= "" and not STALE then local src = fetchLoader(key) if src and runLoader(src) then return end end if not SCREEN then return logWarning(REASON ~= "" and REASON or `a key is required — put it in {KEYFILE} or set getgenv().URANIUM_KEY before running`) end local handle local busy = false local function report(ui, message, good) if ui and type(ui.Error) == "function" and not good then if pcall(ui.Error, ui, message) then return end end if ui and type(ui.Success) == "function" and good then if pcall(ui.Success, ui, message) then return end end if handle and type(handle.Flash) == "function" then pcall(handle.Flash, handle, message) end end local function setBusy(ui, on) if ui and type(ui.Busy) == "function" then pcall(ui.Busy, ui, on) end end local function attempt(value, ui) if busy then return end busy = true setBusy(ui, true) local ok, result = redeem(value) if not ok then busy = false setBusy(ui, false) report(ui, result, false) return end report(ui, "key accepted, loading.", true) local src = fetchLoader(result) if not src then busy = false setBusy(ui, false) report(ui, "key worked, but the loader didn't come down. try again.", false) return end pcall(function() handle:Close() end) task.defer(runLoader, src) end local actions = { { Label = "copy discord", Icon = "message-circle", Close = false, Callback = function(h) if type(setclipboard) == "function" and pcall(setclipboard, INVITE) then pcall(h.Flash, h, "discord link copied.") else pcall(h.Flash, h, ADDRESS) end end, }, } local pasteAction = { Label = "paste key", Icon = "clipboard", Primary = true, Close = false, Callback = function(h) local clip = (type(getclipboard) == "function") and try(getclipboard) or nil if tidy(clip) == "" then pcall(h.Flash, h, "nothing on the clipboard.") return end attempt(clip, nil) end, } local okShow, screen = pcall(SCREEN, { Title = `JOIN\n{ADDRESS}\nFOR KEY`, Text = FREE .. (REASON ~= "" and CODE ~= "NO KEY" and " " .. REASON or ""), Code = CODE ~= "NO KEY" and CODE or nil, Icon = "key", Tone = CODE == "NO KEY" and "info" or "warning", Footer = NOTE ~= "" and NOTE or nil, Dismissable = true, Input = { Label = "your key", Placeholder = "XXXX-XXXX-XXXX-XXXX", Button = "continue", Paste = true, Value = key, Submit = function(value, ui) task.spawn(attempt, value, ui) end, }, Actions = actions, }) handle = (okShow and type(screen) == "table") and screen or nil if not handle then return logWarning(REASON ~= "" and REASON or "a key is required to run Uranium") end if type(handle.Input) ~= "table" then table.insert(actions, pasteAction) pcall(function() handle:Set({ Actions = actions, Text = FREE .. " " .. (REASON ~= "" and CODE ~= "NO KEY" and REASON .. " " or "") .. "copy your key, then press paste key.", }) end) end return handle end)({ Api = "https://uranium-api.funjimmy.workers.dev", Discord = "http://discord.gg/joinuranium", Where = "http://discord.gg/joinuranium", Note = "", Code = "NO KEY", Reason = "uranium is free. join our discord and copy the free key to get started.", Stale = false, Test = false, Screen = show })