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