All content on our site is free and will always be free.

Please consider supporting us with disabling your AdBlock software and to gain access to thousands of free content!

Not sure how to disable AdBLock? Follow this tutorial: How to disable AdBlock

Get the Audio Logger

The Audio Logger code is below. Copy & inject it into the game. Enjoy!

aa = game:GetObjects("rbxassetid://01997056190")[1]
aa.Parent = game.CoreGui
wait(0.2)
GUI = aa.PopupFrame.PopupFrame
pos = 0

ignore = {
 "rbxasset://sounds/action_get_up.mp3",
 "rbxasset://sounds/uuhhh.mp3",
 "rbxasset://sounds/action_falling.mp3",
 "rbxasset://sounds/action_jump.mp3",
 "rbxasset://sounds/action_jump_land.mp3",
 "rbxasset://sounds/impact_water.mp3",
 "rbxasset://sounds/action_swim.mp3",
 "rbxasset://sounds/action_footsteps_plastic.mp3"
}

GUI.Close.MouseButton1Click:connect(function()
 GUI:TweenSize(UDim2.new(0, 360, 0, 0),"Out","Quad",0.5,true) wait(0.6)
 GUI.Parent:TweenSize(UDim2.new(0, 0, 0, 20),"Out","Quad",0.5,true) wait(0.6)
 aa:Destroy()
end)

local min = false
GUI.Minimize.MouseButton1Click:connect(function()
 if min == false then
  GUI:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true) min = true
 else
  GUI:TweenSize(UDim2.new(0, 360, 0, 260),"Out","Quad",0.5,true) min = false
 end
end)

function printTable(tbl)
 if type(tbl) ~= 'table' then return nil end
 local depthCount = -15

 local function run(val, inPrefix)
  depthCount = depthCount + 15
  -- if inPrefix then print(string.rep(' ', depthCount) .. '{') end
  for i,v in pairs(val) do
   if type(v) == 'table' then
    -- print(string.rep(' ', depthCount) .. ' [' .. tostring(i) .. '] = {')
    GUI.Store.Text = GUI.Store.Text..'\n'..string.rep(' ', depthCount) .. ' [' .. tostring(i) .. '] = {'
    run(v, false)
    wait()
   else
    -- print(string.rep(' ', depthCount) .. ' [' .. tostring(i) .. '] = ' .. tostring(v))
    GUI.Store.Text = GUI.Store.Text..'\n'..string.rep(' ', depthCount) .. ' [' .. tostring(i) .. '] = ' .. tostring(v)
    wait()
   end
  end
  -- print(string.rep(' ', depthCount) .. '}')
  depthCount = depthCount - 15
 end
 run(tbl, true)
end

function refreshlist()
 pos = 0
 GUI.Logs.CanvasSize = UDim2.new(0,0,0,0)
 for i,v in pairs(GUI.Logs:GetChildren()) do
  v.Position = UDim2.new(0,0,0, pos)
  GUI.Logs.CanvasSize = UDim2.new(0,0,0, pos+20)
  pos = pos+20
 end
end

function FindTable(Table, Name)
 for i,v in pairs(Table) do
  if v == Name then
   return true
  end end
 return false
end

function writefileExploit()
 if writefile then
  return true
 end
end

writeaudio = {}
running = false
GUI.SS.MouseButton1Click:connect(function()
 if writefileExploit() then
  if running == false then
   GUI.Load.Visible = true running = true
   GUI.Load:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true) wait(0.3)
   for _, child in pairs(GUI.Logs:GetChildren()) do
    if child:FindFirstChild('ImageButton') then local bttn = child:FindFirstChild('ImageButton')
     if bttn.BackgroundTransparency == 0 then
      writeaudio[#writeaudio + 1] = {NAME = child.NAME.Value, ID = child.ID.Value}
     end
    end
   end
   GUI.Store.Visible = true
   printTable(writeaudio)
   wait(0.2)
   local filename = 0
   local function write()
    local file
    pcall(function() file = readfile("Audios"..filename..".txt") end)
    if file then
     filename = filename+1
     write()
    else
     local text = tostring(GUI.Store.Text)
     text = text:gsub('\n', '\r\n')
     writefile("Audios"..filename..".txt", text)
    end
   end
   write()
   for rep = 1,10 do
   GUI.Load.BackgroundTransparency = GUI.Load.BackgroundTransparency + 0.1
   wait(0.05)
   end
   GUI.Load.Visible = false
   GUI.Load.BackgroundTransparency = 0
   GUI.Load.Size = UDim2.new(0, 0, 0, 20)
   running = false
   GUI.Store.Visible = false
   GUI.Store.Text = ''
   writeaudio = {}
   game:FindService('StarterGui'):SetCore('SendNotification', {
    Title = 'Audio Logger',
    Text = 'Saved audios\n(Audios'..filename..'.txt)',
    Icon = 'http://www.roblox.com/asset/?id=176572847',
    Duration = 5,
   })
  end
 else
  game:FindService('StarterGui'):SetCore('SendNotification', {
   Title = 'Audio Logger',
   Text = 'Exploit cannot writefile :(',
   Icon = 'http://www.roblox.com/asset/?id=176572847',
   Duration = 5,
  })
 end
end)

GUI.SA.MouseButton1Click:connect(function()
 if writefileExploit() then
  if running == false then
   GUI.Load.Visible = true running = true
   GUI.Load:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true) wait(0.3)
   for _, child in pairs(GUI.Logs:GetChildren()) do
    writeaudio[#writeaudio + 1] = {NAME = child.NAME.Value, ID = child.ID.Value}
   end
   GUI.Store.Visible = true
   printTable(writeaudio)
   wait(0.2)
   local filename = 0
   local function write()
    local file
    pcall(function() file = readfile("Audios"..filename..".txt") end)
    if file then
     filename = filename+1
     write()
    else
     local text = tostring(GUI.Store.Text)
     text = text:gsub('\n', '\r\n')
     writefile("Audios"..filename..".txt", text)
    end
   end
   write()
   for rep = 1,10 do
    GUI.Load.BackgroundTransparency = GUI.Load.BackgroundTransparency + 0.1
    wait(0.05)
   end
   GUI.Load.Visible = false
   GUI.Load.BackgroundTransparency = 0
   GUI.Load.Size = UDim2.new(0, 0, 0, 20)
   running = false
   GUI.Store.Visible = false
   GUI.Store.Text = ''
   writeaudio = {}
   game:FindService('StarterGui'):SetCore('SendNotification', {
    Title = 'Audio Logger',
    Text = 'Saved audios\n(Audios'..filename..'.txt)',
    Icon = 'http://www.roblox.com/asset/?id=176572847',
    Duration = 5,
   })
  end
 else
  game:FindService('StarterGui'):SetCore('SendNotification', {
   Title = 'Audio Logger',
   Text = 'Exploit cannot writefile :(',
   Icon = 'http://www.roblox.com/asset/?id=176572847',
   Duration = 5,
  })
 end
end)

selectedaudio = nil
function getaudio(place)
 if running == false then
  GUI.Load.Visible = true running = true
  GUI.Load:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true) wait(0.3)
  for _, child in pairs(place:GetDescendants()) do
   spawn(function()
    if child:IsA("Sound") and not GUI.Logs:FindFirstChild(child.SoundId) and not FindTable(ignore,child.SoundId) then
     local id = string.match(child.SoundId, "rbxasset://sounds.+") or string.match(child.SoundId, "&hash=.+") or string.match(child.SoundId, "%d+")
     if id ~= nil then  
      local newsound = GUI.Audio:Clone()
      if string.sub(id, 1, 6) == "&hash=" or string.sub(id, 1, 7) == "&0hash=" then
       id = string.sub(id, (string.sub(id, 1, 6) == "&hash=" and 7) or (string.sub(id, 1, 7) == "&0hash=" and 8), string.len(id))
       newsound.ImageButton.Image = 'rbxassetid://1453863294'
      end
      newsound.Parent = GUI.Logs
      newsound.Name = child.SoundId
      newsound.Visible = true
      newsound.Position = UDim2.new(0,0,0, pos)
      GUI.Logs.CanvasSize = UDim2.new(0,0,0, pos+20)
      pos = pos+20
      local function findname()
       Asset = game:GetService("MarketplaceService"):GetProductInfo(id)
      end
      local audioname = 'error'
      local success, message = pcall(findname)
      if success then
          newsound.TextLabel.Text = Asset.Name
       audioname = Asset.Name
      else
       newsound.TextLabel.Text = child.Name
       audioname = child.Name
      end
      local data = Instance.new('StringValue') data.Parent = newsound data.Value = child.SoundId data.Name = 'ID'
      local data2 = Instance.new('StringValue') data2.Parent = newsound data2.Value = audioname data2.Name = 'NAME'
      local soundselected = false
      newsound.ImageButton.MouseButton1Click:Connect(function()
       if GUI.Info.Visible ~= true then
        if soundselected == false then soundselected = true
         newsound.ImageButton.BackgroundTransparency = 0
        else soundselected = false
         newsound.ImageButton.BackgroundTransparency = 1
        end
       end
      end)
      newsound.Click.MouseButton1Click:Connect(function()
       if GUI.Info.Visible ~= true then
        GUI.Info.TextLabel.Text = "Name: " ..audioname.. "\n\nID: " .. child.SoundId .. "\n\nWorkspace Name: " .. child.Name
        selectedaudio = child.SoundId
        GUI.Info.Visible = true
       end
      end)
     end
    end
   end)
  end
 end
 for rep = 1,10 do
  GUI.Load.BackgroundTransparency = GUI.Load.BackgroundTransparency + 0.1
  wait(0.05)
 end
 GUI.Load.Visible = false
 GUI.Load.BackgroundTransparency = 0
 GUI.Load.Size = UDim2.new(0, 0, 0, 20)
 running = false
end

GUI.All.MouseButton1Click:connect(function() getaudio(game)end)
GUI.Workspace.MouseButton1Click:connect(function() getaudio(workspace)end)
GUI.Lighting.MouseButton1Click:connect(function() getaudio(game:GetService('Lighting'))end)
GUI.SoundS.MouseButton1Click:connect(function() getaudio(game:GetService('SoundService'))end)
GUI.Clr.MouseButton1Click:connect(function()
 for _, child in pairs(GUI.Logs:GetChildren()) do
  if child:FindFirstChild('ImageButton') then local bttn = child:FindFirstChild('ImageButton')
   if bttn.BackgroundTransparency == 1 then
    bttn.Parent:Destroy()
    refreshlist()
   end
  end
 end
end)
GUI.ClrS.MouseButton1Click:connect(function()
 for _, child in pairs(GUI.Logs:GetChildren()) do
  if child:FindFirstChild('ImageButton') then local bttn = child:FindFirstChild('ImageButton')
   if bttn.BackgroundTransparency == 0 then
    bttn.Parent:Destroy()
    refreshlist()
   end
  end
 end
end)
autoscan = false
GUI.AutoScan.MouseButton1Click:connect(function()
 if autoscan == false then autoscan = true
  GUI.AutoScan.BackgroundTransparency = 0.5
  game:FindService('StarterGui'):SetCore('SendNotification', {
   Title = 'Audio Logger',
   Text = 'Auto Scan ENABLED',
   Icon = 'http://www.roblox.com/asset/?id=176572847',
   Duration = 5,
  })
 else autoscan = false
  GUI.AutoScan.BackgroundTransparency = 0
  game:FindService('StarterGui'):SetCore('SendNotification', {
   Title = 'Audio Logger',
   Text = 'Auto Scan DISABLED',
   Icon = 'http://www.roblox.com/asset/?id=176572847',
   Duration = 5,
  })
 end
end)

game.DescendantAdded:connect(function(added)
 wait()
 if autoscan == true and added:IsA('Sound') and not GUI.Logs:FindFirstChild(added.SoundId) and not FindTable(ignore,added.SoundId) then
  local id = string.match(added.SoundId, "rbxasset://sounds.+") or string.match(added.SoundId, "&hash=.+") or string.match(added.SoundId, "%d+")
  if id ~= nil then  
   local newsound = GUI.Audio:Clone()
    if string.sub(id, 1, 6) == "&hash=" or string.sub(id, 1, 7) == "&0hash=" then
     id = string.sub(id, (string.sub(id, 1, 6) == "&hash=" and 7) or (string.sub(id, 1, 7) == "&0hash=" and 8), string.len(id))
     newsound.ImageButton.Image = 'rbxassetid://1453863294'
    end
    local scrolldown = false
    newsound.Parent = GUI.Logs
    newsound.Name = added.SoundId
    newsound.Visible = true
    newsound.Position = UDim2.new(0,0,0, pos)
    if GUI.Logs.CanvasPosition.Y == GUI.Logs.CanvasSize.Y.Offset - 230 then
     scrolldown = true
    end
    GUI.Logs.CanvasSize = UDim2.new(0,0,0, pos+20)
    pos = pos+20
    local function findname()
     Asset = game:GetService("MarketplaceService"):GetProductInfo(id)
    end
    local audioname = 'error'
    local success, message = pcall(findname)
    if success then
        newsound.TextLabel.Text = Asset.Name
     audioname = Asset.Name
    else 
     newsound.TextLabel.Text = added.Name
     audioname = added.Name
    end
    local data = Instance.new('StringValue') data.Parent = newsound data.Value = added.SoundId data.Name = 'ID'
    local data2 = Instance.new('StringValue') data2.Parent = newsound data2.Value = audioname data2.Name = 'NAME'
    local soundselected = false
    newsound.ImageButton.MouseButton1Click:Connect(function()
     if GUI.Info.Visible ~= true then
      if soundselected == false then soundselected = true
       newsound.ImageButton.BackgroundTransparency = 0
      else soundselected = false
       newsound.ImageButton.BackgroundTransparency = 1
      end
     end
    end)
    newsound.Click.MouseButton1Click:Connect(function()
     if GUI.Info.Visible ~= true then
      GUI.Info.TextLabel.Text = "Name: " ..audioname.. "\n\nID: " .. added.SoundId .. "\n\nWorkspace Name: " .. added.Name
      selectedaudio = added.SoundId
      GUI.Info.Visible = true
     end
    end)
    --230'
   if scrolldown == true then
    GUI.Logs.CanvasPosition = Vector2.new(0, 9999999999999999999999999999999999999999999, 0, 0)
   end
  end
 end
end)

GUI.Info.Copy.MouseButton1Click:Connect(function()
 if pcall(function() Synapse:Copy(selectedaudio) end) then 
 else
  local clip = setclipboard or Clipboard.set
  clip(selectedaudio)
 end
 game:FindService('StarterGui'):SetCore('SendNotification', {
  Title = 'Audio Logger',
  Text = 'Copied to clipboard',
  Icon = 'http://www.roblox.com/asset/?id=176572847',
  Duration = 5,
 })
end)

GUI.Info.Close.MouseButton1Click:Connect(function()
 GUI.Info.Visible = false
 for _, sound in pairs(game:GetService('Players').LocalPlayer.PlayerGui:GetChildren()) do
  if sound.Name == 'SampleSound' then
   sound:Destroy()
  end
 end
 GUI.Info.Listen.Text = 'Listen'
end)

GUI.Info.Listen.MouseButton1Click:Connect(function()
 if GUI.Info.Listen.Text == 'Listen' then
  local samplesound = Instance.new('Sound') samplesound.Parent = game:GetService('Players').LocalPlayer.PlayerGui
  samplesound.Looped = true samplesound.SoundId = selectedaudio samplesound:Play() samplesound.Name = 'SampleSound'
  samplesound.Volume = 5
  GUI.Info.Listen.Text = 'Stop'
 else
  for _, sound in pairs(game:GetService('Players').LocalPlayer.PlayerGui:GetChildren()) do
   if sound.Name == 'SampleSound' then
    sound:Destroy()
   end
  end
  GUI.Info.Listen.Text = 'Listen'
 end
end)

function drag(gui)
 spawn(function()
  local UserInputService = game:GetService("UserInputService")
  local dragging
  local dragInput
  local dragStart
  local startPos
  local function update(input)
   local delta = input.Position - dragStart
   gui:TweenPosition(UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y), "InOut", "Quart", 0.04, true, nil) 
  end
  gui.InputBegan:Connect(function(input)
   if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
   dragging = true
   dragStart = input.Position
   startPos = gui.Position
  input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)
gui.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)
end)
end
drag(aa.PopupFrame)