
KeylessUniversal

-- Services
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
-- Create ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "UniversalUIGUI"
screenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.ResetOnSpawn = false
task.wait(0.1)
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 400, 0, 300)
mainFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
mainFrame.BorderSizePixel = 0
mainFrame.ClipsDescendants = true
mainFrame.Parent = screenGui
local function centerFrame()
if not screenGui or not mainFrame then return end
if not screenGui.AbsoluteSize or not mainFrame.AbsoluteSize then return end
local screenSize = screenGui.AbsoluteSize
local frameSize = mainFrame.AbsoluteSize
if screenSize.X > 0 and frameSize.X > 0 then
local centerX = (screenSize.X - frameSize.X) / 2
local centerY = (screenSize.Y - frameSize.Y) / 2
mainFrame.Position = UDim2.fromOffset(centerX, centerY)
end
end
task.spawn(function()
task.wait(0.2)
if mainFrame and mainFrame.Parent then
centerFrame()
end
end)
local recenterDebounce = false
screenGui:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
if not recenterDebounce then
recenterDebounce = true
task.wait(0.1)
if mainFrame and mainFrame.Parent then
centerFrame()
end
recenterDebounce = false
end
end)
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 8)
uiCorner.Parent = mainFrame
local uiStroke = Instance.new("UIStroke")
uiStroke.Color = Color3.fromRGB(100, 100, 110)
uiStroke.Thickness = 1
uiStroke.Parent = mainFrame
local header = Instance.new("Frame")
header.Name = "Header"
header.Size = UDim2.new(1, 0, 0, 40)
header.Position = UDim2.new(0, 0, 0, 0)
header.BackgroundColor3 = Color3.fromRGB(60, 60, 65)
header.BorderSizePixel = 0
header.ZIndex = 10
header.Parent = mainFrame
local headerCorner = Instance.new("UICorner")
headerCorner.CornerRadius = UDim.new(0, 8, 0, 0)
headerCorner.Parent = header
-- CHANGED TITLE HERE
local title = Instance.new("TextLabel")
title.Name = "Title"
title.Size = UDim2.new(1, -100, 1, 0)
title.Position = UDim2.new(0, 15, 0, 0)
title.BackgroundTransparency = 1
title.Text = "universal ui made by blossom" -- Changed from "BLOSSOM HUB"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextSize = 18
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.ZIndex = 11
title.Parent = header
local minimizeButton = Instance.new("TextButton")
minimizeButton.Name = "MinimizeButton"
minimizeButton.Size = UDim2.new(0, 30, 0, 30)
minimizeButton.Position = UDim2.new(1, -70, 0, 5)
minimizeButton.BackgroundColor3 = Color3.fromRGB(70, 70, 75)
minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeButton.Text = "━"
minimizeButton.TextSize = 18
minimizeButton.Font = Enum.Font.GothamBold
minimizeButton.ZIndex = 11
minimizeButton.Parent = header
local minimizeCorner = Instance.new("UICorner")
minimizeCorner.CornerRadius = UDim.new(0, 4)
minimizeCorner.Parent = minimizeButton
local closeButton = Instance.new("TextButton")
closeButton.Name = "CloseButton"
closeButton.Size = UDim2.new(0, 30, 0, 30)
closeButton.Position = UDim2.new(1, -35, 0, 5)
closeButton.BackgroundColor3 = Color3.fromRGB(70, 70, 75)
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
closeButton.Text = "✕"
closeButton.TextSize = 18
closeButton.Font = Enum.Font.GothamBold
closeButton.ZIndex = 11
closeButton.Parent = header
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 4)
closeCorner.Parent = closeButton
-- Changed to ScrollingFrame for scroll functionality
local scrollFrame = Instance.new("ScrollingFrame")
scrollFrame.Name = "ContentScroller"
scrollFrame.Size = UDim2.new(1, -20, 1, -60)
scrollFrame.Position = UDim2.new(0, 10, 0, 50)
scrollFrame.BackgroundColor3 = Color3.fromRGB(55, 55, 60)
scrollFrame.BackgroundTransparency = 0
scrollFrame.BorderSizePixel = 0
scrollFrame.ScrollBarThickness = 8
scrollFrame.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 110)
scrollFrame.ScrollingDirection = Enum.ScrollingDirection.Y
scrollFrame.VerticalScrollBarInset = Enum.ScrollBarInset.Always
scrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
scrollFrame.ZIndex = 5
scrollFrame.Parent = mainFrame
local contentCorner = Instance.new("UICorner")
contentCorner.CornerRadius = UDim.new(0, 6)
contentCorner.Parent = scrollFrame
local contentStroke = Instance.new("UIStroke")
contentStroke.Color = Color3.fromRGB(80, 80, 85)
contentStroke.Thickness = 1
contentStroke.Parent = scrollFrame
-- Create a container for content inside the scroll frame
local contentContainer = Instance.new("Frame")
contentContainer.Name = "ContentContainer"
contentContainer.Size = UDim2.new(1, 0, 0, 0)
contentContainer.BackgroundTransparency = 1
contentContainer.Parent = scrollFrame
-- Set up automatic canvas sizing
contentContainer:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
local totalHeight = 0
for _, child in ipairs(contentContainer:GetChildren()) do
if child:IsA("GuiObject") then
totalHeight = totalHeight + child.AbsoluteSize.Y + 5 -- 5 pixel spacing
end
end
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, totalHeight)
end)
-- Add some empty elements to demonstrate scrolling (completely empty as requested)
-- Note: The UI is intentionally left empty with no features as requested
minimizeButton.MouseEnter:Connect(function()
if minimizeButton then
TweenService:Create(minimizeButton, TweenInfo.new(0.2), {
BackgroundColor3 = Color3.fromRGB(90, 90, 95)
}):Play()
end
end)
minimizeButton.MouseLeave:Connect(function()
if minimizeButton then
TweenService:Create(minimizeButton, TweenInfo.new(0.2), {
BackgroundColor3 = Color3.fromRGB(70, 70, 75)
}):Play()
end
end)
closeButton.MouseEnter:Connect(function()
if closeButton then
TweenService:Create(closeButton, TweenInfo.new(0.2), {
BackgroundColor3 = Color3.fromRGB(220, 80, 80)
}):Play()
end
end)
closeButton.MouseLeave:Connect(function()
if closeButton then
TweenService:Create(closeButton, TweenInfo.new(0.2), {
BackgroundColor3 = Color3.fromRGB(70, 70, 75)
}):Play()
end
end)
local isMinimized = false
minimizeButton.MouseButton1Click:Connect(function()
if not mainFrame or not scrollFrame then return end
isMinimized = not isMinimized
if isMinimized then
minimizeButton.Text = "+"
if not mainFrame:GetAttribute("OriginalSize") then
mainFrame:SetAttribute("OriginalSize", mainFrame.Size)
end
TweenService:Create(mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Size = UDim2.new(0, 400, 0, 40)
}):Play()
task.wait(0.2)
if scrollFrame then
scrollFrame.Visible = false
end
else
minimizeButton.Text = "━"
local originalSize = mainFrame:GetAttribute("OriginalSize") or UDim2.new(0, 400, 0, 300)
if scrollFrame then
scrollFrame.Visible = true
end
TweenService:Create(mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Size = originalSize
}):Play()
end
end)
local isClosing = false
closeButton.MouseButton1Click:Connect(function()
if isClosing then return end
isClosing = true
local fadeInfo = TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
TweenService:Create(mainFrame, fadeInfo, {
BackgroundTransparency = 1
}):Play()
local descendants = mainFrame:GetDescendants()
for _, child in ipairs(descendants) do
if child:IsA("TextLabel") or child:IsA("TextButton") then
TweenService:Create(child, fadeInfo, {
TextTransparency = 1
}):Play()
elseif child:IsA("Frame") then
TweenService:Create(child, fadeInfo, {
BackgroundTransparency = 1
}):Play()
elseif child:IsA("UIStroke") then
TweenService:Create(child, fadeInfo, {
Transparency = 1
}):Play()
end
end
task.wait(0.5)
if screenGui and screenGui.Parent then
screenGui:Destroy()
end
end)
local isDragging = false
local dragStart, frameStart
header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or
input.UserInputType == Enum.UserInputType.Touch then
local mousePos = input.Position
if minimizeButton and closeButton then
local minBtnPos = minimizeButton.AbsolutePosition
local closeBtnPos = closeButton.AbsolutePosition
local btnSize = minimizeButton.AbsoluteSize
if mousePos.X >= minBtnPos.X and mousePos.X <= closeBtnPos.X + btnSize.X then
return
end
end
isDragging = true
dragStart = input.Position
frameStart = mainFrame.Position
local function onInputEnd()
isDragging = false
end
if input.UserInputType == Enum.UserInputType.MouseButton1 then
input:GetPropertyChangedSignal("UserInputState"):Connect(function()
if input.UserInputState == Enum.UserInputState.End then
onInputEnd()
end
end)
else
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
onInputEnd()
end
end)
end
end
end)
UserInputService.InputChanged:Connect(function(input)
if isDragging and mainFrame then
if input.UserInputType == Enum.UserInputType.MouseMovement or
input.UserInputType == Enum.UserInputType.Touch then
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(
frameStart.X.Scale,
frameStart.X.Offset + delta.X,
frameStart.Y.Scale,
frameStart.Y.Offset + delta.Y
)
end
end
end)
screenGui.AncestryChanged:Connect(function()
if not screenGui.Parent then
if screenGui then
screenGui:Destroy()
end
end
end)
return {
GUI = screenGui,
MainFrame = mainFrame,
ScrollFrame = scrollFrame,
ContentContainer = contentContainer,
Destroy = function()
if screenGui and screenGui.Parent then
screenGui:Destroy()
end
end
}


Mf make a Ui using Ai and suddenly bro's a scripter🤣
i will not use this skidded * ui who was made by ai