
KeylessUniversal

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local MarketplaceService = game:GetService("MarketplaceService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "GameInfoGUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui
-- Main Frame
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 380, 0, 260)
frame.Position = UDim2.new(0, 20, 0, 20)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
frame.BorderSizePixel = 0
frame.Parent = screenGui
local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 12)
frameCorner.Parent = frame
-- Title Bar (Drag Handle)
local titleBar = Instance.new("Frame")
titleBar.Name = "TitleBar"
titleBar.Size = UDim2.new(1, 0, 0, 40)
titleBar.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
titleBar.BorderSizePixel = 0
titleBar.Active = true -- Enable dragging on titlebar only
titleBar.Parent = frame
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 12)
titleCorner.Parent = titleBar
-- Title Label
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -50, 1, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Game Info"
titleLabel.TextColor3 = Color3.new(1, 1, 1)
titleLabel.TextScaled = true
titleLabel.Font = Enum.Font.GothamBold
titleLabel.Parent = titleBar
-- Toggle Button (X)
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -40, 0, 5)
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.new(1, 1, 1)
closeBtn.TextScaled = true
closeBtn.Font = Enum.Font.GothamBold
closeBtn.Parent = titleBar
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 8)
closeCorner.Parent = closeBtn
-- Content Frame for Rows
local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, 0, 1, -45)
contentFrame.Position = UDim2.new(0, 0, 0, 40)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = frame
local listLayout = Instance.new("UIListLayout")
listLayout.Parent = contentFrame
listLayout.Padding = UDim.new(0, 8)
listLayout.SortOrder = Enum.SortOrder.LayoutOrder
listLayout.FillDirection = Enum.FillDirection.Vertical
listLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
-- Function to create a copyable row
local function createRow(parent, labelText, valueText, layoutOrder)
local row = Instance.new("Frame")
row.Name = labelText .. "Row"
row.Size = UDim2.new(1, -20, 0, 35)
row.BackgroundTransparency = 1
row.LayoutOrder = layoutOrder
row.Parent = parent
local rowLabel = Instance.new("TextLabel")
rowLabel.Size = UDim2.new(1, -70, 1, 0)
rowLabel.Position = UDim2.new(0, 10, 0, 0)
rowLabel.BackgroundTransparency = 1
rowLabel.Text = labelText .. ": " .. valueText
rowLabel.TextColor3 = Color3.new(1, 1, 1)
rowLabel.TextScaled = true
rowLabel.TextWrapped = true
rowLabel.Font = Enum.Font.Gotham
rowLabel.TextXAlignment = Enum.TextXAlignment.Left
rowLabel.TextYAlignment = Enum.TextYAlignment.Center
rowLabel.Parent = row
local copyBtn = Instance.new("TextButton")
copyBtn.Size = UDim2.new(0, 55, 0, 25)
copyBtn.Position = UDim2.new(1, -65, 0.5, -12.5)
copyBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
copyBtn.Text = "Copy"
copyBtn.TextColor3 = Color3.new(1, 1, 1)
copyBtn.TextScaled = true
copyBtn.Font = Enum.Font.GothamBold
copyBtn.Parent = row
local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 6)
btnCorner.Parent = copyBtn
-- Hover effects
copyBtn.MouseEnter:Connect(function()
copyBtn.BackgroundColor3 = Color3.fromRGB(0, 200, 0)
end)
copyBtn.MouseLeave:Connect(function()
copyBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
end)
-- Copy to clipboard
copyBtn.MouseButton1Click:Connect(function()
setclipboard(tostring(valueText))
copyBtn.Text = "Copied!"
wait(1)
copyBtn.Text = "Copy"
end)
end
-- Enhanced Dragging (TitleBar Only - PC + Mobile)
local dragging = false
local dragInput = nil
local dragStart = nil
local startPos = nil
local function update(input)
local delta = input.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
titleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
titleBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input == dragInput) then
update(input)
end
end)
-- Toggle with X or Insert key
local visible = true
local function toggle()
visible = not visible
frame.Visible = visible
end
closeBtn.MouseButton1Click:Connect(toggle)
-- Hover for close button
closeBtn.MouseEnter:Connect(function()
closeBtn.BackgroundColor3 = Color3.fromRGB(220, 70, 70)
end)
closeBtn.MouseLeave:Connect(function()
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
end)
UserInputService.InputBegan:Connect(function(input, gp)
if not gp and input.KeyCode == Enum.KeyCode.Insert then
toggle()
end
end)
-- Load Game Info and Create Rows
spawn(function()
local placeId = game.PlaceId
local universeId = game.GameId
local jobId = game.JobId or "N/A"
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(placeId)
end)
local gameName = success and productInfo.Name or "Failed to load"
-- Clear any existing rows (safety)
for _, child in pairs(contentFrame:GetChildren()) do
if child:IsA("Frame") then child:Destroy() end
end
-- Create rows
createRow(contentFrame, "Game Name", gameName, 1)
createRow(contentFrame, "Place ID", tostring(placeId), 2)
createRow(contentFrame, "Universe ID", tostring(universeId), 3)
createRow(contentFrame, "Job ID", tostring(jobId), 4)
end)



Make Script for the Brainrot Tower You've already done it once, please do it with free Morphs.