Script
local Library = "https://raw.githubusercontent.com/MemberLol/TopBarPlus/refs/heads/main/Library"
local genv = (getgenv and getgenv()) or _G
genv.TopbarPlusLibrary = nil
local source = game:HttpGet(Library)
local Icon = loadstring(source)()
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local image = 6034287594
local demo = {}
local function say(text)
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = "TopbarPlus Demo",
Text = text,
Duration = 2,
})
end)
end
local function make()
local icon = Icon.new()
table.insert(demo, icon)
return icon
end
local gui = Instance.new("ScreenGui")
gui.Name = "TopbarPlusDemoPanel"
gui.ResetOnSpawn = false
gui.Parent = Players.LocalPlayer:WaitForChild("PlayerGui")
local panel = Instance.new("Frame")
panel.Size = UDim2.fromOffset(240, 120)
panel.Position = UDim2.new(0.5, -120, 0.5, -60)
panel.BackgroundColor3 = Color3.fromRGB(18, 18, 21)
panel.Visible = false
panel.Parent = gui
local panelCorner = Instance.new("UICorner")
panelCorner.CornerRadius = UDim.new(0, 12)
panelCorner.Parent = panel
local panelText = Instance.new("TextLabel")
panelText.Size = UDim2.fromScale(1, 1)
panelText.BackgroundTransparency = 1
panelText.Text = "Demo Panel"
panelText.TextColor3 = Color3.fromRGB(255, 255, 255)
panelText.TextSize = 20
panelText.Font = Enum.Font.GothamBold
panelText.Parent = panel
make()
:setName("DemoImage")
:setImage(image)
:setCaption("Image button")
:oneClick()
:setLeft()
.selected:Connect(function()
say("Image button clicked")
end)
make()
:setName("DemoText")
:setLabel("Text")
:setCaption("Text button")
:oneClick()
:setLeft()
.selected:Connect(function()
say("Text button clicked")
end)
make()
:setName("DemoImageText")
:setImage(image)
:setLabel("Both")
:setCaption("Image and text")
:oneClick()
:setLeft()
.selected:Connect(function()
say("Image and text clicked")
end)
local toggle = make()
:setName("DemoToggle")
:setLabel("Toggle")
:setCaption("Stays on until clicked again")
:setLeft()
toggle.selected:Connect(function()
say("Toggle ON")
end)
toggle.deselected:Connect(function()
say("Toggle OFF")
end)
make()
:setName("DemoHotkey")
:setLabel("Hotkey")
:setCaption("Press G")
:bindToggleKey(Enum.KeyCode.G)
:oneClick()
:setLeft()
.selected:Connect(function()
say("Hotkey button triggered")
end)
local notice = make()
:setName("DemoNotice")
:setLabel("Notice")
:setCaption("Clears when clicked")
:setLeft()
notice:notify()
notice:notify()
notice:notify()
make()
:setName("DemoColored")
:setLabel("Red")
:setCaption("Custom colors")
:modifyTheme({
{ "IconButton", "BackgroundColor3", Color3.fromRGB(200, 40, 40) },
{ "IconButton", "BackgroundTransparency", 0 },
{ "IconLabel", "TextColor3", Color3.fromRGB(255, 255, 255) },
})
:oneClick()
:setLeft()
.selected:Connect(function()
say("Red button clicked")
end)
make()
:setName("DemoWide")
:setLabel("Wide and square")
:setCaption("Custom width and corners")
:setWidth(150)
:setCornerRadius(UDim.new(0, 8))
:oneClick()
:setLeft()
.selected:Connect(function()
say("Wide button clicked")
end)
make()
:setName("DemoLocked")
:setLabel("Locked")
:setCaption("Cannot be clicked")
:lock()
:setLeft()
make()
:setName("DemoPanel")
:setLabel("Panel")
:setCaption("Shows and hides a window")
:bindToggleItem(panel)
:setLeft()
make()
:setName("DemoMid")
:setLabel("Center")
:setCaption("Centered button")
:oneClick()
:setMid()
.selected:Connect(function()
say("Center button clicked")
end)
local option1 = make():setLabel("Option 1"):oneClick()
local option2 = make():setLabel("Option 2"):oneClick()
local option3 = make():setLabel("Option 3"):oneClick()
option1.selected:Connect(function()
say("Dropdown: Option 1")
end)
option2.selected:Connect(function()
say("Dropdown: Option 2")
end)
option3.selected:Connect(function()
say("Dropdown: Option 3")
end)
make()
:setName("DemoDropdown")
:setLabel("Dropdown")
:setCaption("Opens a list")
:setDropdown({ option1, option2, option3 })
:setRight()
local itemA = make():setLabel("A"):oneClick()
local itemB = make():setLabel("B"):oneClick()
local itemC = make():setLabel("C"):oneClick()
itemA.selected:Connect(function()
say("Menu: A")
end)
itemB.selected:Connect(function()
say("Menu: B")
end)
itemC.selected:Connect(function()
say("Menu: C")
end)
make()
:setName("DemoMenu")
:setLabel("Menu")
:setCaption("Expands sideways")
:setMenu({ itemA, itemB, itemC })
:setRight()
local cleanup = make()
:setName("DemoRemove")
:setLabel("Remove demo")
:setCaption("Deletes every demo button")
:oneClick()
:setRight()
local cleaningUp = false
cleanup.selected:Connect(function()
if cleaningUp then
return
end
cleaningUp = true
local copy = table.clone(demo)
if gui.Parent then
gui:Destroy()
end
task.defer(function()
for i = #copy, 1, -1 do
pcall(function()
copy[i]:destroy()
end)
end
end)
end)