Run it
Copy the script and paste it into your executor.
UIS = :()
.CoreGui:()
.CoreGui.SimpleHub:()
Scripts = {}
gui = .(, .CoreGui)
gui.Name =
gui.ResetOnSpawn =
main = .(, gui)
main.Size = .(, , , )
main.Position = .(, -, , -)
main.BackgroundColor3 = .(,,)
main.Active =
main.Draggable =
.(, main)
top = .(, main)
top.Size = .(,,,)
top.BackgroundColor3 = .(,,)
.(, top)
title = .(, top)
title.Size = .(,-,,)
title.BackgroundTransparency =
title.Text =
title.TextColor3 = .(,,)
title.Font = .Font.SourceSansBold
title.TextSize =
close = .(, top)
close.Size = .(,,,)
close.Position = .(,-,,)
close.Text =
close.BackgroundColor3 = .(,,)
close.TextColor3 = .(,,)
.(, close)
close.MouseButton1Click:(()
gui:()
)
searchBox = .(, main)
searchBox.Size = .(,-,,)
searchBox.Position = .(,,,)
searchBox.PlaceholderText =
searchBox.Text =
searchBox.BackgroundColor3 = .(,,)
searchBox.TextColor3 = .(,,)
.(, searchBox)
scriptFrame = .(, main)
scriptFrame.Position = .(,,,)
scriptFrame.Size = .(,-,,-)
scriptFrame.ScrollBarThickness =
scriptFrame.BackgroundColor3 = .(,,)
.(, scriptFrame)
layout = .(, scriptFrame)
layout.Padding = .(,)
layout:():(()
scriptFrame.CanvasSize = .(,,,layout.AbsoluteContentSize.Y + )
)
addBtn = .(, main)
addBtn.Size = .(,-,,)
addBtn.Position = .(,,,-)
addBtn.Text =
addBtn.BackgroundColor3 = .(,,)
addBtn.TextColor3 = .(,,)
.(, addBtn)
BASE_FOLDER =
()
() ()
(BASE_FOLDER) (BASE_FOLDER)
(name, code, aliases)
()
folder = BASE_FOLDER....name
(folder) (folder)
(folder....name.., code)
(folder.., .(aliases, ))
(name)
folder = BASE_FOLDER....name
(folder) (folder)
(name, code, aliases)
i = #Scripts, , -
Scripts[i].Name == name .(Scripts, i)
.(Scripts,{Name=name,Code=code,Aliases=aliases {}})
(existing)
popup = .(, gui)
popup.Size = .(,,,)
popup.Position = .(,-,,-)
popup.BackgroundColor3 = .(,,)
popup.Active =
.(, popup)
closeBtn = .(, popup)
closeBtn.Size = .(,,,)
closeBtn.Position = .(,-,,)
closeBtn.Text =
closeBtn.BackgroundColor3 = .(,,)
closeBtn.TextColor3 = .(,,)
.(, closeBtn)
closeBtn.MouseButton1Click:(()
popup:()
)
nameBox = .(, popup)
nameBox.Size = .(,,,)
nameBox.Position = .(,,,)
nameBox.ClearTextOnFocus =
nameBox.BackgroundColor3 = .(,,)
nameBox.TextColor3 = .(,,)
existing existing.Name existing.Name ~=
nameBox.Text = existing.Name
nameBox.PlaceholderText =
nameBox.Text =
nameBox.PlaceholderText =
codeBox = .(, popup)
codeBox.Size = .(,,,)
codeBox.Position = .(,,,)
codeBox.MultiLine =
codeBox.ClearTextOnFocus =
codeBox.BackgroundColor3 = .(,,)
codeBox.TextColor3 = .(,,)
codeBox.TextXAlignment = .TextXAlignment.Left
codeBox.TextYAlignment = .TextYAlignment.Top
codeBox.ClipsDescendants =
existing existing.Code existing.Code ~=
codeBox.Text = existing.Code
codeBox.PlaceholderText =
codeBox.Text =
codeBox.PlaceholderText =
aliasBox = .(, popup)
aliasBox.Size = .(,,,)
aliasBox.Position = .(,,,)
aliasBox.ClearTextOnFocus =
aliasBox.BackgroundColor3 = .(,,)
aliasBox.TextColor3 = .(,,)
existing existing.Aliases
aliasBox.Text = .(existing.Aliases, )
aliasBox.PlaceholderText =
aliasBox.Text =
aliasBox.PlaceholderText =
saveBtn = .(, popup)
saveBtn.Size = .(,,,)
saveBtn.Position = .(,,,-)
saveBtn.Text =
saveBtn.BackgroundColor3 = .(,,)
saveBtn.TextColor3 = .(,,)
.(, saveBtn)
saveBtn.MouseButton1Click:(()
name = nameBox.Text
code = codeBox.Text
aliases = {}
part .(aliasBox.Text , )
.(aliases, part:())
name == code ==
(name, code, aliases)
(name, code, aliases)
popup:()
()
)
()
_,child (scriptFrame:())
child:() child:()
filter = searchBox.Text:()
_,data (Scripts)
nameMatches = data.Name:():(filter)
aliasMatches =
_,a (data.Aliases)
a:():(filter) aliasMatches =
filter == nameMatches aliasMatches
btn = .()
btn.Size = .(,-,,)
btn.BackgroundColor3 = .(,,)
btn.TextColor3 = .(,,)
btn.Text = data.Name
btn.TextXAlignment = .TextXAlignment.Left
btn.TextYAlignment = .TextYAlignment.Center
.(, btn)
btn.Parent = scriptFrame
padding = .(, btn)
padding.PaddingLeft = .(,)
btn.MouseButton1Click:(()
(() (data.Code)() )
)
edit = .(, btn)
edit.Size = .(,,,)
edit.Position = .(,-,,)
edit.Text =
edit.BackgroundTransparency =
edit.TextScaled =
edit.MouseButton1Click:(()
(data)
)
delete = .(, btn)
delete.Size = .(,,,)
delete.Position = .(,-,,)
delete.Text =
delete.BackgroundTransparency =
delete.TextScaled =
delete.MouseButton1Click:(()
(data.Name)
i,v (Scripts)
v.Name == data.Name .(Scripts,i);
()
)
searchBox:():(Refresh)
()
(BASE_FOLDER)
_,folder ((BASE_FOLDER))
(folder)
name = folder:()
file = folder....name..
aliasesFile = folder..
aliases = {}
(aliasesFile)
part .((aliasesFile), )
.(aliases, part:())
(file)
.(Scripts,{Name=name,Code=(file),Aliases=aliases})
addBtn.MouseButton1Click:(() () )
()
()
UIS.InputBegan:((input,gp)
gp
input.KeyCode == .KeyCode.Semicolon
gui.Enabled = gui.Enabled
)note: script was made by chatgpt A fully universal script hub with easy script management, built-in editor, and alias support. the features are: Add, edit, and delete scripts Search scripts by name or alias Scripts saved locally with automatic folder management open source for if u wanna change this