Universal Boombox id tracker OPEN SOURCE
Key RequiredUniversal

Universal Boombox id tracker OPEN SOURCE

Universal ScriptScriptBoxScriptBox 8.7K views 3K executesUpdated Sep 3, 2025
3.3/ 5(3 votes)
2167% Positive
Lua Script•376 lines (11528 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

local PANEL_W = 320
local PANEL_H = 420
local ENTRY_HEIGHT = 56
local RECENT_IGNORE_SECONDS = 2

local lastSeen = {}
local entriesCount = 0

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "BoomboxTrackerGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui

local panel = Instance.new("Frame")
panel.Name = "MainPanel"
panel.Size = UDim2.new(0, PANEL_W, 0, PANEL_H)
panel.Position = UDim2.new(0.7, 0, 0.15, 0)
panel.AnchorPoint = Vector2.new(0,0)
panel.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
panel.BorderSizePixel = 0
panel.Parent = screenGui

local panelRound = Instance.new("UICorner", panel)
panelRound.CornerRadius = UDim.new(0, 14)

local header = Instance.new("Frame", panel)
header.Size = UDim2.new(1, 0, 0, 50)
header.BackgroundColor3 = Color3.fromRGB(28, 28, 28)
header.BorderSizePixel = 0

local headerRound = Instance.new("UICorner", header)
headerRound.CornerRadius = UDim.new(0, 12)

local title = Instance.new("TextLabel", header)
title.Size = UDim2.new(1, -100, 1, 0)
title.Position = UDim2.new(0, 12, 0, 0)
title.BackgroundTransparency = 1
title.Text = "Boombox Tracker"
title.TextColor3 = Color3.fromRGB(230,230,230)
title.TextSize = 18
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left

local function makeHeaderButton(name, text, posOffset)
	local b = Instance.new("TextButton", header)
	b.Name = name
	b.Size = UDim2.new(0, 56, 0, 34)
	b.Position = UDim2.new(1, -posOffset, 0.5, -17)
	b.BackgroundColor3 = Color3.fromRGB(55,55,55)
	b.TextColor3 = Color3.fromRGB(240,240,240)
	b.Font = Enum.Font.Gotham
	b.TextSize = 14
	b.Text = text
	local r = Instance.new("UICorner", b)
	r.CornerRadius = UDim.new(0,8)
	return b
end

local btnClose = makeHeaderButton("CloseBtn", "✕", 12)
local btnClear = makeHeaderButton("ClearBtn", "Clear", 74)
local btnCopyAll = makeHeaderButton("CopyAllBtn", "Copy All", 136)
local btnToggle = makeHeaderButton("ToggleBtn", "Hide", 198)

local content = Instance.new("Frame", panel)
content.Position = UDim2.new(0, 0, 0, 50)
content.Size = UDim2.new(1, 0, 1, -50)
content.BackgroundTransparency = 1

local scroll = Instance.new("ScrollingFrame", content)
scroll.Name = "List"
scroll.Size = UDim2.new(1, -12, 1, -12)
scroll.Position = UDim2.new(0, 6, 0, 6)
scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
scroll.ScrollBarThickness = 8
scroll.BackgroundTransparency = 1
scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y

local listLayout = Instance.new("UIListLayout", scroll)
listLayout.SortOrder = Enum.SortOrder.LayoutOrder
listLayout.Padding = UDim.new(0, 8)

local padding = Instance.new("UIPadding", scroll)
padding.PaddingTop = UDim.new(0, 4)
padding.PaddingBottom = UDim.new(0, 8)

local toast = Instance.new("TextLabel", panel)
toast.Size = UDim2.new(1, -24, 0, 28)
toast.Position = UDim2.new(0, 12, 1, -36)
toast.BackgroundTransparency = 1
toast.Text = ""
toast.TextColor3 = Color3.fromRGB(255,255,255)
toast.Font = Enum.Font.Gotham
toast.TextSize = 14

local toastTask
local function showToast(text, timeSec)
	timeSec = timeSec or 1.2
	toast.Text = text
	toast.BackgroundTransparency = 0.6
	toast.BackgroundColor3 = Color3.fromRGB(10,10,10)
	toast.TextColor3 = Color3.fromRGB(240,240,240)
	if toastTask then task.cancel(toastTask) end
	toastTask = task.spawn(function()
		wait(timeSec)
		toast.BackgroundTransparency = 1
		toast.Text = ""
	end)
end

local credit = Instance.new("TextLabel", screenGui)
credit.Size = UDim2.new(0, 220, 0, 24)
credit.AnchorPoint = Vector2.new(0.5, 1)
credit.Position = UDim2.new(0.5, 0, 1, -6)
credit.BackgroundTransparency = 1
credit.Text = "script created by ScriptBox"
credit.TextColor3 = Color3.fromRGB(180,180,180)
credit.TextSize = 14
credit.Font = Enum.Font.Gotham

local function showManualCopyModal(textToShow)
	local existing = screenGui:FindFirstChild("ManualCopyModal")
	if existing then existing:Destroy() end
	local modal = Instance.new("Frame", screenGui)
	modal.Name = "ManualCopyModal"
	modal.AnchorPoint = Vector2.new(0.5,0.5)
	modal.Position = UDim2.new(0.5, 0, 0.5, 0)
	modal.Size = UDim2.new(0, 300, 0, 160)
	modal.BackgroundColor3 = Color3.fromRGB(18,18,18)
	modal.BorderSizePixel = 0
	Instance.new("UICorner", modal).CornerRadius = UDim.new(0,12)
	local label = Instance.new("TextLabel", modal)
	label.Size = UDim2.new(1, -24, 0, 42)
	label.Position = UDim2.new(0, 12, 0, 12)
	label.BackgroundTransparency = 1
	label.Text = "Tap & hold the box to Copy"
	label.TextColor3 = Color3.fromRGB(240,240,240)
	label.Font = Enum.Font.Gotham
	label.TextSize = 14
	local box = Instance.new("TextBox", modal)
	box.Size = UDim2.new(1, -24, 0, 56)
	box.Position = UDim2.new(0, 12, 0, 62)
	box.Text = textToShow
	box.ClearTextOnFocus = false
	box.Font = Enum.Font.Gotham
	box.TextSize = 16
	box.TextColor3 = Color3.fromRGB(20,20,20)
	box.BackgroundColor3 = Color3.fromRGB(240,240,240)
	box.Selectable = true
	box.TextEditable = false
	Instance.new("UICorner", box).CornerRadius = UDim.new(0,8)
	local closeBtn = Instance.new("TextButton", modal)
	closeBtn.Size = UDim2.new(0, 54, 0, 36)
	closeBtn.Position = UDim2.new(1, -66, 1, -46)
	closeBtn.Text = "Close"
	closeBtn.Font = Enum.Font.GothamBold
	closeBtn.TextSize = 14
	closeBtn.BackgroundColor3 = Color3.fromRGB(80,80,80)
	Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0,8)
	closeBtn.MouseButton1Click:Connect(function()
		modal:Destroy()
	end)
end

local function createEntry(soundId, ownerName, soundName)
	entriesCount = entriesCount + 1
	local entryFrame = Instance.new("Frame")
	entryFrame.Size = UDim2.new(1, -8, 0, ENTRY_HEIGHT)
	entryFrame.BackgroundColor3 = Color3.fromRGB(36,36,36)
	entryFrame.BorderSizePixel = 0
	entryFrame.Parent = scroll
	Instance.new("UICorner", entryFrame).CornerRadius = UDim.new(0,10)
	local left = Instance.new("Frame", entryFrame)
	left.Size = UDim2.new(0.7, -8, 1, 0)
	left.Position = UDim2.new(0, 8, 0, 0)
	left.BackgroundTransparency = 1
	local titleLabel = Instance.new("TextLabel", left)
	titleLabel.Size = UDim2.new(1, 0, 0.6, 0)
	titleLabel.Position = UDim2.new(0, 0, 0, 6)
	titleLabel.BackgroundTransparency = 1
	titleLabel.Text = (ownerName or "Unknown") .. " — " .. (soundName or "")
	titleLabel.TextXAlignment = Enum.TextXAlignment.Left
	titleLabel.TextSize = 14
	titleLabel.Font = Enum.Font.GothamBold
	titleLabel.TextColor3 = Color3.fromRGB(240,240,240)
	local idLabel = Instance.new("TextLabel", left)
	idLabel.Size = UDim2.new(1, 0, 0.4, 0)
	idLabel.Position = UDim2.new(0, 0, 0.6, -6)
	idLabel.BackgroundTransparency = 1
	idLabel.Text = tostring(soundId)
	idLabel.TextXAlignment = Enum.TextXAlignment.Left
	idLabel.TextSize = 13
	idLabel.Font = Enum.Font.Gotham
	idLabel.TextColor3 = Color3.fromRGB(200,200,200)
	local copyBtn = Instance.new("TextButton", entryFrame)
	copyBtn.Size = UDim2.new(0.28, -12, 0.78, 0)
	copyBtn.Position = UDim2.new(0.72, 6, 0.11, 0)
	copyBtn.Text = "Copy"
	copyBtn.Font = Enum.Font.GothamBold
	copyBtn.TextSize = 14
	copyBtn.TextColor3 = Color3.fromRGB(255,255,255)
	copyBtn.BackgroundColor3 = Color3.fromRGB(70,130,180)
	Instance.new("UICorner", copyBtn).CornerRadius = UDim.new(0,10)
	copyBtn.MouseButton1Click:Connect(function()
		local numericId = tostring(soundId):match("%d+") or tostring(soundId)
		local ok = pcall(function()
			if setclipboard then
				setclipboard(numericId)
			else
				error("no_setclipboard")
			end
		end)
		if ok then
			showToast("Copied ID: " .. numericId)
		else
			showManualCopyModal(numericId)
		end
	end)
end

btnClear.MouseButton1Click:Connect(function()
	for _,v in pairs(scroll:GetChildren()) do
		if v:IsA("Frame") then v:Destroy() end
	end
	lastSeen = {}
	entriesCount = 0
	scroll.CanvasSize = UDim2.new(0,0,0,0)
	showToast("Cleared")
end)

btnClose.MouseButton1Click:Connect(function()
	screenGui.Enabled = false
end)

btnCopyAll.MouseButton1Click:Connect(function()
	local ids = {}
	for _,v in pairs(scroll:GetChildren()) do
		if v:IsA("Frame") then
			for _,ch in pairs(v:GetDescendants()) do
				if ch:IsA("TextLabel") and ch.Text:match("%d+") and not ch.Name:match("Title") then
					local num = ch.Text:match("%d+")
					if num then table.insert(ids, num) end
					break
				end
			end
		end
	end
	if #ids == 0 then
		showToast("No IDs to copy")
		return
	end
	local all = table.concat(ids, "\n")
	local ok = pcall(function()
		if setclipboard then setclipboard(all) else error("no_setclipboard") end
	end)
	if ok then
		showToast("Copied all IDs")
	else
		showManualCopyModal(all)
	end
end)

local panelVisible = true
btnToggle.MouseButton1Click:Connect(function()
	panelVisible = not panelVisible
	content.Visible = panelVisible
	scroll.Visible = panelVisible
	btnToggle.Text = panelVisible and "Hide" or "Show"
end)

local dragging = false
local dragInput, dragStart, startPos

local function update(input)
	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

panel.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
		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragging = false
			end
		end)
	end
end)

panel.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)

local function findBoomboxOwner(sound)
	local cur = sound
	for i = 1, 6 do
		if not cur then break end
		if cur:IsA("Tool") then
			if cur.Name:lower():find("boom") then
				local char = cur.Parent
				if char and char:IsA("Model") then
					local p = Players:GetPlayerFromCharacter(char)
					if p then return p, cur end
				end
				return nil, cur
			end
		end
		cur = cur.Parent
	end
	return nil, nil
end

local function handlePotentialSound(sound)
	if not sound or not sound:IsA("Sound") then return end
	if not sound.SoundId or sound.SoundId == "" then return end
	local function tryAdd()
		local owner, source = findBoomboxOwner(sound)
		if not (owner or (source and tostring(source):lower():find("boom"))) then return end
		local ownerName = owner and owner.Name or (source and source.Name) or "Unknown"
		local key = tostring(sound.SoundId) .. "|" .. tostring(ownerName)
		local now = os.time()
		if lastSeen[key] and (now - lastSeen[key] < RECENT_IGNORE_SECONDS) then return end
		lastSeen[key] = now
		createEntry(sound.SoundId, ownerName, sound.Name)
	end
	if sound.IsPlaying then
		tryAdd()
	else
		local conn
		conn = sound:GetPropertyChangedSignal("IsPlaying"):Connect(function()
			if sound.IsPlaying then
				tryAdd()
				conn:Disconnect()
			end
		end)
	end
end

for _,v in pairs(workspace:GetDescendants()) do
	if v:IsA("Sound") and v.SoundId ~= "" then
		task.delay(0.05, function() handlePotentialSound(v) end)
	end
end

workspace.DescendantAdded:Connect(function(desc)
	if desc:IsA("Sound") then
		task.delay(0.05, function()
			pcall(function() handlePotentialSound(desc) end)
		end)
	end
end)

showToast("Boombox Tracker Active", 1.4)

Features & Information

Script boombox id tracker universal (Script created by ScriptBox)
#Universal

Community Comments (3)

pxrson999pxrson999Sep 3, 2025

nice script bro, keep up the good work!

Replying to @pxrson999
NullX_404NullX_404Sep 3, 2025

@pxrson999 FE?

Replying to @NullX_404
pxrson999pxrson999Sep 3, 2025

@NullX_404 not sure, just saw it and thought it was a nice script

More Scripts for Universal Scripts