
KeylessUniversal

local UserInputService = game:GetService("UserInputService")
local HttpService = game:GetService("HttpService")
local CoreGui = game:GetService("CoreGui")
local StarterGui = game:GetService("StarterGui")
local requestFunc = http_request or request or (syn and syn.request) or (fluxus and fluxus.request)
if not requestFunc then
game.StarterGui:SetCore("SendNotification",{ Title="Error", Text="Executor does not support HTTP.", Duration=5 })
return
end
if CoreGui:FindFirstChild("ScriptBloxHub") then CoreGui.ScriptBloxHub:Destroy() end
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "ScriptBloxHub"
ScreenGui.Parent = CoreGui
ScreenGui.ResetOnSpawn = false
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0,520,0,380)
MainFrame.Position = UDim2.new(0.5,-260,0.5,-190)
MainFrame.BackgroundColor3 = Color3.fromRGB(28,28,28)
MainFrame.BorderSizePixel = 0
MainFrame.Parent = ScreenGui
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0,10)
local TopBar = Instance.new("Frame")
TopBar.Size = UDim2.new(1,0,0,36)
TopBar.BackgroundColor3 = Color3.fromRGB(40,40,40)
TopBar.BorderSizePixel = 0
TopBar.Parent = MainFrame
Instance.new("UICorner", TopBar).CornerRadius = UDim.new(0,10)
local Title = Instance.new("TextLabel")
Title.Text = "ScriptBlox Hub"
Title.Size = UDim2.new(1,-60,1,0)
Title.Position = UDim2.new(0,10,0,0)
Title.BackgroundTransparency = 1
Title.TextColor3 = Color3.new(1,1,1)
Title.FontFace = Font.new("rbxassetid://12187375716")
Title.TextSize = 15
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = TopBar
local CloseButton = Instance.new("TextButton")
CloseButton.Text = "X"
CloseButton.Size = UDim2.new(0,36,1,0)
CloseButton.Position = UDim2.new(1,-36,0,0)
CloseButton.BackgroundColor3 = Color3.fromRGB(200,50,50)
CloseButton.TextColor3 = Color3.new(1,1,1)
CloseButton.FontFace = Font.new("rbxassetid://12187375716")
CloseButton.TextSize = 20
CloseButton.Parent = TopBar
Instance.new("UICorner", CloseButton).CornerRadius = UDim.new(0,6)
local dragging, dragInput, dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
TopBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end)
end
end)
TopBar.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 input == dragInput and dragging then update(input) end
end)
CloseButton.MouseButton1Click:Connect(function() ScreenGui:Destroy() end)
local SearchBox = Instance.new("TextBox")
SearchBox.PlaceholderText = "Search scripts (ex: blox fruits)"
SearchBox.Size = UDim2.new(1,-80,0,36)
SearchBox.Position = UDim2.new(0,10,0,50)
SearchBox.BackgroundColor3 = Color3.fromRGB(45,45,45)
SearchBox.TextColor3 = Color3.new(1,1,1)
SearchBox.FontFace = Font.new("rbxassetid://12187375716")
SearchBox.TextSize = 14
SearchBox.Parent = MainFrame
Instance.new("UICorner", SearchBox)
local SearchBtn = Instance.new("TextButton")
SearchBtn.Text = "Search"
SearchBtn.Size = UDim2.new(0,60,0,36)
SearchBtn.Position = UDim2.new(1,-70,0,50)
SearchBtn.BackgroundColor3 = Color3.fromRGB(0,170,255)
SearchBtn.TextColor3 = Color3.new(1,1,1)
SearchBtn.FontFace = Font.new("rbxassetid://12187375716")
SearchBtn.TextSize = 14
SearchBtn.Parent = MainFrame
Instance.new("UICorner", SearchBtn)
local ScrollFrame = Instance.new("ScrollingFrame")
ScrollFrame.Size = UDim2.new(1,-20,1,-110)
ScrollFrame.Position = UDim2.new(0,10,0,95)
ScrollFrame.BackgroundColor3 = Color3.fromRGB(25,25,25)
ScrollFrame.ScrollBarThickness = 4
ScrollFrame.BorderSizePixel = 0
ScrollFrame.Parent = MainFrame
local Layout = Instance.new("UIListLayout")
Layout.Padding = UDim.new(0,6)
Layout.Parent = ScrollFrame
local function CreateBadge(parent,text,color)
local Badge = Instance.new("TextLabel")
Badge.Text = text
Badge.BackgroundColor3 = color
Badge.TextColor3 = Color3.new(1,1,1)
Badge.FontFace = Font.new("rbxassetid://12187375716")
Badge.TextSize = 10
Badge.Size = UDim2.new(0,0,0,18)
Badge.AutomaticSize = Enum.AutomaticSize.X
Badge.Parent = parent
local pad = Instance.new("UIPadding")
pad.PaddingLeft = UDim.new(0,6)
pad.PaddingRight = UDim.new(0,6)
pad.Parent = Badge
Instance.new("UICorner", Badge).CornerRadius = UDim.new(0,6)
end
function SearchScripts(query)
for _,v in pairs(ScrollFrame:GetChildren()) do if not v:IsA("UIListLayout") then v:Destroy() end end
if query == "" then return end
local url = "https://scriptblox.com/api/script/search?q=" .. HttpService:UrlEncode(query) .. "&mode=free&page=1"
local success,response = pcall(function() return requestFunc({Url=url,Method="GET"}) end)
if success and response.StatusCode == 200 then
local data = HttpService:JSONDecode(response.Body)
local scripts = data.result.scripts
for _,scriptData in pairs(scripts) do
local Card = Instance.new("Frame")
Card.Size = UDim2.new(1,-10,0,120)
Card.BackgroundColor3 = Color3.fromRGB(45,45,45)
Card.Parent = ScrollFrame
Instance.new("UICorner", Card)
local GameName = Instance.new("TextLabel")
GameName.Text = "Game: " .. (scriptData.game.name or "Unknown")
GameName.Size = UDim2.new(1,-10,0,20)
GameName.Position = UDim2.new(0,10,0,5)
GameName.BackgroundTransparency = 1
GameName.TextColor3 = Color3.fromRGB(120,255,120)
GameName.FontFace = Font.new("rbxassetid://12187375716")
GameName.TextSize = 12
GameName.TextXAlignment = Enum.TextXAlignment.Left
GameName.Parent = Card
local ScriptTitle = Instance.new("TextLabel")
ScriptTitle.Text = scriptData.title
ScriptTitle.Size = UDim2.new(1,-230,0,20)
ScriptTitle.Position = UDim2.new(0,10,0,28)
ScriptTitle.BackgroundTransparency = 1
ScriptTitle.TextColor3 = Color3.new(1,1,1)
ScriptTitle.FontFace = Font.new("rbxassetid://12187375716")
ScriptTitle.TextSize = 13
ScriptTitle.TextXAlignment = Enum.TextXAlignment.Left
ScriptTitle.TextTruncate = Enum.TextTruncate.AtEnd
ScriptTitle.Parent = Card
local TagFrame = Instance.new("Frame")
TagFrame.BackgroundTransparency = 1
TagFrame.Size = UDim2.new(1,-120,0,20)
TagFrame.Position = UDim2.new(0,10,0,50)
TagFrame.Parent = Card
local TagLayout = Instance.new("UIListLayout")
TagLayout.FillDirection = Enum.FillDirection.Horizontal
TagLayout.Padding = UDim.new(0,5)
TagLayout.Parent = TagFrame
if scriptData.verified then CreateBadge(TagFrame,"Verified",Color3.fromRGB(0,200,120)) end
if scriptData.isUniversal then CreateBadge(TagFrame,"Universal",Color3.fromRGB(80,150,255)) end
if scriptData.isPatched then CreateBadge(TagFrame,"Patched",Color3.fromRGB(255,80,80)) end
if scriptData.key then
CreateBadge(TagFrame,"Key",Color3.fromRGB(255,170,0))
else
CreateBadge(TagFrame,"Keyless",Color3.fromRGB(120,255,120))
end
if scriptData.scriptType == "paid" then
CreateBadge(TagFrame,"Paid",Color3.fromRGB(255,120,120))
else
CreateBadge(TagFrame,"Free",Color3.fromRGB(120,255,120))
end
local Views = Instance.new("TextLabel")
Views.Text = "Views: " .. tostring(scriptData.views)
Views.Size = UDim2.new(0,110,0,20)
Views.Position = UDim2.new(0,10,0,72)
Views.BackgroundTransparency = 1
Views.TextColor3 = Color3.fromRGB(180,180,180)
Views.FontFace = Font.new("rbxassetid://12187375716")
Views.TextSize = 11
Views.TextXAlignment = Enum.TextXAlignment.Left
Views.Parent = Card
local Likes = Instance.new("TextLabel")
Likes.Text = "Likes: " .. tostring(scriptData.likeCount or 0)
Likes.Size = UDim2.new(0,90,0,20)
Likes.Position = UDim2.new(0,130,0,72)
Likes.BackgroundTransparency = 1
Likes.TextColor3 = Color3.fromRGB(180,180,180)
Likes.FontFace = Font.new("rbxassetid://12187375716")
Likes.TextSize = 11
Likes.TextXAlignment = Enum.TextXAlignment.Left
Likes.Parent = Card
local Uploaded = Instance.new("TextLabel")
Uploaded.Text = "Uploaded: " .. (scriptData.createdAt or "Unknown"):sub(1,10)
Uploaded.Size = UDim2.new(0,140,0,20)
Uploaded.Position = UDim2.new(0,230,0,72)
Uploaded.BackgroundTransparency = 1
Uploaded.TextColor3 = Color3.fromRGB(180,180,180)
Uploaded.FontFace = Font.new("rbxassetid://12187375716")
Uploaded.TextSize = 11
Uploaded.TextXAlignment = Enum.TextXAlignment.Left
Uploaded.Parent = Card
local CopyLinkBtn = Instance.new("TextButton")
CopyLinkBtn.Text = "Copy Link"
CopyLinkBtn.Size = UDim2.new(0,70,0,26)
CopyLinkBtn.Position = UDim2.new(1,-210,0.5,-13)
CopyLinkBtn.BackgroundColor3 = Color3.fromRGB(0,120,255)
CopyLinkBtn.TextColor3 = Color3.new(1,1,1)
CopyLinkBtn.FontFace = Font.new("rbxassetid://12187375716")
CopyLinkBtn.TextSize = 12
CopyLinkBtn.Parent = Card
Instance.new("UICorner", CopyLinkBtn)
local ExecuteBtn = Instance.new("TextButton")
ExecuteBtn.Text = "Execute"
ExecuteBtn.Size = UDim2.new(0,60,0,26)
ExecuteBtn.Position = UDim2.new(1,-130,0.5,-13)
ExecuteBtn.BackgroundColor3 = Color3.fromRGB(0,170,80)
ExecuteBtn.TextColor3 = Color3.new(1,1,1)
ExecuteBtn.FontFace = Font.new("rbxassetid://12187375716")
ExecuteBtn.TextSize = 12
ExecuteBtn.Parent = Card
Instance.new("UICorner", ExecuteBtn)
local CopyBtn = Instance.new("TextButton")
CopyBtn.Text = "Copy"
CopyBtn.Size = UDim2.new(0,60,0,26)
CopyBtn.Position = UDim2.new(1,-60,0.5,-13)
CopyBtn.BackgroundColor3 = Color3.fromRGB(60,60,60)
CopyBtn.TextColor3 = Color3.new(1,1,1)
CopyBtn.FontFace = Font.new("rbxassetid://12187375716")
CopyBtn.TextSize = 12
CopyBtn.Parent = Card
Instance.new("UICorner", CopyBtn)
-- Copy Link button
CopyLinkBtn.MouseButton1Click:Connect(function()
local slug = scriptData.slug
if slug then
local link = "https://scriptblox.com/script/" .. slug
setclipboard(link)
StarterGui:SetCore("SendNotification",{
Title = "ScriptBlox Hub",
Text = "✅ Script page link copied!",
Duration = 3
})
else
StarterGui:SetCore("SendNotification",{
Title = "ScriptBlox Hub",
Text = "No link available",
Duration = 3
})
end
end)
-- Execute
ExecuteBtn.MouseButton1Click:Connect(function()
local scriptContent = scriptData.script
if scriptContent and scriptContent ~= "" then
ExecuteBtn.Text = "Executing..."
ExecuteBtn.BackgroundColor3 = Color3.fromRGB(100,100,100)
local success, err = pcall(function() loadstring(scriptContent)() end)
if success then
StarterGui:SetCore("SendNotification", {Title="ScriptBlox Hub", Text="✅ Script executed!", Duration=3})
ExecuteBtn.Text = "Executed!"
task.wait(1.5)
ExecuteBtn.Text = "Execute"
ExecuteBtn.BackgroundColor3 = Color3.fromRGB(0,170,80)
else
StarterGui:SetCore("SendNotification", {Title="ScriptBlox Hub", Text="❌ Error: " .. tostring(err), Duration=5})
ExecuteBtn.Text = "Error!"
task.wait(2)
ExecuteBtn.Text = "Execute"
ExecuteBtn.BackgroundColor3 = Color3.fromRGB(0,170,80)
end
else
ExecuteBtn.Text = "No script!"
task.wait(2)
ExecuteBtn.Text = "Execute"
end
end)
-- Copy script
CopyBtn.MouseButton1Click:Connect(function()
local scriptContent = scriptData.script
if scriptContent then
setclipboard(scriptContent)
CopyBtn.Text = "Copied!"
task.wait(1)
CopyBtn.Text = "Copy"
else
CopyBtn.Text = "Unavailable"
end
end)
end
ScrollFrame.CanvasSize = UDim2.new(0,0,0,Layout.AbsoluteContentSize.Y + 10)
end
end
SearchBtn.MouseButton1Click:Connect(function() SearchScripts(SearchBox.Text) end)
SearchBox.FocusLost:Connect(function(enterPressed)
if enterPressed then SearchScripts(SearchBox.Text) end
end)



original UI:https://scriptblox.com/script/Universal-Script-Script-searcher-80376
please contact me through discord if found any bug
The good old days of script searchers