Explorer


SUBMITTED BY: Proxi1

DATE: April 12, 2016, 5:21 a.m.

FORMAT: Text only

SIZE: 13.8 kB

HITS: 855

  1. TextProperties = {"ClassName", "Name", "Value", "Text", "Reflectance", "Transparency", "Heat", "TeamName", "WalkSpeed", "Health", "MaxHealth", "Size", "Position", "AccountAge", "RobloxLocked", "TeamColor", "userId", "Brightness", "Ambient", "TimeOfDay", "FieldOfView", "CameraType", "LinkedSource"}
  2. BoolProperties = {"Anchored", "CanCollide", "Disabled", "Jump", "Sit", "Visible", "Enabled", "Locked", "FilteringEnabled", "StreamingEnabled", "GlobalShadows"}
  3. BrickColorProperties = {"BrickColor", "Color", "TeamColor", "Texture", "Value"}
  4. s = Instance.new("ScreenGui", game.CoreGui)
  5. pgr = Instance.new("TextButton")
  6. pgr.Parent = s
  7. pgr.Size = UDim2.new(0,100,0,40)
  8. pgr.Position = UDim2.new(0,30,0,440)
  9. pgr.Text="Explorer"
  10. pgr.BackgroundTransparency = 0.3
  11. pgr.TextColor = BrickColor.new("White")
  12. pgr.BackgroundColor = BrickColor.new("Really Black")
  13. pgr.BorderColor = BrickColor.new("Black")
  14. pgr.Font = "ArialBold"
  15. pgr.FontSize = "Size14"
  16. pgr.TextStrokeColor3 = Color3.new(0/0,0/0,0/0)
  17. pgr.TextStrokeTransparency = 0.3
  18. pgr.BorderSizePixel = 1
  19. pgr.BorderColor = BrickColor.new("White")
  20. if game.CoreGui:findFirstChild("Explorer") then
  21. game.CoreGui:findFirstChild("Explorer"):Remove()
  22. end
  23. local Cloned
  24. local Deleted
  25. local DeleteParent
  26. local Player
  27. local Search
  28. local ScriptSearch
  29. local Gui
  30. local Cloned = nil
  31. local Deleted = nil
  32. local DeleteParent = nil
  33. local Current = 0
  34. local CurrentOption = 0
  35. function Clear()
  36. if Gui then
  37. Gui:Remove()
  38. end
  39. Current = 0
  40. CurrentOption = 0
  41. end
  42. function AddButton(N, Function, Color, Copy)
  43. if not N then
  44. error("RenderButton - No Name Specified")
  45. end
  46. if not Function then
  47. error("RenderButton - No Function Specified")
  48. end
  49. if not Color then
  50. Color = Color3.new(1, 1, 1)
  51. end
  52. if Copy == nil then
  53. Copy = true
  54. end
  55. P = Instance.new("TextButton")
  56. if Copy then
  57. P.Size = UDim2.new(0, 110, 0, 20)
  58. else
  59. P.Size = UDim2.new(0, 130, 0, 20)
  60. end
  61. P.Text = N.Name
  62. P.Name = N.Name
  63. P.Parent = Gui
  64. P.BackgroundColor3 = Color
  65. P.TextColor3 = Color3.new(0, 0, 0)
  66. P.BackgroundTransparency = 0.5
  67. P.Position = UDim2.new(0, ((math.modf(Current/30))*150)+300, 0, 50+(20*((Current%30)-1)))
  68. P.MouseButton1Click:connect(function()
  69. Function(P)
  70. end)
  71. D = Instance.new("TextButton")
  72. D.Size = UDim2.new(0, 20, 0, 20)
  73. D.Text = "X"
  74. D.Name = N.Name
  75. D.Parent = Gui
  76. D.BackgroundColor3 = Color3.new(1, 0, 0)
  77. D.TextColor3 = Color3.new(0, 0, 0)
  78. D.BackgroundTransparency = 0.5
  79. D.Position = UDim2.new(0, ((math.modf(Current/30))*150)+300+130, 0, 50+(20*((Current%30)-1)))
  80. D.MouseButton1Click:connect(function()
  81. Deleted = N
  82. DeleteParent = N.Parent
  83. N.Parent = nil
  84. Clear()
  85. Search(DeleteParent)
  86. end)
  87. if Copy then
  88. C = Instance.new("TextButton")
  89. C.Size = UDim2.new(0, 20, 0, 20)
  90. C.Text = "C"
  91. C.Name = N.Name
  92. C.Parent = Gui
  93. C.BackgroundColor3 = Color3.new(0, 1, 0.5)
  94. C.TextColor3 = Color3.new(0, 0, 0)
  95. C.BackgroundTransparency = 0.5
  96. C.Position = UDim2.new(0, ((math.modf(Current/30))*150)+300+110, 0, 50+(20*((Current%30)-1)))
  97. C.MouseButton1Click:connect(function()
  98. Cloned = N
  99. Clear()
  100. Search(N.Parent)
  101. end)
  102. end
  103. Current = Current + 1
  104. return P
  105. end
  106. function AddOption(N, Function, Color, Text)
  107. if not N then
  108. error("RenderButton - No Name Specified")
  109. end
  110. if not Color then
  111. Color = Color3.new(1, 1, 1)
  112. end
  113. if Text == nil then
  114. Text = false
  115. end
  116. if Text then
  117. P = Instance.new("TextBox")
  118. else
  119. P = Instance.new("TextButton")
  120. end
  121. P.Text = N
  122. P.Name = N
  123. P.Parent = Gui
  124. P.BackgroundColor3 = Color
  125. P.TextColor3 = Color3.new(0, 0, 0)
  126. P.BackgroundTransparency = 0.5
  127. P.Size = UDim2.new(0, 150, 0, 20)
  128. P.Position = UDim2.new(0, ((math.modf(CurrentOption/30))*150)+150, 0, 50+(20*((CurrentOption%30)-1)))
  129. if not Text and Function then
  130. P.MouseButton1Click:connect(function() Function(P) end)
  131. end
  132. CurrentOption = CurrentOption + 1
  133. return P
  134. end
  135. function AddTextOption(Obj, Prop)
  136. local Ob = Obj
  137. local Pro = Prop
  138. if type(Ob[Pro]) == "number" or type(Ob[Pro]) == "string" then
  139. CurrentOption = CurrentOption + 1
  140. local T = AddOption(Ob[Pro], nil, Color3.new(0.1, 0.4, 0.1), true)
  141. CurrentOption = CurrentOption - 2
  142. local O = AddOption("Change "..Pro..":", function() Ob[Pro] = T.Text end, Color3.new(0.1, 0.8, 0.1), false)
  143. CurrentOption = CurrentOption + 1
  144. end
  145. end
  146. function AddBrickColorOption(Obj, Prop)
  147. local Ob = Obj
  148. local Pro = Prop
  149. if BrickColor.new(tostring(Ob[Pro])) == Ob[Pro] then
  150. CurrentOption = CurrentOption + 1
  151. local T = AddOption(tostring(Ob[Pro]), nil, Color3.new(0.1, 0.4, 0.1), true)
  152. CurrentOption = CurrentOption - 2
  153. local O = AddOption("Change "..Pro..":", function() Ob[Pro] = BrickColor.new(T.Text) end, Color3.new(0.1, 0.8, 0.1), false)
  154. CurrentOption = CurrentOption + 1
  155. end
  156. end
  157. function AddBoolOption(Obj, Prop)
  158. local Ob = Obj
  159. local Pro = Prop
  160. if type(Ob[Pro]) == "boolean" then
  161. local O = AddOption(Pro..": "..tostring(Ob[Pro]), nil, Color3.new(0.1, 0.8, 0.1), false)
  162. O.MouseButton1Click:connect(function()
  163. if Ob[Pro] then
  164. Ob[Pro] = false
  165. O.Text = Pro..": false"
  166. else
  167. Ob[Pro] = true
  168. O.Text = Pro..": true"
  169. end
  170. end)
  171. end
  172. end
  173. function TestProperty(Obj, Property)
  174. Success = pcall(function()
  175. if Obj[Property] then
  176. return
  177. end
  178. end)
  179. return Success
  180. end
  181. function LoadOptions(Object)
  182. for Num, Prop in pairs(TextProperties) do
  183. if TestProperty(Object, Prop) then
  184. AddTextOption(Object, Prop)
  185. end
  186. end
  187. for Num, Prop in pairs(BoolProperties) do
  188. if TestProperty(Object, Prop) then
  189. AddBoolOption(Object, Prop)
  190. end
  191. end
  192. for Num, Prop in pairs(BrickColorProperties) do
  193. if TestProperty(Object, Prop) then
  194. AddBrickColorOption(Object, Prop)
  195. end
  196. end
  197. end
  198. function Search(Object)
  199. Gui = Instance.new("ScreenGui")
  200. Gui.Parent = game.CoreGui
  201. Gui.Name = "Explorer"
  202. if Object ~= game then
  203. AddOption("Back", function()
  204. Clear();
  205. Search(Object.Parent)
  206. end, Color3.new(0.5, 1, 1), false)
  207. end
  208. AddOption("Reload", function() Clear(); Search(Object); end, Color3.new(0.2, 1, 0.2), false)
  209. if Cloned then
  210. AddOption("Paste", function() Cloned:Clone().Parent = Object; Clear(); Search(Object); end, Color3.new(0.5, 1, 1), false)
  211. end
  212. if Deleted then
  213. AddOption("Undo", function() Deleted.Parent = DeleteParent; Deleted = nil; DeletedParent = nil; Clear(); Search(Object); end, Color3.new(1, 0.6, 0.1), false)
  214. end
  215. if Object:IsA("Player") then
  216. AddOption("Goto Character", function() Clear(); if Object.Character then Search(Object.Character); end end, Color3.new(1, 1, 1), false)
  217. end
  218. if Object:IsA("LocalScript") then
  219. AddOption("EditScript", function() Clear(); ScriptSearch(Object); end, Color3.new(1, 1, 1), false)
  220. end
  221. if Object:IsA("Terrain") then
  222. AddOption("Clear", function() Object:Clear(); end, Color3.new(1, 1, 1), false)
  223. end
  224. LoadOptions(Object)
  225. AddOption("Close", Clear, Color3.new(1, 0.2, 0), false)
  226. if not Object:IsA("Workspace") or not Object:IsA("Player") then
  227. for Num, Obj in pairs(Object:GetChildren()) do
  228. --if not Obj:IsA("BasePart") or not Object.Parent == game.Workspace then
  229. if true then
  230. if Obj:IsA("LocalScript") then
  231. AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(1, 0, 0), true)
  232. elseif Obj:IsA("Script") or Obj:IsA("StarterScript") or Obj:IsA("CoreScript") then
  233. AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(0.5, 0.5, 0.8), true)
  234. elseif Obj.Parent == game then
  235. AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(1, 1, 1), false)
  236. else
  237. AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(1, 1, 1), true)
  238. end
  239. end
  240. end
  241. end
  242. function MoveUp(Place, Amount)
  243. for i,v in pairs(Place:GetChildren()) do
  244. if v:IsA("TextLabel") or v:IsA("TextBox") then
  245. v.Position = v.Position + UDim2.new(0,0,0,-Amount)
  246. end
  247. end
  248. end
  249. function MoveDown(Place, Amount)
  250. for i,v in pairs(Place:GetChildren()) do
  251. if v:IsA("TextLabel") or v:IsA("TextBox") then
  252. v.Position = v.Position + UDim2.new(0,0,0,Amount)
  253. end
  254. end
  255. end
  256. i=0
  257. function ScriptSearch(S)
  258. Script2 = S
  259. Script = Script2.Source
  260. Table = {}
  261. Enabled = true
  262. Gui = Instance.new("ScreenGui")
  263. Gui.Parent = game.CoreGui
  264. Gui.Name = "Explorer"
  265. while Enabled do
  266. Start, End = string.find(Script, '\n')
  267. print(Start, End)
  268. if Start and End then
  269. table.insert(Table, string.sub(Script, 1, End))
  270. New = string.sub(Script, End+1, string.len(Script))
  271. Script = New
  272. else
  273. Enabled = false
  274. table.insert(Table, string.sub(Script, 1, End))
  275. print("Finished")
  276. end
  277. end
  278. P = Instance.new("TextLabel")
  279. P.Size = UDim2.new(0, 500, 0, 20)
  280. P.Text = Script2.Name
  281. P.Name = "Script Line"
  282. P.Parent = Gui
  283. P.BackgroundColor3 = Color3.new(1, 1, 1)
  284. P.TextColor3 = Color3.new(0, 0, 0)
  285. P.BackgroundTransparency = 0.5
  286. P.Position = UDim2.new(0.5, -250, 0, 150+(20*(i-1)))
  287. P.TextXAlignment = "Left"
  288. i=i+1
  289. New = {}
  290. for I,Val in pairs(Table) do
  291. print(Val)
  292. P = Instance.new("TextBox")
  293. P.ClearTextOnFocus = false
  294. P.Size = UDim2.new(0, 500, 0, 20)
  295. P.Text = Val
  296. P.Name = "Script Line"
  297. P.Parent = Gui
  298. P.BackgroundColor3 = Color3.new(1, 1, 1)
  299. P.TextColor3 = Color3.new(0, 0, 0)
  300. P.BackgroundTransparency = 0.5
  301. P.Position = UDim2.new(0.5, -250, 0, 150+(20*(i-1)))
  302. P.TextXAlignment = "Left"
  303. table.insert(New, P)
  304. i=i+1
  305. end
  306. i=1
  307. P = Instance.new("TextButton")
  308. P.Size = UDim2.new(0, 20, 0, 20)
  309. P.Text = "^"
  310. P.Name = "Scroll"
  311. P.Parent = Gui
  312. P.BackgroundColor3 = Color3.new(1, 1, 1)
  313. P.TextColor3 = Color3.new(0, 0, 0)
  314. P.BackgroundTransparency = 0.5
  315. P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
  316. P.MouseButton1Click:connect(function()
  317. MoveUp(Gui, -20)
  318. end)
  319. i=i+1
  320. P = Instance.new("TextButton")
  321. P.Size = UDim2.new(0, 20, 0, 20)
  322. P.Text = "v"
  323. P.Name = "Scroll"
  324. P.Parent = Gui
  325. P.BackgroundColor3 = Color3.new(1, 1, 1)
  326. P.TextColor3 = Color3.new(0, 0, 0)
  327. P.BackgroundTransparency = 0.5
  328. P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
  329. P.MouseButton1Click:connect(function()
  330. MoveDown(Gui, -20)
  331. end)
  332. i=i+1
  333. P = Instance.new("TextButton")
  334. P.Size = UDim2.new(0, 20, 0, 20)
  335. P.Text = "^^"
  336. P.Name = "Scroll"
  337. P.Parent = Gui
  338. P.BackgroundColor3 = Color3.new(1, 1, 1)
  339. P.TextColor3 = Color3.new(0, 0, 0)
  340. P.BackgroundTransparency = 0.5
  341. P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
  342. P.MouseButton1Click:connect(function()
  343. MoveUp(Gui, -200)
  344. end)
  345. i=i+1
  346. P = Instance.new("TextButton")
  347. P.Size = UDim2.new(0, 20, 0, 20)
  348. P.Text = "vv"
  349. P.Name = "Scroll"
  350. P.Parent = Gui
  351. P.BackgroundColor3 = Color3.new(1, 1, 1)
  352. P.TextColor3 = Color3.new(0, 0, 0)
  353. P.BackgroundTransparency = 0.5
  354. P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
  355. P.MouseButton1Click:connect(function()
  356. MoveDown(Gui, -200)
  357. end)
  358. i=i+1
  359. P = Instance.new("TextButton")
  360. P.Size = UDim2.new(0, 20, 0, 20)
  361. P.Text = "S"
  362. P.Name = "Save"
  363. P.Parent = Gui
  364. P.BackgroundColor3 = Color3.new(0, 1, 0)
  365. P.TextColor3 = Color3.new(0, 0, 0)
  366. P.BackgroundTransparency = 0.5
  367. P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
  368. P.MouseButton1Click:connect(function()
  369. StringS = ""
  370. for Num, Obj in pairs(New) do
  371. StringS = StringS..Obj.Text..'\n'
  372. end
  373. S.Source = StringS
  374. S.Disabled = true
  375. S.Disabled = false
  376. end)
  377. i=i+1
  378. P = Instance.new("TextButton")
  379. P.Size = UDim2.new(0, 20, 0, 20)
  380. P.Text = "x"
  381. P.Name = "Back"
  382. P.Parent = Gui
  383. P.BackgroundColor3 = Color3.new(1, 0.2, 0)
  384. P.TextColor3 = Color3.new(0, 0, 0)
  385. P.BackgroundTransparency = 0.5
  386. P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
  387. P.MouseButton1Click:connect(function()
  388. Clear()
  389. i=0
  390. Search(S)
  391. end)
  392. i=i+1
  393. end
  394. end
  395. pgr.MouseButton1Click:connect(function()
  396. Clear()
  397. Search(game)
  398. end)

comments powered by Disqus