
KeylessUniversal

--[[
Hey users! If you are reading this checking if this is bait this isn't why would it be reviewed also if you are reading this because your bored keep reading it.
Hey reviewers! If you are reading this trying to verify the script could you tell me what u should improve in the comments and maybe a compliment! :D
]]
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local SoundService = game:GetService("SoundService")
local Tween = game:GetService("TweenService")
local LP = Players.LocalPlayer
local PG = LP:WaitForChild("PlayerGui")
local Theme = {
Accent = Color3.fromRGB(96, 165, 250),
Accent2 = Color3.fromRGB(147, 51, 234),
BgTop = Color3.fromRGB(22, 22, 32),
BgBottom = Color3.fromRGB(14, 14, 22),
Header = Color3.fromRGB(28, 28, 40),
Sidebar = Color3.fromRGB(18, 18, 28),
Card = Color3.fromRGB(32, 32, 46),
Text = Color3.fromRGB(238, 238, 248),
Dim = Color3.fromRGB(148, 148, 168),
Btn = Color3.fromRGB(38, 38, 54),
BtnHi = Color3.fromRGB(52, 52, 72),
Success = Color3.fromRGB(52, 211, 153),
Danger = Color3.fromRGB(248, 113, 113),
Warn = Color3.fromRGB(251, 191, 36),
}
local BG_TRANSPARENCY = 0.15
local state = {
sound = nil,
soundId = "",
playing = false,
pitch = 1,
speed = 1,
volume = 0.5,
looped = false,
}
local connections = {}
local function track(c) table.insert(connections, c) return c end
local function tween(obj, props, dur)
Tween:Create(obj, TweenInfo.new(dur or 0.16, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props):Play()
end
local function addHover(btn, base, hover)
btn.MouseEnter:Connect(function() tween(btn, {BackgroundColor3 = hover}) end)
btn.MouseLeave:Connect(function() tween(btn, {BackgroundColor3 = base}) end)
end
local gui = Instance.new("ScreenGui")
gui.Name = "BoomboxMusic"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = PG
local panel = Instance.new("Frame")
panel.Name = "Panel"
panel.Size = UDim2.fromOffset(620, 460)
panel.Position = UDim2.new(0, 40, 0, 80)
panel.BackgroundColor3 = Color3.new(1, 1, 1)
panel.BackgroundTransparency = BG_TRANSPARENCY
panel.BorderSizePixel = 0
panel.Active = true
panel.Parent = gui
Instance.new("UICorner", panel).CornerRadius = UDim.new(0, 14)
local panelGrad = Instance.new("UIGradient")
panelGrad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Theme.BgTop),
ColorSequenceKeypoint.new(1, Theme.BgBottom),
})
panelGrad.Rotation = 135
panelGrad.Parent = panel
local panelStroke = Instance.new("UIStroke", panel)
panelStroke.Color = Theme.Accent
panelStroke.Thickness = 1.5
panelStroke.Transparency = 0.55
local HEADER_H = 46
local header = Instance.new("Frame")
header.Name = "Header"
header.Size = UDim2.new(1, 0, 0, HEADER_H)
header.BackgroundColor3 = Theme.Header
header.BackgroundTransparency = 0.05
header.BorderSizePixel = 0
header.ZIndex = 2
header.Parent = panel
Instance.new("UICorner", header).CornerRadius = UDim.new(0, 14)
local headerBottomFix = Instance.new("Frame")
headerBottomFix.Size = UDim2.new(1, 0, 0, 16)
headerBottomFix.Position = UDim2.new(0, 0, 1, -16)
headerBottomFix.BackgroundColor3 = Theme.Header
headerBottomFix.BackgroundTransparency = 0.05
headerBottomFix.BorderSizePixel = 0
headerBottomFix.ZIndex = 3
headerBottomFix.Parent = header
local accentLine = Instance.new("Frame")
accentLine.Size = UDim2.new(1, -24, 0, 2)
accentLine.Position = UDim2.new(0, 12, 0, 0)
accentLine.BackgroundColor3 = Theme.Accent
accentLine.BorderSizePixel = 0
accentLine.ZIndex = 5
accentLine.Parent = header
Instance.new("UICorner", accentLine).CornerRadius = UDim.new(1, 0)
local dragHandle = Instance.new("TextButton")
dragHandle.Size = UDim2.new(1, -110, 1, 0)
dragHandle.BackgroundTransparency = 1
dragHandle.Text = ""
dragHandle.AutoButtonColor = false
dragHandle.ZIndex = 4
dragHandle.Parent = header
local titleLbl = Instance.new("TextLabel")
titleLbl.Size = UDim2.new(1, -110, 1, 0)
titleLbl.Position = UDim2.fromOffset(20, 0)
titleLbl.BackgroundTransparency = 1
titleLbl.Font = Enum.Font.GothamBold
titleLbl.TextSize = 15
titleLbl.TextXAlignment = Enum.TextXAlignment.Left
titleLbl.TextColor3 = Theme.Text
titleLbl.Text = "♫ BOOMBOX MUSIC"
titleLbl.ZIndex = 5
titleLbl.Parent = header
local tagLbl = Instance.new("TextLabel")
tagLbl.Size = UDim2.new(1, -110, 0, 12)
tagLbl.Position = UDim2.new(0, 20, 0, 28)
tagLbl.BackgroundTransparency = 1
tagLbl.Font = Enum.Font.Gotham
tagLbl.TextSize = 10
tagLbl.TextXAlignment = Enum.TextXAlignment.Left
tagLbl.TextColor3 = Theme.Dim
tagLbl.Text = "by N00XC"
tagLbl.ZIndex = 5
tagLbl.Parent = header
local function makeWinBtn(txt, xoff, col)
local b = Instance.new("TextButton")
b.Size = UDim2.fromOffset(30, 26)
b.Position = UDim2.new(1, xoff, 0, 10)
b.BackgroundColor3 = col or Theme.Btn
b.BorderSizePixel = 0
b.Font = Enum.Font.GothamBold
b.TextSize = 13
b.TextColor3 = Theme.Text
b.Text = txt
b.AutoButtonColor = false
b.ZIndex = 6
b.Parent = header
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
addHover(b, col or Theme.Btn, col and Color3.fromRGB(220, 90, 90) or Theme.BtnHi)
return b
end
local minBtn = makeWinBtn("–", -74)
local closeBtn = makeWinBtn("✕", -40, Theme.Danger)
local SIDEBAR_W = 152
local sidebar = Instance.new("Frame")
sidebar.Name = "Sidebar"
sidebar.Size = UDim2.new(0, SIDEBAR_W, 1, -(HEADER_H + 26))
sidebar.Position = UDim2.new(0, 0, 0, HEADER_H)
sidebar.BackgroundColor3 = Theme.Sidebar
sidebar.BackgroundTransparency = 0.15
sidebar.BorderSizePixel = 0
sidebar.Parent = panel
local sideScroll = Instance.new("ScrollingFrame")
sideScroll.Size = UDim2.fromScale(1, 1)
sideScroll.BackgroundTransparency = 1
sideScroll.BorderSizePixel = 0
sideScroll.ScrollBarThickness = 3
sideScroll.ScrollBarImageColor3 = Theme.Accent
sideScroll.ScrollBarImageTransparency = 0.7
sideScroll.CanvasSize = UDim2.new()
sideScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
sideScroll.Parent = sidebar
local sideLayout = Instance.new("UIListLayout")
sideLayout.Padding = UDim.new(0, 4)
sideLayout.SortOrder = Enum.SortOrder.LayoutOrder
sideLayout.Parent = sideScroll
local sidePad = Instance.new("UIPadding")
sidePad.PaddingTop = UDim.new(0, 10)
sidePad.PaddingBottom = UDim.new(0, 10)
sidePad.PaddingLeft = UDim.new(0, 8)
sidePad.PaddingRight = UDim.new(0, 8)
sidePad.Parent = sideScroll
local content = Instance.new("Frame")
content.Name = "Content"
content.Size = UDim2.new(1, -SIDEBAR_W, 1, -(HEADER_H + 26))
content.Position = UDim2.new(0, SIDEBAR_W, 0, HEADER_H)
content.BackgroundTransparency = 1
content.Parent = panel
local FOOTER_H = 26
local footer = Instance.new("Frame")
footer.Size = UDim2.new(1, 0, 0, FOOTER_H)
footer.Position = UDim2.new(0, 0, 1, -FOOTER_H)
footer.BackgroundColor3 = Theme.Header
footer.BackgroundTransparency = 0.1
footer.BorderSizePixel = 0
footer.ZIndex = 2
footer.Parent = panel
Instance.new("UICorner", footer).CornerRadius = UDim.new(0, 14)
local footerTopFix = Instance.new("Frame")
footerTopFix.Size = UDim2.new(1, 0, 0, 16)
footerTopFix.Position = UDim2.new(0, 0, 0, 0)
footerTopFix.BackgroundColor3 = Theme.Header
footerTopFix.BackgroundTransparency = 0.1
footerTopFix.BorderSizePixel = 0
footerTopFix.ZIndex = 3
footerTopFix.Parent = footer
local statusLbl = Instance.new("TextLabel")
statusLbl.Size = UDim2.new(0.5, -24, 1, 0)
statusLbl.Position = UDim2.fromOffset(16, 0)
statusLbl.BackgroundTransparency = 1
statusLbl.Font = Enum.Font.Gotham
statusLbl.TextSize = 11
statusLbl.TextXAlignment = Enum.TextXAlignment.Left
statusLbl.TextColor3 = Theme.Dim
statusLbl.Text = "Ready."
statusLbl.ZIndex = 4
statusLbl.Parent = footer
local creditLbl = Instance.new("TextLabel")
creditLbl.Size = UDim2.new(0.5, -16, 1, 0)
creditLbl.Position = UDim2.new(0.5, 0, 0, 0)
creditLbl.BackgroundTransparency = 1
creditLbl.Font = Enum.Font.Gotham
creditLbl.TextSize = 11
creditLbl.TextXAlignment = Enum.TextXAlignment.Right
creditLbl.TextColor3 = Theme.Dim
creditLbl.Text = "Made by N00XC, ScriptBlox and Roblox"
creditLbl.ZIndex = 4
creditLbl.Parent = footer
local statusToken = 0
local function setStatus(txt)
statusToken += 1
local my = statusToken
statusLbl.Text = txt
task.delay(3, function()
if statusToken == my then statusLbl.Text = "Ready." end
end)
end
local activeDrag = nil
track(UIS.InputChanged:Connect(function(input)
if not activeDrag then return end
if input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch then
activeDrag(input)
end
end))
track(UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
activeDrag = nil
end
end))
local function makePage(parent)
local sf = Instance.new("ScrollingFrame")
sf.Size = UDim2.fromScale(1, 1)
sf.BackgroundTransparency = 1
sf.BorderSizePixel = 0
sf.ScrollBarThickness = 5
sf.ScrollBarImageColor3 = Theme.Accent
sf.ScrollBarImageTransparency = 0.5
sf.CanvasSize = UDim2.new()
sf.AutomaticCanvasSize = Enum.AutomaticSize.Y
sf.Visible = false
sf.Parent = parent
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 6)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Parent = sf
local pad = Instance.new("UIPadding")
pad.PaddingTop = UDim.new(0, 12)
pad.PaddingBottom = UDim.new(0, 16)
pad.PaddingLeft = UDim.new(0, 14)
pad.PaddingRight = UDim.new(0, 14)
pad.Parent = sf
return sf
end
local function makeSection(parent, text)
local holder = Instance.new("Frame")
holder.Size = UDim2.new(1, 0, 0, 26)
holder.BackgroundTransparency = 1
holder.Parent = parent
local bar = Instance.new("Frame")
bar.Size = UDim2.fromOffset(3, 14)
bar.Position = UDim2.new(0, 0, 0.5, -7)
bar.BackgroundColor3 = Theme.Accent
bar.BorderSizePixel = 0
bar.Parent = holder
Instance.new("UICorner", bar).CornerRadius = UDim.new(1, 0)
local l = Instance.new("TextLabel")
l.Size = UDim2.new(1, -14, 1, 0)
l.Position = UDim2.fromOffset(14, 0)
l.BackgroundTransparency = 1
l.Font = Enum.Font.GothamBold
l.TextSize = 11
l.TextColor3 = Theme.Text
l.TextXAlignment = Enum.TextXAlignment.Left
l.Text = string.upper(text)
l.Parent = holder
return holder
end
local function makeCard(parent, height)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, 0, 0, height or 56)
row.BackgroundColor3 = Theme.Card
row.BackgroundTransparency = 0.35
row.BorderSizePixel = 0
row.Parent = parent
Instance.new("UICorner", row).CornerRadius = UDim.new(0, 10)
local s = Instance.new("UIStroke", row)
s.Color = Color3.fromRGB(80, 80, 110)
s.Thickness = 1
s.Transparency = 0.75
return row
end
local function makeSlider(parent, labelText, min, max, default, callback)
local row = makeCard(parent, 58)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(1, -100, 0, 18)
lbl.Position = UDim2.fromOffset(14, 7)
lbl.BackgroundTransparency = 1
lbl.Font = Enum.Font.Gotham
lbl.TextSize = 12
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.TextColor3 = Theme.Text
lbl.Text = labelText
lbl.Parent = row
local box = Instance.new("TextBox")
box.Size = UDim2.fromOffset(78, 22)
box.Position = UDim2.new(1, -88, 0, 6)
box.BackgroundColor3 = Theme.Btn
box.BorderSizePixel = 0
box.Font = Enum.Font.GothamBold
box.TextSize = 12
box.TextColor3 = Theme.Accent
box.Text = tostring(default)
box.ClearTextOnFocus = false
box.Parent = row
Instance.new("UICorner", box).CornerRadius = UDim.new(0, 6)
local track_ = Instance.new("Frame")
track_.Size = UDim2.new(1, -28, 0, 10)
track_.Position = UDim2.new(0, 14, 1, -18)
track_.BackgroundColor3 = Theme.Btn
track_.BorderSizePixel = 0
track_.Parent = row
Instance.new("UICorner", track_).CornerRadius = UDim.new(1, 0)
local fill = Instance.new("Frame")
fill.Size = UDim2.new(0, 0, 1, 0)
fill.BackgroundColor3 = Theme.Accent
fill.BorderSizePixel = 0
fill.Parent = track_
Instance.new("UICorner", fill).CornerRadius = UDim.new(1, 0)
local fillGrad = Instance.new("UIGradient")
fillGrad.Color = ColorSequence.new(Theme.Accent, Theme.Accent2)
fillGrad.Parent = fill
local knob = Instance.new("Frame")
knob.Size = UDim2.fromOffset(18, 18)
knob.AnchorPoint = Vector2.new(0.5, 0.5)
knob.Position = UDim2.new(0, 0, 0.5, 0)
knob.BackgroundColor3 = Color3.new(1, 1, 1)
knob.BorderSizePixel = 0
knob.ZIndex = 2
knob.Parent = track_
Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0)
local hit = Instance.new("TextButton")
hit.Size = UDim2.new(1, 0, 1, 24)
hit.Position = UDim2.new(0, 0, 0.5, -17)
hit.BackgroundTransparency = 1
hit.Text = ""
hit.ZIndex = 3
hit.Parent = track_
local current = default
local function set(v, updateBox)
v = tonumber(v)
if not v then v = current end
v = math.clamp(v, min, max)
current = v
local t = (max == min) and 0 or (v - min) / (max - min)
fill.Size = UDim2.new(t, 0, 1, 0)
knob.Position = UDim2.new(t, 0, 0.5, 0)
if updateBox ~= false then box.Text = string.format("%.2f", v) end
local ok, err = pcall(callback, v)
if not ok then warn("[Boombox] slider callback:", err) end
end
hit.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
local function update(i)
local rel = (i.Position.X - track_.AbsolutePosition.X) / math.max(1, track_.AbsoluteSize.X)
rel = math.clamp(rel, 0, 1)
set(min + rel * (max - min), true)
end
activeDrag = update
update(input)
end
end)
box.FocusLost:Connect(function(enter)
if enter then set(box.Text, true) end
end)
set(default, true)
return { set = set, get = function() return current end, frame = row }
end
local function makeToggle(parent, labelText, default, callback)
local row = makeCard(parent, 44)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(1, -90, 1, 0)
lbl.Position = UDim2.fromOffset(14, 0)
lbl.BackgroundTransparency = 1
lbl.Font = Enum.Font.Gotham
lbl.TextSize = 12
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.TextColor3 = Theme.Text
lbl.Text = labelText
lbl.Parent = row
local isOn = default
local pill = Instance.new("Frame")
pill.Size = UDim2.fromOffset(50, 26)
pill.Position = UDim2.new(1, -64, 0.5, -13)
pill.BackgroundColor3 = isOn and Theme.Success or Theme.Btn
pill.BorderSizePixel = 0
pill.Parent = row
Instance.new("UICorner", pill).CornerRadius = UDim.new(1, 0)
local knob = Instance.new("Frame")
knob.Size = UDim2.fromOffset(20, 20)
knob.AnchorPoint = Vector2.new(0, 0.5)
knob.Position = isOn and UDim2.new(1, -23, 0.5, 0) or UDim2.new(0, 3, 0.5, 0)
knob.BackgroundColor3 = Color3.new(1, 1, 1)
knob.BorderSizePixel = 0
knob.Parent = pill
Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0)
local clickable = Instance.new("TextButton")
clickable.Size = UDim2.new(1, 0, 1, 0)
clickable.BackgroundTransparency = 1
clickable.Text = ""
clickable.Parent = row
local function set(v)
isOn = v
tween(pill, {BackgroundColor3 = isOn and Theme.Success or Theme.Btn}, 0.2)
if isOn then
tween(knob, {Position = UDim2.new(1, -23, 0.5, 0)}, 0.2)
else
tween(knob, {Position = UDim2.new(0, 3, 0.5, 0)}, 0.2)
end
local ok, err = pcall(callback, v)
if not ok then warn("[Boombox] toggle callback:", err) end
end
clickable.MouseButton1Click:Connect(function() set(not isOn) end)
return { set = set, get = function() return isOn end }
end
local function makeButton(parent, labelText, callback, color)
local b = Instance.new("TextButton")
b.Size = UDim2.new(1, 0, 0, 36)
b.BackgroundColor3 = color or Theme.Btn
b.BorderSizePixel = 0
b.Font = Enum.Font.GothamBold
b.TextSize = 12
b.TextColor3 = Theme.Text
b.Text = labelText
b.AutoButtonColor = false
b.Parent = parent
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 10)
local base = color or Theme.Btn
local hover = base:Lerp(Color3.new(1, 1, 1), 0.15)
addHover(b, base, hover)
b.MouseButton1Click:Connect(function()
local ok, err = pcall(callback)
if not ok then
warn("[Boombox] button error:", err)
setStatus("Error: " .. tostring(err))
end
end)
return b
end
local function makeInput(parent, placeholder, defaultText, callback)
local box = Instance.new("TextBox")
box.Size = UDim2.new(1, 0, 0, 34)
box.BackgroundColor3 = Theme.Card
box.BackgroundTransparency = 0.35
box.BorderSizePixel = 0
box.Font = Enum.Font.Gotham
box.TextSize = 12
box.TextColor3 = Theme.Text
box.PlaceholderText = placeholder
box.PlaceholderColor3 = Theme.Dim
box.Text = defaultText or ""
box.ClearTextOnFocus = false
box.Parent = parent
Instance.new("UICorner", box).CornerRadius = UDim.new(0, 10)
local s = Instance.new("UIStroke", box)
s.Color = Color3.fromRGB(80, 80, 110)
s.Thickness = 1
s.Transparency = 0.7
box.FocusLost:Connect(function(enter)
if enter then
local ok, err = pcall(callback, box.Text)
if not ok then warn("[Boombox] input error:", err) end
end
end)
return box
end
local function makeRowButtons(parent, specs)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, 0, 0, 34)
row.BackgroundTransparency = 1
row.Parent = parent
local n = #specs
local gap = 6
for i, s in ipairs(specs) do
local b = Instance.new("TextButton")
b.Size = UDim2.new(1 / n, -(gap * (n - 1)) / n, 1, 0)
b.Position = UDim2.new((i - 1) / n, ((i - 1) * gap) / n, 0, 0)
b.BackgroundColor3 = s.color or Theme.Btn
b.BorderSizePixel = 0
b.Font = Enum.Font.GothamBold
b.TextSize = 12
b.TextColor3 = Theme.Text
b.Text = s.text
b.AutoButtonColor = false
b.Parent = row
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 10)
local base = s.color or Theme.Btn
addHover(b, base, base:Lerp(Color3.new(1, 1, 1), 0.15))
b.MouseButton1Click:Connect(function()
local ok, err = pcall(s.callback)
if not ok then warn("[Boombox] btn err:", err) end
end)
end
return row
end
local function normalizeId(raw)
raw = (raw or ""):gsub("%s+", "")
if raw == "" then return nil end
if tonumber(raw) then
return "rbxassetid://" .. raw
end
if raw:match("^rbxassetid://") then return raw end
if raw:match("^https?://") then
local id = raw:match("(%d+)")
if id then return "rbxassetid://" .. id end
end
return raw
end
local function ensureSound()
if state.sound and state.sound.Parent then return state.sound end
local s = Instance.new("Sound")
s.Name = "BoomboxSound"
s.Looped = state.looped
s.Volume = state.volume
s.PlaybackSpeed = state.speed
s.Pitch = state.pitch
s.Parent = SoundService
state.sound = s
return s
end
local function stopSound()
if state.sound then
state.sound:Stop()
state.sound:Destroy()
state.sound = nil
end
state.playing = false
end
local function playSound()
if state.soundId == "" then
setStatus("Enter a music id first.")
return
end
stopSound()
local s = ensureSound()
s.SoundId = state.soundId
s.Volume = state.volume
s.PlaybackSpeed = state.speed
s.Pitch = state.pitch
s.Looped = state.looped
local ok, err = pcall(function() s:Play() end)
if not ok then
setStatus("Playback failed.")
return
end
state.playing = true
setStatus("Playing.")
end
local function pauseSound()
if state.sound and state.playing then
state.sound:Pause()
state.playing = false
setStatus("Paused.")
end
end
local function resumeSound()
if state.sound and not state.playing then
state.sound:Resume()
state.playing = true
setStatus("Resumed.")
end
end
local tabs = {}
local function registerTab(name, icon, buildFn)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, 38)
btn.LayoutOrder = #tabs + 1
btn.BackgroundColor3 = Theme.Btn
btn.BackgroundTransparency = 0.55
btn.BorderSizePixel = 0
btn.Font = Enum.Font.GothamBold
btn.TextSize = 12
btn.TextColor3 = Theme.Text
btn.Text = " " .. icon .. " " .. name
btn.TextXAlignment = Enum.TextXAlignment.Left
btn.AutoButtonColor = false
btn.Parent = sideScroll
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)
local page = makePage(content)
buildFn(page)
local entry = { name = name, btn = btn, page = page }
tabs[#tabs + 1] = entry
btn.MouseEnter:Connect(function()
if entry.page.Visible then return end
tween(btn, {BackgroundColor3 = Theme.BtnHi})
end)
btn.MouseLeave:Connect(function()
if entry.page.Visible then return end
tween(btn, {BackgroundColor3 = Theme.Btn})
end)
btn.MouseButton1Click:Connect(function()
for _, t in ipairs(tabs) do
local sel = (t == entry)
t.page.Visible = sel
tween(t.btn, {
BackgroundColor3 = sel and Theme.Accent or Theme.Btn,
BackgroundTransparency = sel and 0.15 or 0.55,
}, 0.18)
t.btn.TextColor3 = sel and Color3.new(1, 1, 1) or Theme.Text
end
end)
return entry
end
registerTab("Playback", "▶", function(page)
makeSection(page, "Music ID")
local idBox = makeInput(page, "e.g. 1837879082", "", function(text)
local id = normalizeId(text)
if id then
state.soundId = id
setStatus("Loaded id: " .. id)
end
end)
makeSection(page, "Controls")
makeRowButtons(page, {
{ text = "▶ Play", color = Theme.Success,
callback = function()
local id = normalizeId(idBox.Text)
if id then state.soundId = id end
playSound()
end },
{ text = "⏸ Pause", color = Theme.Warn,
callback = pauseSound },
{ text = "⏹ Stop", color = Theme.Danger,
callback = function() stopSound() setStatus("Stopped.") end },
})
makeRowButtons(page, {
{ text = "▶ Resume", color = Theme.Accent,
callback = resumeSound },
{ text = "🔁 Restart", color = Theme.Btn,
callback = function() playSound() end },
})
makeSection(page, "Options")
makeToggle(page, "Loop Music", false, function(on)
state.looped = on
if state.sound then state.sound.Looped = on end
end)
end)
registerTab("Pitch & Speed", "🎚", function(page)
makeSection(page, "Pitch")
makeSlider(page, "Pitch", 0.1, 4, 1, function(v)
state.pitch = v
if state.sound then state.sound.Pitch = v end
end)
makeSection(page, "Speed")
makeSlider(page, "Playback Speed", 0.1, 4, 1, function(v)
state.speed = v
if state.sound then state.sound.PlaybackSpeed = v end
end)
makeSection(page, "Presets")
makeRowButtons(page, {
{ text = "0.5x", color = Theme.Btn,
callback = function()
state.pitch = 0.5 state.speed = 0.5
if state.sound then
state.sound.Pitch = 0.5
state.sound.PlaybackSpeed = 0.5
end
end },
{ text = "1x", color = Theme.Success,
callback = function()
state.pitch = 1 state.speed = 1
if state.sound then
state.sound.Pitch = 1
state.sound.PlaybackSpeed = 1
end
end },
{ text = "1.5x", color = Theme.Warn,
callback = function()
state.pitch = 1.5 state.speed = 1.5
if state.sound then
state.sound.Pitch = 1.5
state.sound.PlaybackSpeed = 1.5
end
end },
{ text = "2x", color = Theme.Accent,
callback = function()
state.pitch = 2 state.speed = 2
if state.sound then
state.sound.Pitch = 2
state.sound.PlaybackSpeed = 2
end
end },
})
end)
registerTab("Volume", "🔊", function(page)
makeSection(page, "Volume")
makeSlider(page, "Volume", 0, 5, 0.5, function(v)
state.volume = v
if state.sound then state.sound.Volume = v end
end)
makeSection(page, "Quick Set")
makeRowButtons(page, {
{ text = "Mute", color = Theme.Danger,
callback = function()
state.volume = 0
if state.sound then state.sound.Volume = 0 end
end },
{ text = "Low", color = Theme.Btn,
callback = function()
state.volume = 0.25
if state.sound then state.sound.Volume = 0.25 end
end },
{ text = "Med", color = Theme.Warn,
callback = function()
state.volume = 0.5
if state.sound then state.sound.Volume = 0.5 end
end },
{ text = "Max", color = Theme.Success,
callback = function()
state.volume = 2
if state.sound then state.sound.Volume = 2 end
end },
})
end)
registerTab("Acknowledgments", "★", function(page)
makeSection(page, "Credits")
local card = makeCard(page, 170)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(1, -24, 1, -24)
lbl.Position = UDim2.new(0, 12, 0, 12)
lbl.BackgroundTransparency = 1
lbl.Font = Enum.Font.Gotham
lbl.TextSize = 13
lbl.TextWrapped = true
lbl.TextXAlignment = Enum.TextXAlignment.Center
lbl.TextYAlignment = Enum.TextYAlignment.Center
lbl.TextColor3 = Theme.Text
lbl.Text = "Made by N00XC, ScriptBlox and Roblox.\n\nRemember to follow in both."
lbl.Parent = card
end)
if tabs[1] then
tabs[1].page.Visible = true
tabs[1].btn.BackgroundColor3 = Theme.Accent
tabs[1].btn.BackgroundTransparency = 0.15
tabs[1].btn.TextColor3 = Color3.new(1, 1, 1)
end
local dragging = false
local dragStart, startPos
dragHandle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = panel.Position
end
end)
track(UIS.InputChanged:Connect(function(input)
if not dragging then return end
if input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch then
local delta = input.Position - dragStart
panel.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end))
track(UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end))
local minimized = false
local expandedSize = panel.Size
minBtn.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
expandedSize = panel.Size
sidebar.Visible = false
content.Visible = false
footer.Visible = false
panel.Size = UDim2.fromOffset(panel.AbsoluteSize.X, HEADER_H)
minBtn.Text = "+"
else
sidebar.Visible = true
content.Visible = true
footer.Visible = true
panel.Size = expandedSize
minBtn.Text = "–"
end
end)
closeBtn.MouseButton1Click:Connect(function()
stopSound()
for _, c in ipairs(connections) do pcall(function() c:Disconnect() end) end
gui:Destroy()
print("[BoomboxMusic] Closed. Made by N00XC, ScriptBlox and Roblox")
end)
track(UIS.InputBegan:Connect(function(i, gp)
if gp then return end
if i.KeyCode == Enum.KeyCode.RightShift then
gui.Enabled = not gui.Enabled
end
end))
setStatus("Boombox ready.")
print("[BoomboxMusic] Ready. Made by N00XC, ScriptBlox and Roblox")No comments yet for this script.

![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)

