
KeylessUniversal

-- Minimal ScriptBlox Search UI
-- filepath: SimpleScriptSearch.lua
local UIS = game:GetService("UserInputService")
local HttpService = game:GetService("HttpService")
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
-- Charger Neon (glow/blur Sirius)
local function requireFromUrl(url)
local s, r = pcall(function()
return loadstring(game:HttpGet(url))()
end)
if s then return r end
end
local Neon = requireFromUrl("https://raw.githubusercontent.com/shlexware/Sirius/request/library/neon.lua")
-- THEMES
local Themes = {
["Sombre"] = {
Background = Color3.fromRGB(18, 18, 28),
Card = Color3.fromRGB(24, 26, 38),
Stroke = Color3.fromRGB(80, 120, 255),
Text = Color3.fromRGB(230, 230, 255),
Accent = Color3.fromRGB(80, 120, 255),
RunBtn = Color3.fromRGB(60, 200, 120),
RunBtnHover = Color3.fromRGB(80, 255, 140),
LinkBtn = Color3.fromRGB(24, 26, 38),
LinkBtnHover = Color3.fromRGB(80, 120, 255),
},
["Clair"] = {
Background = Color3.fromRGB(240, 240, 255),
Card = Color3.fromRGB(220, 225, 255),
Stroke = Color3.fromRGB(120, 160, 255),
Text = Color3.fromRGB(40, 40, 60),
Accent = Color3.fromRGB(120, 160, 255),
RunBtn = Color3.fromRGB(60, 200, 120),
RunBtnHover = Color3.fromRGB(80, 255, 140),
LinkBtn = Color3.fromRGB(220, 225, 255),
LinkBtnHover = Color3.fromRGB(120, 160, 255),
},
["Colore"] = { -- Corrigé: plus d'accent
Background = Color3.fromRGB(60, 40, 90),
Card = Color3.fromRGB(80, 60, 120),
Stroke = Color3.fromRGB(140, 100, 255),
Text = Color3.fromRGB(220, 200, 255),
Accent = Color3.fromRGB(140, 100, 255),
RunBtn = Color3.fromRGB(120, 60, 255),
RunBtnHover = Color3.fromRGB(180, 120, 255),
LinkBtn = Color3.fromRGB(80, 60, 120),
LinkBtnHover = Color3.fromRGB(140, 100, 255),
}
}
local CurrentTheme = Themes["Sombre"]
-- UI Setup (modern, 2 columns)
local gui = Instance.new("ScreenGui")
gui.Name = "SribloxSearchUI"
gui.Parent = game:GetService("CoreGui")
-- Notification au chargement
pcall(function()
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "Sriblox chargé !",
Text = "Appuie sur F6 pour ouvrir la recherche ScriptBlox.",
Duration = 8
})
end)
local searchBarFrame = Instance.new("Frame")
searchBarFrame.Size = UDim2.new(0, 520, 0, 38)
searchBarFrame.Position = UDim2.new(0.5, -260, 0.10, 0)
searchBarFrame.BackgroundColor3 = CurrentTheme.Background
searchBarFrame.BackgroundTransparency = 0
searchBarFrame.BorderSizePixel = 0
searchBarFrame.Visible = false
searchBarFrame.Parent = gui
local searchBarCorner = Instance.new("UICorner", searchBarFrame)
searchBarCorner.CornerRadius = UDim.new(0, 12)
local searchBarStroke = Instance.new("UIStroke", searchBarFrame)
searchBarStroke.Color = CurrentTheme.Stroke
searchBarStroke.Thickness = 2
searchBarStroke.Transparency = 0.18
local searchIcon = Instance.new("ImageLabel")
searchIcon.Size = UDim2.new(0, 24, 0, 24)
searchIcon.Position = UDim2.new(0, 10, 0.5, -12)
searchIcon.BackgroundTransparency = 1
searchIcon.Image = "rbxassetid://7733960981"
searchIcon.ImageColor3 = CurrentTheme.Accent
searchIcon.Parent = searchBarFrame
local searchBox = Instance.new("TextBox")
searchBox.Size = UDim2.new(1, -90, 1, -12)
searchBox.Position = UDim2.new(0, 40, 0, 6)
searchBox.BackgroundColor3 = CurrentTheme.Background
searchBox.TextColor3 = CurrentTheme.Text
searchBox.PlaceholderText = "Rechercher sur ScriptBlox.com"
searchBox.Text = ""
searchBox.Font = Enum.Font.GothamSemibold
searchBox.TextSize = 17
searchBox.ClearTextOnFocus = false
searchBox.BorderSizePixel = 0
searchBox.Parent = searchBarFrame
local searchBoxCorner = Instance.new("UICorner", searchBox)
searchBoxCorner.CornerRadius = UDim.new(0, 8)
-- Paramètres bouton
local settingsBtn = Instance.new("TextButton")
settingsBtn.Size = UDim2.new(0, 32, 0, 32)
settingsBtn.Position = UDim2.new(1, -38, 0.5, -16)
settingsBtn.BackgroundColor3 = CurrentTheme.LinkBtn
settingsBtn.Text = "⚙️"
settingsBtn.TextColor3 = CurrentTheme.Accent
settingsBtn.Font = Enum.Font.GothamBold
settingsBtn.TextSize = 18
settingsBtn.AutoButtonColor = true
settingsBtn.Parent = searchBarFrame
local settingsCorner = Instance.new("UICorner", settingsBtn)
settingsCorner.CornerRadius = UDim.new(0, 8)
-- Menu paramètres (popup)
local settingsMenu = Instance.new("Frame")
settingsMenu.Size = UDim2.new(0, 180, 0, 0) -- Hauteur auto
settingsMenu.Position = UDim2.new(1, -180, 1, 8)
settingsMenu.BackgroundColor3 = CurrentTheme.Card
settingsMenu.Visible = false
settingsMenu.Parent = searchBarFrame
local settingsMenuCorner = Instance.new("UICorner", settingsMenu)
settingsMenuCorner.CornerRadius = UDim.new(0, 10)
local settingsMenuStroke = Instance.new("UIStroke", settingsMenu)
settingsMenuStroke.Color = CurrentTheme.Stroke
settingsMenuStroke.Thickness = 1.2
settingsMenuStroke.Transparency = 0.25
-- Ajout d'un UIListLayout pour placer les boutons automatiquement
local themeListLayout = Instance.new("UIListLayout", settingsMenu)
themeListLayout.SortOrder = Enum.SortOrder.LayoutOrder
themeListLayout.Padding = UDim.new(0, 6)
themeListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
-- Adapter dynamiquement la hauteur du menu aux enfants
settingsMenu.AutomaticSize = Enum.AutomaticSize.Y
settingsMenu.ClipsDescendants = false
local themeLabel = Instance.new("TextLabel")
themeLabel.Size = UDim2.new(1, 0, 0, 24)
themeLabel.Position = UDim2.new(0, 0, 0, 6)
themeLabel.BackgroundTransparency = 1
themeLabel.Text = "Thème :"
themeLabel.TextColor3 = CurrentTheme.Text
themeLabel.Font = Enum.Font.GothamBold
themeLabel.TextSize = 15
themeLabel.Parent = settingsMenu
local function createThemeBtn(txt, theme)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -32, 0, 28) -- marge augmentée, hauteur +2px
btn.BackgroundColor3 = theme.Card
btn.Text = txt
btn.TextColor3 = theme.Text
btn.Font = Enum.Font.Gotham
btn.TextSize = 15
btn.AutoButtonColor = true
btn.Parent = settingsMenu
local btnCorner = Instance.new("UICorner", btn)
btnCorner.CornerRadius = UDim.new(0, 8)
btn.LayoutOrder = 10
btn.MouseButton1Click:Connect(function()
CurrentTheme = theme
-- reload theme
searchBarFrame.BackgroundColor3 = theme.Background
searchBarStroke.Color = theme.Stroke
searchBox.BackgroundColor3 = theme.Background
searchBox.TextColor3 = theme.Text
searchIcon.ImageColor3 = theme.Accent
settingsBtn.BackgroundColor3 = theme.LinkBtn
settingsBtn.TextColor3 = theme.Accent
settingsMenu.BackgroundColor3 = theme.Card
settingsMenuStroke.Color = theme.Stroke
themeLabel.TextColor3 = theme.Text
for _, c in ipairs(resultsFrame:GetChildren()) do
if c:IsA("Frame") then
c.BackgroundColor3 = theme.Card
local s = c:FindFirstChildOfClass("UIStroke")
if s then s.Color = theme.Stroke end
end
end
end)
end
createThemeBtn("Sombre", Themes.Sombre)
createThemeBtn("Clair", Themes.Clair)
createThemeBtn("Coloré", Themes.Colore)
settingsBtn.MouseButton1Click:Connect(function()
settingsMenu.Visible = not settingsMenu.Visible
end)
-- Results list (2 columns, plus grand)
local resultsFrame = Instance.new("ScrollingFrame")
resultsFrame.Size = UDim2.new(0, 540, 0, 560)
resultsFrame.Position = UDim2.new(0.5, -270, 0.10, 48)
resultsFrame.BackgroundColor3 = CurrentTheme.Background
resultsFrame.BackgroundTransparency = 0
resultsFrame.BorderSizePixel = 0
resultsFrame.Visible = false
resultsFrame.Parent = gui
resultsFrame.CanvasSize = UDim2.new(0,0,0,0)
resultsFrame.ScrollBarThickness = 7
local resultsCorner = Instance.new("UICorner", resultsFrame)
resultsCorner.CornerRadius = UDim.new(0, 12)
local resultsStroke = Instance.new("UIStroke", resultsFrame)
resultsStroke.Color = CurrentTheme.Stroke
resultsStroke.Thickness = 1.5
resultsStroke.Transparency = 0.22
-- 2 colonnes layout
local UIGrid = Instance.new("UIGridLayout", resultsFrame)
UIGrid.CellSize = UDim2.new(0, 250, 0, 110)
UIGrid.CellPadding = UDim2.new(0, 16, 0, 16)
UIGrid.SortOrder = Enum.SortOrder.LayoutOrder
UIGrid.FillDirectionMaxCells = 2
UIGrid.FillDirection = Enum.FillDirection.Horizontal
UIGrid.HorizontalAlignment = Enum.HorizontalAlignment.Center
UIGrid.VerticalAlignment = Enum.VerticalAlignment.Top
-- Helper: format numbers (e.g. 1200 -> 1.2K)
local function formatNumber(n)
if not n then return "0" end
if n >= 1e6 then return string.format("%.1fM", n/1e6) end
if n >= 1e3 then return string.format("%.1fK", n/1e3) end
return tostring(n)
end
-- Helper: format date
local function formatDate(str)
if not str then return "" end
local y, m, d = str:match("(%d+)%-(%d+)%-(%d+)")
if y and m and d then return d.."/"..m.."/"..y end
return str
end
-- Loader animé pendant la recherche
local loader = Instance.new("TextLabel")
loader.Size = UDim2.new(0, 120, 0, 32)
loader.Position = UDim2.new(0.5, -60, 0.18, 60)
loader.BackgroundTransparency = 1
loader.Text = "Chargement..."
loader.TextColor3 = Color3.fromRGB(60, 120, 255)
loader.Font = Enum.Font.GothamBold
loader.TextSize = 18
loader.Visible = false
loader.Parent = gui
-- Message Aucun résultat
local noResult = Instance.new("TextLabel")
noResult.Size = UDim2.new(0, 320, 0, 32)
noResult.Position = UDim2.new(0.5, -160, 0.18, 60)
noResult.BackgroundTransparency = 1
noResult.Text = "Aucun résultat."
noResult.TextColor3 = Color3.fromRGB(180, 180, 180)
noResult.Font = Enum.Font.GothamBold
noResult.TextSize = 18
noResult.Visible = false
noResult.Parent = gui
-- Show/hide UI with F6
UIS.InputBegan:Connect(function(input, processed)
if processed then return end
if input.KeyCode == Enum.KeyCode.F6 then
searchBarFrame.Visible = not searchBarFrame.Visible
resultsFrame.Visible = false
if searchBarFrame.Visible then
TweenService:Create(searchBarFrame, TweenInfo.new(0.35, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.15}):Play()
searchBox:CaptureFocus()
else
TweenService:Create(searchBarFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
TweenService:Create(resultsFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
end
end
end)
-- Sirius-style search bar color feedback
searchBox:GetPropertyChangedSignal("Text"):Connect(function()
if #searchBox.Text > 0 then
TweenService:Create(searchIcon, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(80, 120, 255)}):Play()
TweenService:Create(searchBarStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Color = Color3.fromRGB(80, 120, 255)}):Play()
TweenService:Create(searchBox, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextColor3 = Color3.fromRGB(230, 230, 255)}):Play()
else
TweenService:Create(searchIcon, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(120, 140, 255)}):Play()
TweenService:Create(searchBarStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Color = Color3.fromRGB(80, 120, 255)}):Play()
TweenService:Create(searchBox, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextColor3 = Color3.fromRGB(230, 230, 255)}):Play()
end
end)
-- Helper: create a modern script card (2 columns, new style)
local function createScriptCard(script)
local card = Instance.new("Frame")
card.Size = UDim2.new(0, 240, 0, 100)
card.BackgroundColor3 = CurrentTheme.Card
card.BackgroundTransparency = 0
card.BorderSizePixel = 0
card.Parent = resultsFrame
local cardCorner = Instance.new("UICorner", card)
cardCorner.CornerRadius = UDim.new(0, 10)
local cardStroke = Instance.new("UIStroke", card)
cardStroke.Color = CurrentTheme.Stroke
cardStroke.Thickness = 1.2
cardStroke.Transparency = 0.18
-- Title
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -16, 0, 22)
title.Position = UDim2.new(0, 8, 0, 6)
title.BackgroundTransparency = 1
title.Text = script.title or "Unknown Title"
title.TextColor3 = CurrentTheme.Accent
title.Font = Enum.Font.GothamBold
title.TextSize = 16
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = card
-- Tags container
local tags = Instance.new("Frame")
tags.Size = UDim2.new(1, -16, 0, 16)
tags.Position = UDim2.new(0, 8, 0, 28)
tags.BackgroundTransparency = 1
tags.Parent = card
local tagsLayout = Instance.new("UIListLayout", tags)
tagsLayout.FillDirection = Enum.FillDirection.Horizontal
tagsLayout.Padding = UDim.new(0, 4)
tagsLayout.SortOrder = Enum.SortOrder.LayoutOrder
local function addTag(text, color)
local tag = Instance.new("TextLabel")
tag.Size = UDim2.new(0, 54, 1, 0)
tag.BackgroundColor3 = color
tag.BackgroundTransparency = 0.08
tag.Text = text
tag.TextColor3 = Color3.fromRGB(255,255,255)
tag.Font = Enum.Font.GothamBold
tag.TextSize = 12
tag.Parent = tags
tag.TextXAlignment = Enum.TextXAlignment.Center
tag.TextYAlignment = Enum.TextYAlignment.Center
local tagCorner = Instance.new("UICorner", tag)
tagCorner.CornerRadius = UDim.new(0, 6)
return tag
end
if script.tags then
for _, tag in ipairs(script.tags) do
if tag == "REVIEW" then addTag("REVIEW", Color3.fromRGB(255, 196, 0)) end
if tag == "VERIFIED" then addTag("VERIFIED", Color3.fromRGB(60, 200, 120)) end
if tag == "CREATOR" then addTag("CREATOR", Color3.fromRGB(80, 120, 255)) end
if tag == "UNIVERSAL" then addTag("UNIVERSAL", Color3.fromRGB(120, 60, 255)) end
if tag == "KEY" then addTag("KEY", Color3.fromRGB(255, 60, 120)) end
if tag == "PATCHED" then addTag("PATCHED", Color3.fromRGB(200, 60, 60)) end
if tag == "TRENDING" then addTag("TRENDING", Color3.fromRGB(255, 120, 60)) end
end
end
-- Author
local author = Instance.new("TextLabel")
author.Size = UDim2.new(0, 120, 0, 16)
author.Position = UDim2.new(0, 8, 0, 48)
author.BackgroundTransparency = 1
author.Text = script.owner and ("by "..script.owner.username) or "by Unknown"
author.TextColor3 = CurrentTheme.Text
author.Font = Enum.Font.Gotham
author.TextSize = 12
author.TextXAlignment = Enum.TextXAlignment.Left
author.Parent = card
-- Description
local desc = Instance.new("TextLabel")
desc.Size = UDim2.new(1, -16, 0, 16)
desc.Position = UDim2.new(0, 8, 0, 66)
desc.BackgroundTransparency = 1
desc.Text = script.features or script.game and script.game.name or "No description"
desc.TextColor3 = CurrentTheme.Accent
desc.Font = Enum.Font.Gotham
desc.TextSize = 12
desc.TextXAlignment = Enum.TextXAlignment.Left
desc.TextYAlignment = Enum.TextYAlignment.Top
desc.TextWrapped = true
desc.Parent = card
-- Stats badges
local statsFrame = Instance.new("Frame")
statsFrame.Size = UDim2.new(0, 120, 0, 16)
statsFrame.Position = UDim2.new(1, -128, 0, 48)
statsFrame.BackgroundTransparency = 1
statsFrame.Parent = card
local statsLayout = Instance.new("UIListLayout", statsFrame)
statsLayout.FillDirection = Enum.FillDirection.Horizontal
statsLayout.Padding = UDim.new(0, 3)
statsLayout.SortOrder = Enum.SortOrder.LayoutOrder
local function statBadge(txt, color)
local badge = Instance.new("TextLabel")
badge.Size = UDim2.new(0, 32, 1, 0)
badge.BackgroundColor3 = color
badge.BackgroundTransparency = 0.15
badge.Text = txt
badge.TextColor3 = Color3.fromRGB(255,255,255)
badge.Font = Enum.Font.GothamBold
badge.TextSize = 11
badge.TextXAlignment = Enum.TextXAlignment.Center
badge.TextYAlignment = Enum.TextYAlignment.Center
badge.Parent = statsFrame
local badgeCorner = Instance.new("UICorner", badge)
badgeCorner.CornerRadius = UDim.new(0, 5)
end
statBadge("👁 "..formatNumber(script.views or 0), CurrentTheme.Accent)
statBadge("👍 "..formatNumber(script.likes or 0), Color3.fromRGB(60, 200, 120))
statBadge(script.type or "?", Color3.fromRGB(120, 60, 255))
-- Run button (vert Roblox)
local runBtn = Instance.new("TextButton")
runBtn.Size = UDim2.new(0, 54, 0, 28)
runBtn.Position = UDim2.new(1, -62, 1, -36)
runBtn.BackgroundColor3 = CurrentTheme.RunBtn
runBtn.Text = "▶"
runBtn.TextColor3 = Color3.fromRGB(255,255,255)
runBtn.Font = Enum.Font.GothamBold
runBtn.TextSize = 18
runBtn.AutoButtonColor = true
runBtn.Parent = card
local btnCorner = Instance.new("UICorner", runBtn)
btnCorner.CornerRadius = UDim.new(0, 8)
runBtn.MouseEnter:Connect(function()
TweenService:Create(runBtn, TweenInfo.new(0.18, Enum.EasingStyle.Quint), {BackgroundColor3 = CurrentTheme.RunBtnHover}):Play()
end)
runBtn.MouseLeave:Connect(function()
TweenService:Create(runBtn, TweenInfo.new(0.18, Enum.EasingStyle.Quint), {BackgroundColor3 = CurrentTheme.RunBtn}):Play()
end)
runBtn.MouseButton1Click:Connect(function()
runBtn.Text = "⏳"
local slug = script.slug
local codeUrl = "https://www.scriptblox.com/api/script/"..slug
local ok, codeResp = pcall(function()
return HttpService:JSONDecode(game:HttpGet(codeUrl))
end)
if ok and codeResp and codeResp.script and codeResp.script.script then
loadstring(codeResp.script.script)()
runBtn.Text = "▶"
else
runBtn.Text = "❌"
wait(1)
runBtn.Text = "▶"
end
end)
-- Lien ScriptBlox
local linkBtn = Instance.new("TextButton")
linkBtn.Size = UDim2.new(0, 24, 0, 24)
linkBtn.Position = UDim2.new(1, -32, 0, 8)
linkBtn.BackgroundColor3 = CurrentTheme.LinkBtn
linkBtn.Text = "🔗"
linkBtn.TextColor3 = CurrentTheme.Accent
linkBtn.Font = Enum.Font.GothamBold
linkBtn.TextSize = 14
linkBtn.AutoButtonColor = true
linkBtn.Parent = card
local linkCorner = Instance.new("UICorner", linkBtn)
linkCorner.CornerRadius = UDim.new(0, 6)
linkBtn.MouseEnter:Connect(function()
TweenService:Create(linkBtn, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundColor3 = CurrentTheme.LinkBtnHover}):Play()
end)
linkBtn.MouseLeave:Connect(function()
TweenService:Create(linkBtn, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundColor3 = CurrentTheme.LinkBtn}):Play()
end)
linkBtn.MouseButton1Click:Connect(function()
setclipboard("https://scriptblox.com/script/"..(script.slug or ""))
linkBtn.Text = "✔"
wait(0.7)
linkBtn.Text = "🔗"
end)
-- Apparition animée
card.BackgroundTransparency = 1
card.Visible = false
delay(0.03, function()
card.Visible = true
TweenService:Create(card, TweenInfo.new(0.18, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
end)
return card
end
-- Search on Enter (avec loader, no result, anims)
searchBox.FocusLost:Connect(function(enterPressed)
if enterPressed and #searchBox.Text > 0 then
for _, child in ipairs(resultsFrame:GetChildren()) do
if child:IsA("Frame") then child:Destroy() end
end
resultsFrame.Visible = false
noResult.Visible = false
loader.Visible = true
loader.Text = "Chargement..."
local url = "https://scriptblox.com/api/script/search?q="..HttpService:UrlEncode(searchBox.Text).."&mode=free&max=12&page=1"
local success, response = pcall(function()
return HttpService:JSONDecode(game:HttpGet(url))
end)
loader.Visible = false
if success and response and response.result and response.result.scripts then
local scripts = response.result.scripts
if #scripts == 0 then
noResult.Visible = true
resultsFrame.Visible = false
else
noResult.Visible = false
resultsFrame.Visible = true
local y = 0
for _, script in ipairs(scripts) do
local card = createScriptCard(script)
card.LayoutOrder = y
y = y + 1
end
resultsFrame.CanvasSize = UDim2.new(0,0,0,math.max(0, y*100))
end
else
noResult.Visible = true
resultsFrame.Visible = false
end
else
resultsFrame.Visible = false
noResult.Visible = false
end
end)
searchBox.Focused:Connect(function()
if #searchBox.Text > 0 then
TweenService:Create(searchIcon, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(255, 255, 255)}):Play()
TweenService:Create(searchBox, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextColor3 = Color3.fromRGB(255, 255, 255)}):Play()
end
end)

![Sir Meme Hub | [16 GAMES] [$14.99 LIFETIME] | FARM/AIM/ESP](https://scriptblox.com/images/script/-1-1791044877945.webp)

how this works
@jocaexploiter Click on F6 when you have load the script