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