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)