magnetos

[re-rel] edge's audio logger

Dec 29th, 2021 (edited)
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 14.82 KB | None | 0 0
  1. -- this was not made by me, all credit goes to original owners, just making it more accessible for the community.
  2.  
  3. aa = game:GetObjects("rbxassetid://01997056190")[1]
  4. aa.Parent = game.CoreGui
  5. wait(0.2)
  6. GUI = aa.PopupFrame.PopupFrame
  7. pos = 0
  8.  
  9. ignore = {
  10.     "rbxasset://sounds/action_get_up.mp3",
  11.     "rbxasset://sounds/uuhhh.mp3",
  12.     "rbxasset://sounds/action_falling.mp3",
  13.     "rbxasset://sounds/action_jump.mp3",
  14.     "rbxasset://sounds/action_jump_land.mp3",
  15.     "rbxasset://sounds/impact_water.mp3",
  16.     "rbxasset://sounds/action_swim.mp3",
  17.     "rbxasset://sounds/action_footsteps_plastic.mp3"
  18. }
  19.  
  20. GUI.Close.MouseButton1Click:connect(function()
  21.     GUI:TweenSize(UDim2.new(0, 360, 0, 0),"Out","Quad",0.5,true) wait(0.6)
  22.     GUI.Parent:TweenSize(UDim2.new(0, 0, 0, 20),"Out","Quad",0.5,true) wait(0.6)
  23.     aa:Destroy()
  24. end)
  25.  
  26. local min = false
  27. GUI.Minimize.MouseButton1Click:connect(function()
  28.     if min == false then
  29.         GUI:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true) min = true
  30.     else
  31.         GUI:TweenSize(UDim2.new(0, 360, 0, 260),"Out","Quad",0.5,true) min = false
  32.     end
  33. end)
  34.  
  35. function printTable(tbl)
  36.     if type(tbl) ~= 'table' then return nil end
  37.     local depthCount = -15
  38.  
  39.     local function run(val, inPrefix)
  40.         depthCount = depthCount + 15
  41.         -- if inPrefix then print(string.rep(' ', depthCount) .. '{') end
  42.         for i,v in pairs(val) do
  43.             if type(v) == 'table' then
  44.                 -- print(string.rep(' ', depthCount) .. ' [' .. tostring(i) .. '] = {')
  45.                 GUI.Store.Text = GUI.Store.Text..'\n'..string.rep(' ', depthCount) .. ' [' .. tostring(i) .. '] = {'
  46.                 run(v, false)
  47.                 wait()
  48.             else
  49.                 -- print(string.rep(' ', depthCount) .. ' [' .. tostring(i) .. '] = ' .. tostring(v))
  50.                 GUI.Store.Text = GUI.Store.Text..'\n'..string.rep(' ', depthCount) .. ' [' .. tostring(i) .. '] = ' .. tostring(v)
  51.                 wait()
  52.             end
  53.         end
  54.         -- print(string.rep(' ', depthCount) .. '}')
  55.         depthCount = depthCount - 15
  56.     end
  57.     run(tbl, true)
  58. end
  59.  
  60. function refreshlist()
  61.     pos = 0
  62.     GUI.Logs.CanvasSize = UDim2.new(0,0,0,0)
  63.     for i,v in pairs(GUI.Logs:GetChildren()) do
  64.         v.Position = UDim2.new(0,0,0, pos)
  65.         GUI.Logs.CanvasSize = UDim2.new(0,0,0, pos+20)
  66.         pos = pos+20
  67.     end
  68. end
  69.  
  70. function FindTable(Table, Name)
  71.     for i,v in pairs(Table) do
  72.         if v == Name then
  73.             return true
  74.         end end
  75.     return false
  76. end
  77.  
  78. function writefileExploit()
  79.     if writefile then
  80.         return true
  81.     end
  82. end
  83.  
  84. writeaudio = {}
  85. running = false
  86. GUI.SS.MouseButton1Click:connect(function()
  87.     if writefileExploit() then
  88.         if running == false then
  89.             GUI.Load.Visible = true running = true
  90.             GUI.Load:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true) wait(0.3)
  91.             for _, child in pairs(GUI.Logs:GetChildren()) do
  92.                 if child:FindFirstChild('ImageButton') then local bttn = child:FindFirstChild('ImageButton')
  93.                     if bttn.BackgroundTransparency == 0 then
  94.                         writeaudio[#writeaudio + 1] = {NAME = child.NAME.Value, ID = child.ID.Value}
  95.                     end
  96.                 end
  97.             end
  98.             GUI.Store.Visible = true
  99.             printTable(writeaudio)
  100.             wait(0.2)
  101.             local filename = 0
  102.             local function write()
  103.                 local file
  104.                 pcall(function() file = readfile("Audios"..filename..".txt") end)
  105.                 if file then
  106.                     filename = filename+1
  107.                     write()
  108.                 else
  109.                     local text = tostring(GUI.Store.Text)
  110.                     text = text:gsub('\n', '\r\n')
  111.                     writefile("Audios"..filename..".txt", text)
  112.                 end
  113.             end
  114.             write()
  115.             for rep = 1,10 do
  116.             GUI.Load.BackgroundTransparency = GUI.Load.BackgroundTransparency + 0.1
  117.             wait(0.05)
  118.             end
  119.             GUI.Load.Visible = false
  120.             GUI.Load.BackgroundTransparency = 0
  121.             GUI.Load.Size = UDim2.new(0, 0, 0, 20)
  122.             running = false
  123.             GUI.Store.Visible = false
  124.             GUI.Store.Text = ''
  125.             writeaudio = {}
  126.             game:FindService('StarterGui'):SetCore('SendNotification', {
  127.                 Title = 'Audio Logger',
  128.                 Text = 'Saved audios\n(Audios'..filename..'.txt)',
  129.                 Icon = 'http://www.roblox.com/asset/?id=176572847',
  130.                 Duration = 5,
  131.             })
  132.         end
  133.     else
  134.         game:FindService('StarterGui'):SetCore('SendNotification', {
  135.             Title = 'Audio Logger',
  136.             Text = 'Exploit cannot writefile :(',
  137.             Icon = 'http://www.roblox.com/asset/?id=176572847',
  138.             Duration = 5,
  139.         })
  140.     end
  141. end)
  142.  
  143. GUI.SA.MouseButton1Click:connect(function()
  144.     if writefileExploit() then
  145.         if running == false then
  146.             GUI.Load.Visible = true running = true
  147.             GUI.Load:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true) wait(0.3)
  148.             for _, child in pairs(GUI.Logs:GetChildren()) do
  149.                 writeaudio[#writeaudio + 1] = {NAME = child.NAME.Value, ID = child.ID.Value}
  150.             end
  151.             GUI.Store.Visible = true
  152.             printTable(writeaudio)
  153.             wait(0.2)
  154.             local filename = 0
  155.             local function write()
  156.                 local file
  157.                 pcall(function() file = readfile("Audios"..filename..".txt") end)
  158.                 if file then
  159.                     filename = filename+1
  160.                     write()
  161.                 else
  162.                     local text = tostring(GUI.Store.Text)
  163.                     text = text:gsub('\n', '\r\n')
  164.                     writefile("Audios"..filename..".txt", text)
  165.                 end
  166.             end
  167.             write()
  168.             for rep = 1,10 do
  169.                 GUI.Load.BackgroundTransparency = GUI.Load.BackgroundTransparency + 0.1
  170.                 wait(0.05)
  171.             end
  172.             GUI.Load.Visible = false
  173.             GUI.Load.BackgroundTransparency = 0
  174.             GUI.Load.Size = UDim2.new(0, 0, 0, 20)
  175.             running = false
  176.             GUI.Store.Visible = false
  177.             GUI.Store.Text = ''
  178.             writeaudio = {}
  179.             game:FindService('StarterGui'):SetCore('SendNotification', {
  180.                 Title = 'Audio Logger',
  181.                 Text = 'Saved audios\n(Audios'..filename..'.txt)',
  182.                 Icon = 'http://www.roblox.com/asset/?id=176572847',
  183.                 Duration = 5,
  184.             })
  185.         end
  186.     else
  187.         game:FindService('StarterGui'):SetCore('SendNotification', {
  188.             Title = 'Audio Logger',
  189.             Text = 'Exploit cannot writefile :(',
  190.             Icon = 'http://www.roblox.com/asset/?id=176572847',
  191.             Duration = 5,
  192.         })
  193.     end
  194. end)
  195.  
  196. selectedaudio = nil
  197. function getaudio(place)
  198.     if running == false then
  199.         GUI.Load.Visible = true running = true
  200.         GUI.Load:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true) wait(0.3)
  201.         for _, child in pairs(place:GetDescendants()) do
  202.             spawn(function()
  203.                 if child:IsA("Sound") and not GUI.Logs:FindFirstChild(child.SoundId) and not FindTable(ignore,child.SoundId) then
  204.                     local id = string.match(child.SoundId, "rbxasset://sounds.+") or string.match(child.SoundId, "&hash=.+") or string.match(child.SoundId, "%d+")
  205.                     if id ~= nil then      
  206.                         local newsound = GUI.Audio:Clone()
  207.                         if string.sub(id, 1, 6) == "&hash=" or string.sub(id, 1, 7) == "&0hash=" then
  208.                             id = string.sub(id, (string.sub(id, 1, 6) == "&hash=" and 7) or (string.sub(id, 1, 7) == "&0hash=" and 8), string.len(id))
  209.                             newsound.ImageButton.Image = 'rbxassetid://1453863294'
  210.                         end
  211.                         newsound.Parent = GUI.Logs
  212.                         newsound.Name = child.SoundId
  213.                         newsound.Visible = true
  214.                         newsound.Position = UDim2.new(0,0,0, pos)
  215.                         GUI.Logs.CanvasSize = UDim2.new(0,0,0, pos+20)
  216.                         pos = pos+20
  217.                         local function findname()
  218.                             Asset = game:GetService("MarketplaceService"):GetProductInfo(id)
  219.                         end
  220.                         local audioname = 'error'
  221.                         local success, message = pcall(findname)
  222.                         if success then
  223.                             newsound.TextLabel.Text = Asset.Name
  224.                             audioname = Asset.Name
  225.                         else
  226.                             newsound.TextLabel.Text = child.Name
  227.                             audioname = child.Name
  228.                         end
  229.                         local data = Instance.new('StringValue') data.Parent = newsound data.Value = child.SoundId data.Name = 'ID'
  230.                         local data2 = Instance.new('StringValue') data2.Parent = newsound data2.Value = audioname data2.Name = 'NAME'
  231.                         local soundselected = false
  232.                         newsound.ImageButton.MouseButton1Click:Connect(function()
  233.                             if GUI.Info.Visible ~= true then
  234.                                 if soundselected == false then soundselected = true
  235.                                     newsound.ImageButton.BackgroundTransparency = 0
  236.                                 else soundselected = false
  237.                                     newsound.ImageButton.BackgroundTransparency = 1
  238.                                 end
  239.                             end
  240.                         end)
  241.                         newsound.Click.MouseButton1Click:Connect(function()
  242.                             if GUI.Info.Visible ~= true then
  243.                                 GUI.Info.TextLabel.Text = "Name: " ..audioname.. "\n\nID: " .. child.SoundId .. "\n\nWorkspace Name: " .. child.Name
  244.                                 selectedaudio = child.SoundId
  245.                                 GUI.Info.Visible = true
  246.                             end
  247.                         end)
  248.                     end
  249.                 end
  250.             end)
  251.         end
  252.     end
  253.     for rep = 1,10 do
  254.         GUI.Load.BackgroundTransparency = GUI.Load.BackgroundTransparency + 0.1
  255.         wait(0.05)
  256.     end
  257.     GUI.Load.Visible = false
  258.     GUI.Load.BackgroundTransparency = 0
  259.     GUI.Load.Size = UDim2.new(0, 0, 0, 20)
  260.     running = false
  261. end
  262.  
  263. GUI.All.MouseButton1Click:connect(function() getaudio(game)end)
  264. GUI.Workspace.MouseButton1Click:connect(function() getaudio(workspace)end)
  265. GUI.Lighting.MouseButton1Click:connect(function() getaudio(game:GetService('Lighting'))end)
  266. GUI.SoundS.MouseButton1Click:connect(function() getaudio(game:GetService('SoundService'))end)
  267. GUI.Clr.MouseButton1Click:connect(function()
  268.     for _, child in pairs(GUI.Logs:GetChildren()) do
  269.         if child:FindFirstChild('ImageButton') then local bttn = child:FindFirstChild('ImageButton')
  270.             if bttn.BackgroundTransparency == 1 then
  271.                 bttn.Parent:Destroy()
  272.                 refreshlist()
  273.             end
  274.         end
  275.     end
  276. end)
  277. GUI.ClrS.MouseButton1Click:connect(function()
  278.     for _, child in pairs(GUI.Logs:GetChildren()) do
  279.         if child:FindFirstChild('ImageButton') then local bttn = child:FindFirstChild('ImageButton')
  280.             if bttn.BackgroundTransparency == 0 then
  281.                 bttn.Parent:Destroy()
  282.                 refreshlist()
  283.             end
  284.         end
  285.     end
  286. end)
  287. autoscan = false
  288. GUI.AutoScan.MouseButton1Click:connect(function()
  289.     if autoscan == false then autoscan = true
  290.         GUI.AutoScan.BackgroundTransparency = 0.5
  291.         game:FindService('StarterGui'):SetCore('SendNotification', {
  292.             Title = 'Audio Logger',
  293.             Text = 'Auto Scan ENABLED',
  294.             Icon = 'http://www.roblox.com/asset/?id=176572847',
  295.             Duration = 5,
  296.         })
  297.     else autoscan = false
  298.         GUI.AutoScan.BackgroundTransparency = 0
  299.         game:FindService('StarterGui'):SetCore('SendNotification', {
  300.             Title = 'Audio Logger',
  301.             Text = 'Auto Scan DISABLED',
  302.             Icon = 'http://www.roblox.com/asset/?id=176572847',
  303.             Duration = 5,
  304.         })
  305.     end
  306. end)
  307.  
  308. game.DescendantAdded:connect(function(added)
  309.     wait()
  310.     if autoscan == true and added:IsA('Sound') and not GUI.Logs:FindFirstChild(added.SoundId) and not FindTable(ignore,added.SoundId) then
  311.         local id = string.match(added.SoundId, "rbxasset://sounds.+") or string.match(added.SoundId, "&hash=.+") or string.match(added.SoundId, "%d+")
  312.         if id ~= nil then      
  313.             local newsound = GUI.Audio:Clone()
  314.                 if string.sub(id, 1, 6) == "&hash=" or string.sub(id, 1, 7) == "&0hash=" then
  315.                     id = string.sub(id, (string.sub(id, 1, 6) == "&hash=" and 7) or (string.sub(id, 1, 7) == "&0hash=" and 8), string.len(id))
  316.                     newsound.ImageButton.Image = 'rbxassetid://1453863294'
  317.                 end
  318.                 local scrolldown = false
  319.                 newsound.Parent = GUI.Logs
  320.                 newsound.Name = added.SoundId
  321.                 newsound.Visible = true
  322.                 newsound.Position = UDim2.new(0,0,0, pos)
  323.                 if GUI.Logs.CanvasPosition.Y == GUI.Logs.CanvasSize.Y.Offset - 230 then
  324.                     scrolldown = true
  325.                 end
  326.                 GUI.Logs.CanvasSize = UDim2.new(0,0,0, pos+20)
  327.                 pos = pos+20
  328.                 local function findname()
  329.                     Asset = game:GetService("MarketplaceService"):GetProductInfo(id)
  330.                 end
  331.                 local audioname = 'error'
  332.                 local success, message = pcall(findname)
  333.                 if success then
  334.                     newsound.TextLabel.Text = Asset.Name
  335.                     audioname = Asset.Name
  336.                 else
  337.                     newsound.TextLabel.Text = added.Name
  338.                     audioname = added.Name
  339.                 end
  340.                 local data = Instance.new('StringValue') data.Parent = newsound data.Value = added.SoundId data.Name = 'ID'
  341.                 local data2 = Instance.new('StringValue') data2.Parent = newsound data2.Value = audioname data2.Name = 'NAME'
  342.                 local soundselected = false
  343.                 newsound.ImageButton.MouseButton1Click:Connect(function()
  344.                     if GUI.Info.Visible ~= true then
  345.                         if soundselected == false then soundselected = true
  346.                             newsound.ImageButton.BackgroundTransparency = 0
  347.                         else soundselected = false
  348.                             newsound.ImageButton.BackgroundTransparency = 1
  349.                         end
  350.                     end
  351.                 end)
  352.                 newsound.Click.MouseButton1Click:Connect(function()
  353.                     if GUI.Info.Visible ~= true then
  354.                         GUI.Info.TextLabel.Text = "Name: " ..audioname.. "\n\nID: " .. added.SoundId .. "\n\nWorkspace Name: " .. added.Name
  355.                         selectedaudio = added.SoundId
  356.                         GUI.Info.Visible = true
  357.                     end
  358.                 end)
  359.                 --230'
  360.             if scrolldown == true then
  361.                 GUI.Logs.CanvasPosition = Vector2.new(0, 9999999999999999999999999999999999999999999, 0, 0)
  362.             end
  363.         end
  364.     end
  365. end)
  366.  
  367. GUI.Info.Copy.MouseButton1Click:Connect(function()
  368.     if pcall(function() Synapse:Copy(selectedaudio) end) then  
  369.     else
  370.         local clip = setclipboard or Clipboard.set
  371.         clip(selectedaudio)
  372.     end
  373.     game:FindService('StarterGui'):SetCore('SendNotification', {
  374.         Title = 'Audio Logger',
  375.         Text = 'Copied to clipboard',
  376.         Icon = 'http://www.roblox.com/asset/?id=176572847',
  377.         Duration = 5,
  378.     })
  379. end)
  380.  
  381. GUI.Info.Close.MouseButton1Click:Connect(function()
  382.     GUI.Info.Visible = false
  383.     for _, sound in pairs(game:GetService('Players').LocalPlayer.PlayerGui:GetChildren()) do
  384.         if sound.Name == 'SampleSound' then
  385.             sound:Destroy()
  386.         end
  387.     end
  388.     GUI.Info.Listen.Text = 'Listen'
  389. end)
  390.  
  391. GUI.Info.Listen.MouseButton1Click:Connect(function()
  392.     if GUI.Info.Listen.Text == 'Listen' then
  393.         local samplesound = Instance.new('Sound') samplesound.Parent = game:GetService('Players').LocalPlayer.PlayerGui
  394.         samplesound.Looped = true samplesound.SoundId = selectedaudio samplesound:Play() samplesound.Name = 'SampleSound'
  395.         samplesound.Volume = 5
  396.         GUI.Info.Listen.Text = 'Stop'
  397.     else
  398.         for _, sound in pairs(game:GetService('Players').LocalPlayer.PlayerGui:GetChildren()) do
  399.             if sound.Name == 'SampleSound' then
  400.                 sound:Destroy()
  401.             end
  402.         end
  403.         GUI.Info.Listen.Text = 'Listen'
  404.     end
  405. end)
  406.  
  407. function drag(gui)
  408.     spawn(function()
  409.         local UserInputService = game:GetService("UserInputService")
  410.         local dragging
  411.         local dragInput
  412.         local dragStart
  413.         local startPos
  414.         local function update(input)
  415.             local delta = input.Position - dragStart
  416.             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)
  417.         end
  418.         gui.InputBegan:Connect(function(input)
  419.             if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  420.             dragging = true
  421.             dragStart = input.Position
  422.             startPos = gui.Position
  423.         input.Changed:Connect(function()
  424.             if input.UserInputState == Enum.UserInputState.End then
  425.                 dragging = false
  426.             end
  427.         end)
  428.     end
  429. end)
  430. gui.InputChanged:Connect(function(input)
  431.     if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
  432.         dragInput = input
  433.     end
  434. end)
  435. UserInputService.InputChanged:Connect(function(input)
  436.     if input == dragInput and dragging then
  437.         update(input)
  438.     end
  439. end)
  440. end)
  441. end
  442. drag(aa.PopupFrame)
Add Comment
Please, Sign In to add comment