script searcher open source
Key RequiredUniversal

script searcher open source

Universal ScriptRam_Ram_ 1K views 637 executesUpdated Mar 13, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•328 lines (14327 chars)
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)

Features & Information

script search, open source By Ram_
#script searcher#scriptblox#universal

Community Comments (3)

Ram_Ram_Mar 13, 2026

original UI:https://scriptblox.com/script/Universal-Script-Script-searcher-80376

Ram_Ram_Mar 13, 2026

please contact me through discord if found any bug

32tq32tqMar 13, 2026

The good old days of script searchers

More Scripts for Universal Scripts