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 = 'Ken Seach Sound', 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)