Advertisement
InfinitySound

[BETA] Roblox Explorer 1.3

Jul 17th, 2019
13,265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.80 KB | None | 0 0
  1. local Decompiler = false; --/ If you have decompile replace this with the decompile function.
  2. local Colors = {
  3. ['Properties'] = {
  4. Property = Color3.fromRGB(165, 206, 255);
  5. Value = Color3.fromRGB(205, 255, 193);
  6. };
  7.  
  8. ['Objects'] = Color3.fromRGB(85, 255, 127);
  9. ['Functions'] = Color3.fromRGB(0, 211, 234);
  10. ['CopyButton'] = Color3.fromRGB(0, 251, 255);
  11. ['PasteButton'] = Color3.fromRGB(147, 212, 255);
  12. ['PastedObject'] = Color3.fromRGB(167, 167, 167);
  13. ['DestroyButton'] = Color3.fromRGB(255, 131, 133);
  14. ['ScriptDisabled'] = Color3.fromRGB(255, 131, 133);
  15. ['BackButton'] = Color3.fromRGB(255, 242, 47);
  16. };
  17.  
  18. local InfinityExplorer = Instance.new("ScreenGui")
  19. local Container = Instance.new("Frame")
  20. local ClassNameBox = Instance.new("TextLabel")
  21. local Objects = Instance.new("ScrollingFrame")
  22. local UIGridLayout = Instance.new("UIGridLayout")
  23. local UIPadding = Instance.new("UIPadding")
  24. local TextTemplate = Instance.new("TextBox")
  25. local Template = Instance.new("TextButton")
  26.  
  27. InfinityExplorer.Name = "InfinityExplorer"
  28. InfinityExplorer.Parent = game.CoreGui;
  29. InfinityExplorer.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  30.  
  31. Container.Name = "Container"
  32. Container.Parent = InfinityExplorer
  33. Container.BackgroundColor3 = Color3.new(0.129412, 0.129412, 0.129412)
  34. Container.BackgroundTransparency = 0.20000000298023
  35. Container.BorderColor3 = Color3.new(0.592157, 0.592157, 0.592157)
  36. Container.ClipsDescendants = true
  37. Container.Position = UDim2.new(0, 4, 0, 4)
  38. Container.Selectable = true
  39. Container.Size = UDim2.new(0, 210, 1, -8)
  40.  
  41. ClassNameBox.Name = "ClassNameBox"
  42. ClassNameBox.Parent = Container
  43. ClassNameBox.BackgroundColor3 = Color3.new(0, 0, 0)
  44. ClassNameBox.BackgroundTransparency = 0.89999997615814
  45. ClassNameBox.BorderColor3 = Color3.new(0.819608, 0.819608, 0.819608)
  46. ClassNameBox.Position = UDim2.new(0, 5, 0, 5)
  47. ClassNameBox.Size = UDim2.new(0, 200, 0, 25)
  48. ClassNameBox.Font = Enum.Font.Gotham
  49. ClassNameBox.Text = "Object.Class"
  50. ClassNameBox.TextColor3 = Color3.new(0.980392, 1, 0.752941)
  51. ClassNameBox.TextSize = 14
  52.  
  53. Objects.Name = "Objects"
  54. Objects.Parent = Container
  55. Objects.BackgroundColor3 = Color3.new(1, 1, 1)
  56. Objects.BackgroundTransparency = 1
  57. Objects.BorderSizePixel = 0
  58. Objects.Position = UDim2.new(0, 0, 0, 35)
  59. Objects.Size = UDim2.new(1, 0, 1, 0)
  60. Objects.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
  61. Objects.ScrollBarThickness = 1
  62. Objects.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
  63.  
  64. UIGridLayout.Parent = Objects
  65. UIGridLayout.SortOrder = Enum.SortOrder.LayoutOrder
  66. UIGridLayout.CellSize = UDim2.new(0, 200, 0, 16)
  67.  
  68. UIPadding.Parent = Objects
  69. UIPadding.PaddingLeft = UDim.new(0, 5)
  70. UIPadding.PaddingTop = UDim.new(0, 5)
  71.  
  72. TextTemplate.Name = "TextTemplate"
  73. TextTemplate.Parent = InfinityExplorer
  74. TextTemplate.BackgroundColor3 = Color3.new(0.188235, 0.188235, 0.188235)
  75. TextTemplate.BackgroundTransparency = 0.5
  76. TextTemplate.BorderColor3 = Color3.new(0.705882, 0.705882, 0.705882)
  77. TextTemplate.Size = UDim2.new(0, 200, 0, 16)
  78. TextTemplate.Visible = false
  79. TextTemplate.ClearTextOnFocus = false
  80. TextTemplate.Font = Enum.Font.Gotham
  81. TextTemplate.Text = "Text"
  82. TextTemplate.TextColor3 = Color3.new(0.580392, 0.745098, 0.505882)
  83. TextTemplate.TextSize = 14
  84. TextTemplate.TextXAlignment = Enum.TextXAlignment.Left
  85.  
  86. Template.Name = "Template"
  87. Template.Parent = InfinityExplorer
  88. Template.BackgroundColor3 = Color3.new(0.254902, 0.254902, 0.254902)
  89. Template.BackgroundTransparency = 0.5
  90. Template.BorderColor3 = Color3.new(0.705882, 0.705882, 0.705882)
  91. Template.Size = UDim2.new(0, 200, 0, 16)
  92. Template.Visible = false
  93. Template.Font = Enum.Font.GothamBold
  94. Template.TextColor3 = Color3.new(1, 1, 1)
  95. Template.TextSize = 14
  96. Template.TextXAlignment = Enum.TextXAlignment.Left
  97.  
  98. local Properties = game.HttpService:JSONDecode(game:HttpGet('https://pastebin.com/raw/LrQgmLn9'));
  99. local LP = game:GetService('Players').LocalPlayer;
  100. local Mouse = LP:GetMouse'';
  101.  
  102. local ogPos = Container.Position;
  103.  
  104. local isOpen = true;
  105. local ClosedPosition = UDim2.new(0, -Container.Size.X.Offset, ogPos.Y.Scale, ogPos.Y.Offset);
  106. local Toggle = function()
  107. if isOpen then
  108. Container:TweenPosition(ogPos, 'Out', 'Quad', 1, true);
  109. else
  110. Container:TweenPosition(ClosedPosition, 'In', 'Quad', 1, true);
  111. end;
  112. end;
  113.  
  114. Mouse.KeyDown:Connect(function(Key)
  115. if Key:lower'' == 'e' then
  116. isOpen = not isOpen;
  117. Toggle();
  118. end;
  119. end);
  120.  
  121. if not Synapse then
  122. local rtable = table;
  123. local table = setmetatable({}, {
  124. __index = rtable;
  125. });
  126.  
  127. table.insert = function(Table, Value)
  128. Table[#Table + 1] = Value;
  129. end;
  130.  
  131. end;
  132.  
  133. local function Clear()
  134. for _, Obj in next, Objects:GetChildren() do
  135. if Obj.ClassName:match'Text' then
  136. Obj:Destroy'';
  137. end;
  138. end;
  139. end;
  140.  
  141. local function SetForeColor(C3, Object)
  142. Object.TextColor3 = C3;
  143. Object.BorderColor3 = C3;
  144. end;
  145.  
  146. local function AddButton(isBTN, Text, onClick, onClick2)
  147. local temp = (isBTN and Template:Clone()) or TextTemplate:Clone();
  148.  
  149. if isBTN then
  150. temp.Text = ' ' .. Text;
  151.  
  152. if onClick then
  153. temp.MouseButton1Down:Connect(onClick);
  154. end;
  155.  
  156. if onClick2 then
  157. temp.MouseButton2Down:Connect(onClick2);
  158. end;
  159.  
  160. temp.MouseEnter:Connect(function()
  161. temp.Text = '> ' .. Text;
  162. end)
  163.  
  164. temp.MouseLeave:Connect(function()
  165. temp.Text = ' ' .. Text;
  166. end)
  167. elseif not isBTN then
  168. temp.Text = Text;
  169. temp.FocusLost:Connect(function()
  170. if temp.Text == '' then
  171. temp.Text = Text;
  172. else
  173. local i, v = pcall(function()
  174. onClick.obj[onClick.prop]=temp.Text;
  175. end);
  176.  
  177. if i then
  178. Text = temp.Text;
  179. else
  180. temp.Text = Text;
  181. end;
  182. end;
  183. end);
  184. end;
  185.  
  186. temp.Visible = true;
  187. temp.Name = Text;
  188. temp.Parent = Objects;
  189. return temp;
  190. end;
  191.  
  192. local function AddBackButton(dir)
  193. if dir then
  194. SetForeColor(Colors.BackButton, AddButton(true, '../' .. ((dir==game and 'Game') or dir.Name), function()
  195. Navigate(dir);
  196. end));
  197. end;
  198. end;
  199.  
  200. local guiClipboard;
  201. local Pasted = {};
  202.  
  203. local function ViewProperties(Object)
  204. Clear();
  205. if guiClipboard then
  206. guiClipboard=nil;
  207. end;
  208.  
  209. AddBackButton(Object.Parent);
  210. SetForeColor(Colors.DestroyButton, AddButton(true, 'Destroy', function()
  211. Object:Destroy();
  212. Navigate();
  213. end));
  214.  
  215. SetForeColor(Colors.CopyButton, AddButton(true, 'Copy', function()
  216. guiClipboard = Object:Clone'';
  217. end));
  218.  
  219. for _, Property in next, Properties do
  220. local Val;
  221. pcall(function()
  222. Val = Object[Property];
  223. end);
  224.  
  225. if Val and type(Val) ~= 'function' and typeof(Val) ~= 'RBXScriptSignal' then
  226. SetForeColor(Colors.Properties.Property, AddButton(true, tostring(Property)));
  227. SetForeColor(Colors.Properties.Value, AddButton(false, tostring(Val), {prop=Property, obj = Object}));
  228. end;
  229. end;
  230. end;
  231.  
  232. local function AddChild(Child)
  233. local guiobj;
  234.  
  235. guiobj = AddButton(true, '[' .. Child.ClassName:sub(0, 1) .. '] ' .. Child.Name, function()
  236. Navigate(Child);
  237. end, function()
  238. ViewProperties(Child);
  239. end);
  240.  
  241. SetForeColor(Colors.Objects, guiobj);
  242.  
  243. if Child.ClassName:match'Script' then
  244. if Child.Disabled then
  245. SetForeColor(Colors.ScriptDisabled, guiobj);
  246. end;
  247. end;
  248.  
  249. if Pasted[Child] then
  250. SetForeColor(Colors.PastedObject, guiobj);
  251. end;
  252.  
  253. guiobj.MouseEnter:Connect(function()
  254. ClassNameBox.Text = Child.ClassName;
  255. end);
  256.  
  257. Child.Parent.ChildRemoved:Connect(function(c)
  258. if c == Child then
  259. guiobj:Destroy'';
  260. end;
  261. end);
  262. end;
  263.  
  264. function Navigate(Object)
  265. local Children;
  266. if not Object or Object==game then Children = game:GetChildren();else Children=Object:GetChildren();end;
  267.  
  268. Clear();
  269.  
  270. if Object then
  271. AddBackButton(Object.Parent);
  272. Object.ChildAdded:Connect(AddChild);
  273.  
  274. if guiClipboard then
  275. SetForeColor(Colors.PasteButton, AddButton(true, 'Paste', function()
  276. guiClipboard.Parent = Object;
  277. Pasted[guiClipboard] = true;
  278. guiClipboard = nil;
  279. Navigate(Object);
  280. end));
  281. end;
  282.  
  283. if Object.ClassName == 'Script' or Object.ClassName == 'LocalScript' then
  284. if Decompiler then
  285. SetForeColor(Colors.Functions, AddButton(true, 'Print Source', function()
  286. print(Decompiler(Object));
  287. end));
  288. end;
  289.  
  290. SetForeColor(Colors.Functions, AddButton(true, 'Toggle Script', function()
  291. Object.Disabled = not Object.Disabled;
  292. ClassNameBox.Text = (Object.Disabled and 'Disabled' or 'Enabled');
  293. end));
  294. end;
  295. end;
  296.  
  297. for _, Child in next, Children do
  298. pcall(AddChild, Child);
  299. end
  300. end;
  301.  
  302. local function UpdateCanvas()
  303. wait();
  304. local Size = 0;
  305. for i, v in next, Objects:GetChildren'' do
  306. if v.ClassName:match'Text' then
  307. Size = (Size + v.Size.Y.Offset) + (i > 1 and 5.8) or 0;
  308. end;
  309. end;
  310.  
  311. Objects.CanvasSize = UDim2.new(0, 0, 0, Size);
  312. end;
  313.  
  314. Objects.ChildAdded:Connect(UpdateCanvas);
  315. Objects.ChildRemoved:Connect(UpdateCanvas);
  316.  
  317. Navigate();
  318. Container.Position = ClosedPosition;
  319. Toggle();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement