AllMusicSearchTools
Key RequiredUniversal

AllMusicSearchTools

Universal ScriptGodScriptorGodScriptor 268 views 302 executesUpdated Oct 8, 2026
Unrated
00
Lua Script•596 lines (16854 chars)
local Players = game:GetService("Players")
local SoundService = game:GetService("SoundService")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local MarketplaceService = game:GetService("MarketplaceService")

local player = Players.LocalPlayer

local parentGui = player:WaitForChild("PlayerGui")
pcall(function()
	local coreGui = game:GetService("CoreGui")
	if coreGui then parentGui = coreGui end
end)

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "Uhhhhhh_SoundTracker_WithIntro"
screenGui.ResetOnSpawn = false
screenGui.DisplayOrder = 2147483647
screenGui.Parent = parentGui

local previewSound = Instance.new("Sound")
previewSound.Name = "PreviewSound"
previewSound.Volume = 1
previewSound.Parent = SoundService

local introMusic = Instance.new("Sound")
introMusic.Name = "IntroMusic"
introMusic.SoundId = "rbxassetid://1837879082" 
introMusic.Volume = 0.5
introMusic.Looped = true
introMusic.Parent = SoundService
introMusic:Play()

local forceMuteAll = false
local introStarted = false

local StylizedObjs = {}

local function Stylize(obj, isStatic)
	local corner = Instance.new("UICorner", obj)
	corner.CornerRadius = UDim.new(0, 5)
	
	local stroke = Instance.new("UIStroke", obj)
	stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
	stroke.LineJoinMode = Enum.LineJoinMode.Round
	stroke.Thickness = 1
	stroke.Transparency = 0
	stroke.Enabled = true
	
	if not isStatic then
		stroke.Color = Color3.new(1, 1, 1)
		table.insert(StylizedObjs, {obj = obj, stroke = stroke})
	else
		stroke.Color = Color3.fromRGB(80, 80, 80)
	end
end

local function GetUIColor(t)
	return Color3.fromHSV((t / 10) % 1, 0.8, 1)
end

local function GetUIBGColor(t)
	return Color3.new(0.05, 0.05, 0.05)
end

local function showSuccessNotification()
	local existing = screenGui:FindFirstChild("CopySuccessNotif")
	if existing then existing:Destroy() end

	local notif = Instance.new("Frame")
	notif.Name = "CopySuccessNotif"
	notif.AnchorPoint = Vector2.new(0.5, 0)
	notif.Position = UDim2.new(0.5, 0, 0, 30)
	notif.Size = UDim2.new(0, 0, 0, 4) 
	notif.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
	notif.BorderSizePixel = 0
	notif.ClipsDescendants = true
	notif.ZIndex = 100
	notif.Parent = screenGui
	Stylize(notif, true)

	task.spawn(function()
		local t1 = TweenService:Create(notif, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(0, 160, 0, 4)})
		t1:Play()
		t1.Completed:Wait()

		local t2 = TweenService:Create(notif, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 160, 0, 40)})
		t2:Play()
		t2.Completed:Wait()

		local txt = Instance.new("TextLabel")
		txt.Size = UDim2.new(1, 0, 1, 0)
		txt.BackgroundTransparency = 1
		txt.Font = Enum.Font.Code
		txt.TextColor3 = Color3.fromRGB(100, 255, 100)
		txt.TextSize = 18
		txt.Text = "success"
		txt.TextTransparency = 1
		txt.ZIndex = 101
		txt.Parent = notif

		TweenService:Create(txt, TweenInfo.new(0.2), {TextTransparency = 0}):Play()

		task.wait(3)

		if notif.Parent then
			local t3 = TweenService:Create(notif, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Size = UDim2.new(0, 0, 0, 0), BackgroundTransparency = 1})
			TweenService:Create(txt, TweenInfo.new(0.2), {TextTransparency = 1}):Play()
			t3:Play()
			t3.Completed:Wait()
			notif:Destroy()
		end
	end)
end

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 420, 0, 300)
mainFrame.Position = UDim2.new(0.5, -210, 0.5, -150)
mainFrame.BackgroundColor3 = Color3.new(0, 0, 0)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.ZIndex = 1
mainFrame.Parent = screenGui
Stylize(mainFrame)

local topBar = Instance.new("Frame")
topBar.Size = UDim2.new(1, 0, 0, 30)
topBar.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1)
topBar.BorderSizePixel = 0
topBar.ZIndex = 2
topBar.Parent = mainFrame
Stylize(topBar)

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -190, 1, 0)
title.Position = UDim2.new(0, 10, 0, 0)
title.BackgroundTransparency = 1
title.Font = Enum.Font.Code
title.TextColor3 = Color3.new(1, 1, 1)
title.TextSize = 15
title.TextXAlignment = Enum.TextXAlignment.Left
title.Text = "SoundTracker | Uhhhhhh Theme"
title.ZIndex = 3
title.Parent = topBar

local stopPreviewBtn = Instance.new("TextButton")
stopPreviewBtn.Size = UDim2.new(0, 170, 1, -10)
stopPreviewBtn.Position = UDim2.new(1, -175, 0, 5)
stopPreviewBtn.BackgroundColor3 = Color3.fromRGB(150, 40, 40)
stopPreviewBtn.TextColor3 = Color3.new(1, 1, 1)
stopPreviewBtn.Font = Enum.Font.Code
stopPreviewBtn.TextSize = 12
stopPreviewBtn.Text = "Now Playing Sound Off"
stopPreviewBtn.ZIndex = 3
stopPreviewBtn.Parent = topBar
Stylize(stopPreviewBtn)

local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(1, -10, 1, -40)
scroll.Position = UDim2.new(0, 5, 0, 35)
scroll.BackgroundTransparency = 1
scroll.BorderSizePixel = 0
scroll.ScrollBarThickness = 4
scroll.ScrollBarImageColor3 = Color3.new(1, 1, 1)
scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
scroll.ZIndex = 2
scroll.Parent = mainFrame

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

local layoutUpdateDebounce = false
listLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
	if not layoutUpdateDebounce then
		layoutUpdateDebounce = true
		task.defer(function()
			scroll.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y)
			layoutUpdateDebounce = false
		end)
	end
end)

local introFrame = Instance.new("Frame")
introFrame.Size = UDim2.new(0, 420, 0, 300)
introFrame.Position = UDim2.new(0.5, -210, 0.5, -150)
introFrame.BackgroundColor3 = Color3.new(0, 0, 0)
introFrame.BorderSizePixel = 0
introFrame.Active = true
introFrame.ZIndex = 10
introFrame.Parent = screenGui
Stylize(introFrame)

local logoGlow = Instance.new("ImageLabel")
logoGlow.Size = UDim2.new(0, 180, 0, 180)
logoGlow.Position = UDim2.new(0.5, -90, 0.5, -110)
logoGlow.BackgroundTransparency = 1
logoGlow.Image = "rbxassetid://91433302659934"
logoGlow.ImageTransparency = 0.5
logoGlow.ZIndex = 11
logoGlow.Parent = introFrame

local logo = Instance.new("ImageLabel")
logo.Size = UDim2.new(0, 150, 0, 150)
logo.Position = UDim2.new(0.5, -75, 0.5, -95)
logo.BackgroundTransparency = 1
logo.Image = "rbxassetid://91433302659934"
logo.ZIndex = 12
logo.Parent = introFrame

local introTitle = Instance.new("TextLabel")
introTitle.Size = UDim2.new(1, 0, 0, 30)
introTitle.Position = UDim2.new(0, 0, 1, -80)
introTitle.BackgroundTransparency = 1
introTitle.Font = Enum.Font.Code
introTitle.TextColor3 = Color3.new(1, 1, 1)
introTitle.TextSize = 22
introTitle.Text = "SoundTracker Reanimate"
introTitle.ZIndex = 12
introTitle.Parent = introFrame

local startText = Instance.new("TextLabel")
startText.Size = UDim2.new(1, 0, 0, 20)
startText.Position = UDim2.new(0, 0, 1, -40)
startText.BackgroundTransparency = 1
startText.Font = Enum.Font.Code
startText.TextColor3 = Color3.new(1, 1, 1)
startText.TextSize = 16
startText.Text = "Click me to start!"
startText.ZIndex = 12
startText.Parent = introFrame

local startBtn = Instance.new("TextButton")
startBtn.Size = UDim2.new(1, 0, 1, 0)
startBtn.BackgroundTransparency = 1
startBtn.Text = ""
startBtn.ZIndex = 15
startBtn.Parent = introFrame

local function setIntroMusicMuted(muted)
	if introStarted then return end
	local targetVolume = muted and 0 or 0.5
	TweenService:Create(introMusic, TweenInfo.new(0.5), {Volume = targetVolume}):Play()
end

startBtn.MouseButton1Click:Connect(function()
	if introStarted then return end
	introStarted = true
	
	TweenService:Create(introMusic, TweenInfo.new(0.5), {Volume = 0}):Play()
	task.delay(0.5, function()
		introMusic:Stop()
	end)
	
	TweenService:Create(introFrame, TweenInfo.new(0.6, Enum.EasingStyle.Cubic, Enum.EasingDirection.In), {
		Position = UDim2.new(0.5, -210, 0.5, 400),
		BackgroundTransparency = 1
	}):Play()
	
	for _, v in pairs(introFrame:GetChildren()) do
		if v:IsA("GuiObject") then
			TweenService:Create(v, TweenInfo.new(0.4), {Transparency = 1}):Play()
		end
	end
	
	task.delay(0.6, function()
		introFrame.Visible = false
	end)
end)

local dragging, dragInput, dragStart, startPos
topBar.InputBegan:Connect(function(input)
	if introFrame.Visible then return end
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		if input.Position.Y > topBar.AbsolutePosition.Y + 25 then return end
		dragging = true
		dragStart = input.Position
		startPos = mainFrame.Position
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
		dragInput = input
	end
end)

UserInputService.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = false
		dragInput = nil
	end
end)

local soundData = {}
local idUiMap = {}
local soundConnections = {}
local currentlyPlayingId = nil
local uiQueue = {}
local checkQueue = {}
local statusCache = {}

task.spawn(function()
	while true do
		if #checkQueue > 0 then
			local data = table.remove(checkQueue, 1)
			local id, numId = data.id, data.numId
			
			local success, info = pcall(function()
				return MarketplaceService:GetProductInfo(numId)
			end)
			
			if success and info then
				if info.Creator.Id == 1 or info.IsPublicDomain then
					statusCache[id] = "Usable"
				else
					statusCache[id] = "Private"
				end
			else
				statusCache[id] = "Error"
			end
			
			if idUiMap[id] and idUiMap[id].lbl then
				local lbl = idUiMap[id].lbl
				lbl.Text = statusCache[id]
				if statusCache[id] == "Usable" then
					lbl.TextColor3 = Color3.fromRGB(100, 255, 100)
				elseif statusCache[id] == "Private" then
					lbl.TextColor3 = Color3.fromRGB(255, 100, 100)
				else
					lbl.TextColor3 = Color3.fromRGB(255, 200, 100)
				end
			end
			task.wait(0.2)
		else
			task.wait(0.5)
		end
	end
end)

stopPreviewBtn.MouseButton1Click:Connect(function()
	forceMuteAll = true
	
	if currentlyPlayingId then
		previewSound:Stop()
		if idUiMap[currentlyPlayingId] then
			idUiMap[currentlyPlayingId].btn.Text = "▶"
			idUiMap[currentlyPlayingId].btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
		end
		currentlyPlayingId = nil
	end
	
	setIntroMusicMuted(false)
	
	for sound, _ in pairs(soundConnections) do
		if sound:IsA("Sound") and sound ~= introMusic and sound ~= previewSound then
			pcall(function()
				sound:Stop()
				sound.Volume = 0
			end)
		end
	end
end)

previewSound.Ended:Connect(function()
	if currentlyPlayingId and idUiMap[currentlyPlayingId] then
		idUiMap[currentlyPlayingId].btn.Text = "▶"
		idUiMap[currentlyPlayingId].btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
	end
	currentlyPlayingId = nil
	setIntroMusicMuted(false)
end)

local function addSoundId(id, name)
	if id == "" then return end
	if soundData[id] then
		soundData[id] += 1
		return
	end
	
	soundData[id] = 1
	
	local numId = tonumber(string.match(id, "%d+"))
	if not numId then
		statusCache[id] = "Error"
	else
		if not statusCache[id] then
			statusCache[id] = "Checking"
			table.insert(checkQueue, {id = id, numId = numId})
		end
	end
	
	table.insert(uiQueue, {id = id, name = name})
end

local function createUIForSound(id, name)
	if not soundData[id] or soundData[id] <= 0 or idUiMap[id] then return end

	local itemFrame = Instance.new("Frame")
	itemFrame.Size = UDim2.new(1, 0, 0, 30)
	itemFrame.BackgroundTransparency = 1
	itemFrame.ZIndex = 2
	itemFrame.Parent = scroll

	local playBtn = Instance.new("TextButton")
	playBtn.Size = UDim2.new(0, 30, 1, 0)
	playBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
	playBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
	playBtn.Text = "▶"
	playBtn.Font = Enum.Font.Code
	playBtn.TextSize = 14
	playBtn.ZIndex = 3
	playBtn.Parent = itemFrame
	Stylize(playBtn, true)

	local status = statusCache[id] or "Error"
	
	local usableLbl = Instance.new("TextLabel")
	usableLbl.Size = UDim2.new(0, 70, 1, 0)
	usableLbl.Position = UDim2.new(1, -70, 0, 0)
	usableLbl.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
	usableLbl.Font = Enum.Font.Code
	usableLbl.TextSize = 12
	usableLbl.ZIndex = 3
	usableLbl.Text = status
	usableLbl.Parent = itemFrame
	Stylize(usableLbl, true)

	if status == "Usable" then
		usableLbl.TextColor3 = Color3.fromRGB(100, 255, 100)
	elseif status == "Private" then
		usableLbl.TextColor3 = Color3.fromRGB(255, 100, 100)
	elseif status == "Checking" then
		usableLbl.TextColor3 = Color3.fromRGB(200, 200, 200)
	else
		usableLbl.TextColor3 = Color3.fromRGB(255, 200, 100)
	end

	local textBox = Instance.new("TextBox")
	textBox.Size = UDim2.new(1, -105, 1, 0)
	textBox.Position = UDim2.new(0, 33, 0, 0)
	textBox.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
	textBox.TextColor3 = Color3.fromRGB(200, 255, 200)
	textBox.Text = string.format(" %s | %s", name, id)
	textBox.Font = Enum.Font.Code
	textBox.TextSize = 13
	textBox.TextXAlignment = Enum.TextXAlignment.Left
	textBox.ClearTextOnFocus = false
	textBox.TextEditable = false
	textBox.ZIndex = 3
	textBox.Parent = itemFrame
	Stylize(textBox, true)
	
	textBox.Focused:Connect(function()
		textBox:ReleaseFocus()
		if setclipboard then
			pcall(setclipboard, tostring(id))
		end
		showSuccessNotification()
	end)

	idUiMap[id] = { frame = itemFrame, btn = playBtn, lbl = usableLbl }

	playBtn.MouseButton1Click:Connect(function()
		if currentlyPlayingId == id then
			previewSound:Stop()
			playBtn.Text = "▶"
			playBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
			currentlyPlayingId = nil
			setIntroMusicMuted(false)
		else
			if currentlyPlayingId and idUiMap[currentlyPlayingId] then
				idUiMap[currentlyPlayingId].btn.Text = "▶"
				idUiMap[currentlyPlayingId].btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
			end
			
			previewSound:Stop()
			previewSound.SoundId = id
			previewSound.Volume = 1
			previewSound:Play()
			
			playBtn.Text = "■"
			playBtn.BackgroundColor3 = Color3.fromRGB(150, 40, 40)
			currentlyPlayingId = id
			setIntroMusicMuted(true)
		end
	end)
end

local function removeSoundId(id)
	if not soundData[id] then return end
	soundData[id] -= 1
	if soundData[id] <= 0 then
		soundData[id] = nil
		if currentlyPlayingId == id then
			previewSound:Stop()
			currentlyPlayingId = nil
			setIntroMusicMuted(false)
		end
		if idUiMap[id] then
			idUiMap[id].frame:Destroy()
			idUiMap[id] = nil
		end
	end
end

local function onSoundAdded(sound)
	if not sound:IsA("Sound") then return end
	
	if forceMuteAll and sound ~= introMusic and sound ~= previewSound then
		pcall(function()
			sound.Volume = 0
			sound:Stop()
		end)
	end
	
	local currentId = sound.SoundId
	addSoundId(currentId, sound.Name)

	if not soundConnections[sound] then
		soundConnections[sound] = sound:GetPropertyChangedSignal("SoundId"):Connect(function()
			removeSoundId(currentId)
			currentId = sound.SoundId
			addSoundId(currentId, sound.Name)
		end)
	end
end

local function onSoundRemoved(sound)
	if not sound:IsA("Sound") then return end
	removeSoundId(sound.SoundId)
	if soundConnections[sound] then
		soundConnections[sound]:Disconnect()
		soundConnections[sound] = nil
	end
end

RunService.RenderStepped:Connect(function()
	local t = os.clock()
	local c = GetUIColor(t)
	local bgc = GetUIBGColor(t)
	
	for _, data in pairs(StylizedObjs) do
		data.stroke.Color = c
		if data.obj:IsA("Frame") or data.obj:IsA("ScrollingFrame") then
			data.obj.BackgroundColor3 = bgc
		end
	end
	
	if introFrame.Visible then
		logo.Rotation = (t * 60) % 360
		logoGlow.Rotation = logo.Rotation
		logoGlow.ImageColor3 = c
		startText.TextTransparency = (math.sin(t * 5) + 1) / 2
	end
	
	if dragging and dragInput then
		local delta = dragInput.Position - dragStart
		mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end

	local count = 0
	while #uiQueue > 0 and count < 8 do
		local data = table.remove(uiQueue, 1)
		createUIForSound(data.id, data.name)
		count = count + 1
	end
end)

local targetServices = {
	game:GetService("Workspace"),
	SoundService,
	game:GetService("ReplicatedStorage"),
	game:GetService("ReplicatedFirst"),
	game:GetService("Lighting"),
	player
}

task.spawn(function()
	for _, service in ipairs(targetServices) do
		local s, descendants = pcall(function() return service:GetDescendants() end)
		if s and descendants then
			for i, desc in ipairs(descendants) do
				onSoundAdded(desc)
				if i % 1000 == 0 then task.wait() end
			end
		end
		
		pcall(function()
			service.DescendantAdded:Connect(onSoundAdded)
			service.DescendantRemoving:Connect(onSoundRemoved)
		end)
	end
end)

Features & Information

You can view the sounds used in all Roblox games. Since this tool uses CoreUi, there are no security-related UI removals or kicks. Features: Play music, click on a music ID to copy it, and check if the music is public. We hope this helps you achieve what you’ve always wanted to do.
#Sound#SoundChecker#Roblox#HappyTools#Free

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts