Roblox AudioFinder
Key RequiredUniversal

Roblox AudioFinder

Universal Scriptkpykddo2kpykddo2 7.9K views 68 executesUpdated Jun 11, 2025
5.0/ 5(2 votes)
20100% Positive
Lua Script•237 lines (7618 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")

local playerGui = Players.LocalPlayer:WaitForChild("PlayerGui")
local intro = Instance.new("ScreenGui", playerGui)
intro.Name = "SoundFinderIntro"
intro.IgnoreGuiInset = true
intro.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

local bg = Instance.new("Frame", intro)
bg.Size = UDim2.new(1, 0, 1, 0)
bg.BackgroundColor3 = Color3.new(0, 0, 0)

local lbl = Instance.new("TextLabel", bg)
lbl.Size = UDim2.new(1, 0, 1, 0)
lbl.BackgroundTransparency = 1
lbl.TextColor3 = Color3.fromRGB(0, 170, 255)
lbl.TextStrokeTransparency = 0.4
lbl.Font = Enum.Font.GothamBlack
lbl.TextScaled = true
lbl.Text = ""

local function typewrite(text, speed)
    for i = 1, #text do
        lbl.Text = text:sub(1, i)
        task.wait(speed)
    end
end

task.spawn(function()
    typewrite("SoundFinder GUI Made by: K00pyK1d", 0.06)
    task.wait(1)
    typewrite("SoundFinder GUI Made by: K00pyK1d\nThis GUI is made for searching and previewing rare audio assets", 0.06)
    task.wait(2)
    for i = 1, 20 do
        bg.BackgroundTransparency = i / 20
        lbl.TextTransparency = i / 20
        lbl.TextStrokeTransparency = 0.4 + i / 50
        task.wait(0.05)
    end
    intro:Destroy()
end)

task.wait(4)

local gui = Instance.new("ScreenGui", playerGui)
gui.Name = "SoundFinderGui"
gui.ResetOnSpawn = false

local isMobile = UserInputService.TouchEnabled

local main = Instance.new("Frame", gui)
main.Name = "MainFrame"
main.Size = isMobile and UDim2.new(0.9, 0, 0.75, 0) or UDim2.new(0, 400, 0, 450)
main.Position = isMobile and UDim2.new(0.05, 0, 0.1, 0) or UDim2.new(0.5, -200, 0.5, -225)
main.AnchorPoint = isMobile and Vector2.new(0, 0) or Vector2.new(0.5, 0.5)
main.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
main.BorderSizePixel = 0
Instance.new("UICorner", main).CornerRadius = UDim.new(0, 10)

local bar = Instance.new("Frame", main)
bar.Size = UDim2.new(1, 0, 0, 30)
bar.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
bar.BorderSizePixel = 0

local title = Instance.new("TextLabel", bar)
title.Size = UDim2.new(1, -30, 1, 0)
title.Position = UDim2.new(0, 10, 0, 0)
title.BackgroundTransparency = 1
title.Text = "Sound Finder"
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.SourceSansBold
title.TextSize = 16
title.TextXAlignment = Enum.TextXAlignment.Left

local close = Instance.new("TextButton", bar)
close.Size = UDim2.new(0, 30, 1, 0)
close.Position = UDim2.new(1, -30, 0, 0)
close.Text = "X"
close.Font = Enum.Font.SourceSansBold
close.TextSize = 16
close.TextColor3 = Color3.new(1, 1, 1)
close.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
close.MouseButton1Click:Connect(function()
    gui:Destroy()
end)

if not isMobile then
    local dragging, dragStart, startPos
    bar.InputBegan:Connect(function(i)
        if i.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            dragStart = i.Position
            startPos = main.Position
            i.Changed:Connect(function()
                if i.UserInputState == Enum.UserInputState.End then
                    dragging = false
                end
            end)
        end
    end)
    local dragInput
    bar.InputChanged:Connect(function(i)
        if i.UserInputType == Enum.UserInputType.MouseMovement then
            dragInput = i
        end
    end)
    UserInputService.InputChanged:Connect(function(i)
        if dragging and i == dragInput then
            local delta = i.Position - dragStart
            main.Position = UDim2.new(
                startPos.X.Scale, startPos.X.Offset + delta.X,
                startPos.Y.Scale, startPos.Y.Offset + delta.Y
            )
        end
    end)
end

local searchBtn = Instance.new("TextButton", main)
searchBtn.Size = UDim2.new(0.9, 0, 0, 40)
searchBtn.Position = UDim2.new(0.05, 0, 0, 40)
searchBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 200)
searchBtn.Text = "Search Sounds"
searchBtn.Font = Enum.Font.SourceSansBold
searchBtn.TextSize = 18
searchBtn.TextColor3 = Color3.new(1, 1, 1)

local status = Instance.new("TextLabel", main)
status.Size = UDim2.new(0.9, 0, 0, 20)
status.Position = UDim2.new(0.05, 0, 0, 85)
status.BackgroundTransparency = 1
status.Text = "Ready..."
status.TextColor3 = Color3.fromRGB(200, 200, 200)
status.Font = Enum.Font.SourceSans
status.TextSize = 14
status.TextXAlignment = Enum.TextXAlignment.Left

local results = Instance.new("ScrollingFrame", main)
results.Size = UDim2.new(0.9, 0, 0, 280)
results.Position = UDim2.new(0.05, 0, 0, 115)
results.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
results.BorderSizePixel = 0
results.ScrollBarThickness = 8
results.AutomaticCanvasSize = Enum.AutomaticSize.Y

local layout = Instance.new("UIListLayout", results)
layout.Padding = UDim.new(0, 4)

local function extractId(str)
    return str:match("%d+")
end

local function addEntry(soundId, name)
    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(1, 0, 0, 60)
    frame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
    Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6)

    local nameLabel = Instance.new("TextLabel", frame)
    nameLabel.Size = UDim2.new(0.5, 0, 1, 0)
    nameLabel.Position = UDim2.new(0, 60, 0, 0)
    nameLabel.BackgroundTransparency = 1
    nameLabel.Text = name or ("Sound " .. soundId)
    nameLabel.TextColor3 = Color3.new(1, 1, 1)
    nameLabel.TextXAlignment = Enum.TextXAlignment.Left
    nameLabel.Font = Enum.Font.SourceSans
    nameLabel.TextSize = 14

    local playBtn = Instance.new("TextButton", frame)
    playBtn.Size = UDim2.new(0, 60, 0, 25)
    playBtn.Position = UDim2.new(1, -130, 0, 5)
    playBtn.Text = "Play ▶"
    playBtn.Font = Enum.Font.SourceSansBold
    playBtn.TextSize = 14
    playBtn.TextColor3 = Color3.new(1, 1, 1)
    playBtn.BackgroundColor3 = Color3.fromRGB(90, 90, 90)

    local soundObj = Instance.new("Sound", frame)
    soundObj.SoundId = "rbxassetid://" .. soundId

    playBtn.MouseButton1Click:Connect(function()
        if soundObj.IsPlaying then
            soundObj:Stop()
            playBtn.Text = "Play ▶"
        else
            soundObj:Play()
            playBtn.Text = "Stop ⏹"
        end
    end)

    local copyBtn = Instance.new("TextButton", frame)
    copyBtn.Size = UDim2.new(0, 60, 0, 25)
    copyBtn.Position = UDim2.new(1, -65, 0, 5)
    copyBtn.Text = "Copy"
    copyBtn.Font = Enum.Font.SourceSansBold
    copyBtn.TextSize = 14
    copyBtn.TextColor3 = Color3.new(1, 1, 1)
    copyBtn.BackgroundColor3 = Color3.fromRGB(90, 90, 90)
    copyBtn.MouseButton1Click:Connect(function()
        setclipboard("rbxassetid://" .. soundId)
        copyBtn.Text = "Copied!"
        task.wait(1)
        copyBtn.Text = "Copy"
    end)

    frame.Parent = results
end

searchBtn.MouseButton1Click:Connect(function()
    status.Text = "Searching sounds..."
    searchBtn.Text = "Searching..."
    searchBtn.BackgroundColor3 = Color3.fromRGB(200, 150, 60)

    for _, child in ipairs(results:GetChildren()) do
        if child:IsA("Frame") then
            child:Destroy()
        end
    end

    local seen = {}
    local count = 0

    for _, inst in ipairs(game:GetDescendants()) do
        if inst:IsA("Sound") then
            local id = extractId(inst.SoundId)
            if id and not seen[id] then
                seen[id] = true
                count += 1
                addEntry(id, inst.Name)
            end
        end
    end

    status.Text = ("Done! Found %d sounds."):format(count)
    searchBtn.Text = "Search Again"
    searchBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 200)
end)

Features & Information

Detects every Audio in game - detects from Workspace Players and other - Smart System detector - Advanced Gui
#Audio#Detect#xD

Community Comments (2)

kpykddo2kpykddo2Jun 11, 2025

Dang this guy send whole data of the screen

QuangVietQuangVietJun 27, 2025

Can you add save sound

More Scripts for Universal Scripts