
KeylessUniversal

local player = game.Players.LocalPlayer
local httpService = game:GetService("HttpService")
local coreGui = game:GetService("CoreGui")
local userInput = game:GetService("UserInputService")
local marketService = game:GetService("MarketplaceService")
local runService = game:GetService("RunService")
-- [ESTADO E TRADUÇÕES]
local currentLang = "PT"
local translations = {
PT = { congrats = "Parabéns", search = "Buscar", refresh = "Recarregar", clear = "Limpar", execute = "Executar", key = "Key:", universal = "Universal:" },
EN = { congrats = "Congratulations", search = "Search", refresh = "Refresh", clear = "Clear", execute = "Execute", key = "Key:", universal = "Universal:" },
ES = { congrats = "Felicitaciones", search = "Buscar", refresh = "Refrescar", clear = "Limpiar", execute = "Ejecutar", key = "Key:", universal = "Universal:" }
}
local success, productInfo = pcall(function() return marketService:GetProductInfo(game.PlaceId) end)
local cleanGameName = success and productInfo.Name:gsub("[^\32-\126]", ""):gsub("[%p%c]", " "):gsub("%s+", " "):match("^%s*(.-)%s*$") or "Universal"
local sg = Instance.new("ScreenGui", coreGui); sg.Name = "SupremeHub_V70"
-- [FUNÇÃO DE ARRASTE ATUALIZADA]
local function makeDraggable(gui)
local dragging, dragInput, dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
gui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
gui.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = gui.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
gui.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
userInput.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
end
-- [BARRA MINIMIZADA MÓVEL]
local miniBar = Instance.new("Frame", sg)
miniBar.Size = UDim2.new(0, 250, 0, 45); miniBar.Position = UDim2.new(0.5, -125, 0.05, 0)
miniBar.BackgroundColor3 = Color3.fromRGB(25, 27, 45); miniBar.Visible = false; miniBar.Active = true
Instance.new("UICorner", miniBar)
local miniStroke = Instance.new("UIStroke", miniBar); miniStroke.Thickness = 2
makeDraggable(miniBar) -- Ativando arraste na mini barra
local miniTitle = Instance.new("TextLabel", miniBar)
miniTitle.Size = UDim2.new(1, -50, 1, 0); miniTitle.Position = UDim2.new(0, 15, 0, 0); miniTitle.BackgroundTransparency = 1
miniTitle.Text = "Script Searcher 2.0"; miniTitle.TextColor3 = Color3.new(1,1,1); miniTitle.Font = "GothamBold"; miniTitle.TextSize = 16; miniTitle.TextXAlignment = "Left"
local maximizeBtn = Instance.new("TextButton", miniBar)
maximizeBtn.Size = UDim2.new(0, 40, 0, 40); maximizeBtn.Position = UDim2.new(1, -45, 0.5, -20); maximizeBtn.BackgroundTransparency = 1
maximizeBtn.Text = "□"; maximizeBtn.TextColor3 = Color3.new(1,1,1); maximizeBtn.Font = "GothamBold"; maximizeBtn.TextSize = 25
-- [JANELA PRINCIPAL]
local main = Instance.new("Frame", sg)
main.Size = UDim2.new(0, 750, 0, 450); main.Position = UDim2.new(0.5, -375, 0.4, -225); main.BackgroundColor3 = Color3.fromRGB(25, 27, 45); main.Visible = false; main.Active = true
Instance.new("UICorner", main); local ledStroke = Instance.new("UIStroke", main); ledStroke.Thickness = 3
makeDraggable(main) -- Ativando arraste na janela principal
-- [RESTANTE DO CÓDIGO (BOTÕES E FUNCIONALIDADES)]
local minimizeBtn = Instance.new("TextButton", main)
minimizeBtn.Size = UDim2.new(0, 45, 0, 45); minimizeBtn.Position = UDim2.new(1, -50, 0, 5); minimizeBtn.BackgroundTransparency = 1
minimizeBtn.Text = "−"; minimizeBtn.TextColor3 = Color3.new(1,1,1); minimizeBtn.Font = "GothamBold"; minimizeBtn.TextSize = 40; minimizeBtn.ZIndex = 10
local container = Instance.new("Frame", main); container.Size = UDim2.new(1, -75, 1, 0); container.Position = UDim2.new(0, 70, 0, 0); container.BackgroundTransparency = 1
local searchPage = Instance.new("Frame", container); searchPage.Size = UDim2.new(1, 0, 1, 0); searchPage.BackgroundTransparency = 1
local benchPage = Instance.new("Frame", container); benchPage.Size = UDim2.new(1, 0, 1, 0); benchPage.BackgroundTransparency = 1; benchPage.Visible = false
local editor = Instance.new("TextBox", benchPage)
editor.Size = UDim2.new(0, 650, 0, 300); editor.Position = UDim2.new(0, 10, 0, 15); editor.BackgroundColor3 = Color3.fromRGB(15, 16, 28); editor.TextColor3 = Color3.new(1,1,1); editor.Font = "Code"; editor.TextSize = 14; editor.MultiLine = true; editor.TextXAlignment = "Left"; editor.TextYAlignment = "Top"; editor.Text = "-- Supreme Editor V2.0"; Instance.new("UICorner", editor)
local execBtn = Instance.new("TextButton", benchPage); execBtn.Size = UDim2.new(0, 150, 0, 40); execBtn.Position = UDim2.new(0, 10, 0, 325); execBtn.BackgroundColor3 = Color3.fromRGB(85, 95, 210); execBtn.TextColor3 = Color3.new(1,1,1); execBtn.Font = "GothamBold"; Instance.new("UICorner", execBtn)
local clearBtn = Instance.new("TextButton", benchPage); clearBtn.Size = UDim2.new(0, 150, 0, 40); clearBtn.Position = UDim2.new(0, 170, 0, 325); clearBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50); clearBtn.TextColor3 = Color3.new(1,1,1); clearBtn.Font = "GothamBold"; Instance.new("UICorner", clearBtn)
local scroll = Instance.new("ScrollingFrame", searchPage); scroll.Size = UDim2.new(0.98, 0, 0, 340); scroll.Position = UDim2.new(0, 0, 0, 75); scroll.BackgroundTransparency = 1; scroll.ScrollBarThickness = 3; scroll.AutomaticCanvasSize = "Y"
local grid = Instance.new("UIGridLayout", scroll); grid.CellSize = UDim2.new(0, 210, 0, 240); grid.CellPadding = UDim2.new(0, 12, 0, 15)
local searchBarFrame = Instance.new("Frame", searchPage); searchBarFrame.Size = UDim2.new(0.9, 0, 0, 45); searchBarFrame.Position = UDim2.new(0, 0, 0, 15); searchBarFrame.BackgroundColor3 = Color3.fromRGB(15, 16, 28); Instance.new("UICorner", searchBarFrame)
local searchInput = Instance.new("TextBox", searchBarFrame); searchInput.Size = UDim2.new(0.5, 0, 1, 0); searchInput.Position = UDim2.new(0.02, 0, 0, 0); searchInput.BackgroundTransparency = 1; searchInput.Text = cleanGameName; searchInput.TextColor3 = Color3.new(1,1,1); searchInput.Font = "Gotham"; searchInput.TextSize = 14; searchInput.TextXAlignment = "Left"; searchInput.ClearTextOnFocus = false
local searchBtn = Instance.new("TextButton", searchBarFrame); searchBtn.Size = UDim2.new(0, 80, 0, 35); searchBtn.Position = UDim2.new(1, -170, 0.5, -17); searchBtn.BackgroundColor3 = Color3.fromRGB(85, 95, 210); searchBtn.TextColor3 = Color3.new(1,1,1); searchBtn.Font = "GothamBold"; Instance.new("UICorner", searchBtn)
local refreshBtn = Instance.new("TextButton", searchBarFrame); refreshBtn.Size = UDim2.new(0, 80, 0, 35); refreshBtn.Position = UDim2.new(1, -85, 0.5, -17); refreshBtn.BackgroundColor3 = Color3.fromRGB(50, 150, 100); refreshBtn.TextColor3 = Color3.new(1,1,1); refreshBtn.Font = "GothamBold"; Instance.new("UICorner", refreshBtn)
local function fetch(query)
if query == "" then return end
for _,v in pairs(scroll:GetChildren()) do if v:IsA("Frame") then v:Destroy() end end
local s, res = pcall(function() return game:HttpGet("https://scriptblox.com/api/script/search?q="..httpService:UrlEncode(query).."&max=30") end)
if s then
local d = httpService:JSONDecode(res)
if d.result and d.result.scripts then
for _, sc in pairs(d.result.scripts) do
local card = Instance.new("Frame", scroll); card.BackgroundColor3 = Color3.fromRGB(35, 38, 60); Instance.new("UICorner", card)
local gameImg = Instance.new("ImageLabel", card)
gameImg.Size = UDim2.new(1, -20, 0, 90); gameImg.Position = UDim2.new(0, 10, 0, 10); gameImg.BackgroundColor3 = Color3.fromRGB(15, 15, 20); Instance.new("UICorner", gameImg)
gameImg.Image = "https://www.roblox.com/asset-thumbnail/image?assetId="..(sc.game and sc.game.gameId or 0).."&width=420&height=420&format=png"
local title = Instance.new("TextLabel", card); title.Size = UDim2.new(1, -20, 0, 30); title.Position = UDim2.new(0, 10, 0, 105); title.Text = sc.title; title.TextColor3 = Color3.new(1,1,1); title.Font = "GothamBold"; title.TextSize = 11; title.TextWrapped = true; title.BackgroundTransparency = 1
local infoTxt = Instance.new("TextLabel", card)
infoTxt.Size = UDim2.new(1, -20, 0, 40); infoTxt.Position = UDim2.new(0, 10, 0, 135); infoTxt.BackgroundTransparency = 1; infoTxt.Font = "Gotham"; infoTxt.TextSize = 10; infoTxt.TextWrapped = true
local hasKey = sc.key and "Sim/Yes" or "Não/No"
local isUni = sc.isUniversal and "Sim/Yes" or "Não/No"
infoTxt.Text = "🔑 Key: " .. hasKey .. "\n🌎 Universal: " .. isUni .. "\n⚡ Status: " .. (sc.isPatched and "Patched" or "Working")
infoTxt.TextColor3 = sc.isPatched and Color3.new(1,0.4,0.4) or Color3.new(0.6,1,0.6)
local bExec = Instance.new("TextButton", card); bExec.Size = UDim2.new(0.9, 0, 0, 25); bExec.Position = UDim2.new(0.05, 0, 1, -30); bExec.BackgroundColor3 = Color3.fromRGB(85, 95, 210); bExec.Text = "Execute"; bExec.TextColor3 = Color3.new(1,1,1); bExec.Font = "GothamBold"; Instance.new("UICorner", bExec)
bExec.MouseButton1Click:Connect(function() pcall(loadstring(sc.script)) end)
end
end
end
end
minimizeBtn.MouseButton1Click:Connect(function() main.Visible = false; miniBar.Visible = true end)
maximizeBtn.MouseButton1Click:Connect(function() miniBar.Visible = false; main.Visible = true end)
searchBtn.MouseButton1Click:Connect(function() fetch(searchInput.Text) end)
refreshBtn.MouseButton1Click:Connect(function() fetch(searchInput.Text) end)
execBtn.MouseButton1Click:Connect(function() pcall(loadstring(editor.Text)) end)
clearBtn.MouseButton1Click:Connect(function() editor.Text = "" end)
local sidebar = Instance.new("Frame", main); sidebar.Size = UDim2.new(0, 60, 1, 0); sidebar.BackgroundColor3 = Color3.fromRGB(15, 16, 28); Instance.new("UICorner", sidebar)
local function addSBtn(ic, f)
local b = Instance.new("TextButton", sidebar); b.Size = UDim2.new(0, 45, 0, 45); b.Text = ic; b.BackgroundColor3 = Color3.fromRGB(25, 27, 45); b.TextColor3 = Color3.new(1,1,1); b.Font = "GothamBold"; b.TextSize = 22; Instance.new("UICorner", b); b.MouseButton1Click:Connect(f)
end
Instance.new("UIListLayout", sidebar).HorizontalAlignment = "Center"; sidebar.UIListLayout.Padding = UDim.new(0, 20)
addSBtn("🔍", function() benchPage.Visible = false; searchPage.Visible = true end)
addSBtn("🛠️", function() searchPage.Visible = false; benchPage.Visible = true end)
local loader = Instance.new("Frame", sg); loader.Size = UDim2.new(0, 400, 0, 280); loader.Position = UDim2.new(0.5, -200, 0.5, -140); loader.BackgroundColor3 = Color3.fromRGB(20, 22, 35); Instance.new("UICorner", loader)
local playerImg = Instance.new("ImageLabel", loader); playerImg.Size = UDim2.new(0, 80, 0, 80); playerImg.Position = UDim2.new(0.5, -40, 0.1, 0); playerImg.Image = "https://www.roblox.com/headshot-thumbnail/image?userId="..player.UserId.."&width=420&height=420&format=png"; Instance.new("UICorner", playerImg).CornerRadius = UDim.new(1, 0)
local congratsTxt = Instance.new("TextLabel", loader); congratsTxt.Size = UDim2.new(1, 0, 0, 30); congratsTxt.Position = UDim2.new(0, 0, 0.42, 0); congratsTxt.BackgroundTransparency = 1; congratsTxt.TextColor3 = Color3.new(1,1,1); congratsTxt.Font = "GothamBold"; congratsTxt.TextSize = 16; congratsTxt.Text = "Welcome, " .. player.DisplayName
local barBg = Instance.new("Frame", loader); barBg.Size = UDim2.new(0.8, 0, 0, 10); barBg.Position = UDim2.new(0.1, 0, 0.55, 0); barBg.BackgroundColor3 = Color3.fromRGB(40, 40, 60)
local barFill = Instance.new("Frame", barBg); barFill.Size = UDim2.new(0,0,1,0); barFill.BackgroundColor3 = Color3.fromRGB(85, 95, 210)
local langFrame = Instance.new("Frame", loader); langFrame.Size = UDim2.new(1, 0, 0, 100); langFrame.Position = UDim2.new(0, 0, 0.65, 0); langFrame.BackgroundTransparency = 1; langFrame.Visible = false
Instance.new("UIListLayout", langFrame).FillDirection = "Horizontal"; langFrame.UIListLayout.HorizontalAlignment = "Center"; langFrame.UIListLayout.Padding = UDim.new(0, 10)
local function startHub(lang)
currentLang = lang
local t = translations[lang]
searchBtn.Text = t.search; refreshBtn.Text = t.refresh; execBtn.Text = t.execute; clearBtn.Text = t.clear
congratsTxt.Text = t.congrats .. ", " .. player.DisplayName
task.wait(0.5); loader:Destroy(); main.Visible = true
task.spawn(function() while task.wait() do
ledStroke.Color = Color3.fromHSV(tick() % 5 / 5, 1, 1)
miniStroke.Color = Color3.fromHSV(tick() % 5 / 5, 1, 1)
end end)
fetch(cleanGameName)
end
local function addLang(flag, langCode)
local b = Instance.new("TextButton", langFrame); b.Size = UDim2.new(0, 60, 0, 40); b.BackgroundColor3 = Color3.fromRGB(35, 38, 60); b.Text = flag; b.TextSize = 25; Instance.new("UICorner", b)
b.MouseButton1Click:Connect(function() startHub(langCode) end)
end
addLang("🇧🇷", "PT"); addLang("🇺🇸", "EN"); addLang("🇪🇸", "ES")
task.spawn(function()
for i = 0, 1, 0.05 do barFill.Size = UDim2.new(i, 0, 1, 0); task.wait(0.05) end
barBg.Visible = false; langFrame.Visible = true
end)



love!! one of the cleanest ones i have came acrossed awesome job!!
@RobinsonF I just updated the script, could you take a look at the result?
you able to make the icon draggable! some games it lands on the game icons like store and i cant click on it
@RobinsonF Okay, I can fix that.
@RobinsonF Regarding your suggestion: It's resolved! I just updated the script and now the 'H' (Minimize) button is fully draggable. You can move it anywhere on the screen so it no longer interferes with the other buttons. Thks
Good