scripterhaxer

Table

Aug 9th, 2021
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.17 KB | None | 0 0
  1. local GuiScale = 1
  2. Tables = {}
  3. TableNames = {}
  4. StartTable = nil
  5. CurrentTable = {}
  6. CurrentModify = nil
  7. StoredTables = {}--{["Opening"], ["StartTable"], ["CurrentTable"], ["TableNames"], ["Tables"], ["UpValue"]}
  8. FoundLocations = {}
  9. Searches = {}
  10. Selected = nil
  11. IsUpVal = false
  12. IsConstant = false
  13. IsProto = false
  14. Opening = ""
  15. local StartNumber = 13
  16. function GetStartName(FT)
  17. return string.sub(tostring(FT), StartNumber, StartNumber+6).."-"
  18. end
  19.  
  20. Filters = {["number"] = true, ["function"] = true, ["boolean"] = true, ["string"] = true,
  21. ["Other"] = true, ["table"] = true, ["Instance"] = true, ["Name Search"] = true, ["Table Search"] = false,
  22. ["Upvalue Search"] = false, ["Value Search"] = false, ["Inside Upvalue"] = false, ["Constants Search"] = false, ["Exact Search"] = false}
  23. Order = {"Name Search", "Table Search", "Upvalue Search", "Inside Upvalue", "Value Search", "Constants Search", "Exact Search", "boolean", "function", "Instance", "number", "Other", "string", "table"}
  24. function GetTables(Last)
  25. if StartTable == nil then
  26. return {}
  27. end
  28. if Last == -1 then
  29. if #StoredTables > 0 then
  30. local TempST = StoredTables[#StoredTables]
  31. Opening = TempST["Opening"]
  32. StartTable = TempST["StartTable"]
  33. CurrentTable = TempST["CurrentTable"]
  34. TableNames = TempST["TableNames"]
  35. Tables = TempST["Tables"]
  36. IsUpVal = TempST["UpValue"]
  37. IsConstant = TempST["IsConstant"]
  38. IsProto = TempST["IsProto"]
  39. table.remove(StoredTables, #StoredTables)
  40. if Searches[CurrentTable] ~= nil then
  41. return Searches[CurrentTable]
  42. end
  43. return CurrentTable
  44. end
  45. elseif Last == 0 or Tables[Last] == nil then
  46. CurrentTable = StartTable
  47. Last = 0
  48. else
  49. CurrentTable = Tables[Last]
  50. end
  51. if Last < #Tables then
  52. for i = 1, #Tables-Last do
  53. table.remove(TableNames, #Tables+1-i)
  54. table.remove(Tables, #Tables+1-i)
  55. end
  56. end
  57. if Searches[CurrentTable] ~= nil then
  58. return Searches[CurrentTable]
  59. end
  60. return CurrentTable
  61. end
  62.  
  63. MDown = false
  64. Mouse = game.Players.LocalPlayer:GetMouse()
  65. FL = false
  66. Mouse.KeyUp:connect(function(K)
  67. if string.byte(K) == 13 and FL == true then
  68. ETB.Text = ETB.Text.."\n"
  69. ETB:CaptureFocus()
  70. end
  71. end)
  72. function ConvertNumbers(X, Y)
  73. TX = Mouse.ViewSizeX*X
  74. TY = Mouse.ViewSizeY*Y
  75. return TX, TY
  76. end
  77. function MoveableItem(item)
  78. item.InputBegan:connect(function(input)
  79. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  80. MDown = true
  81. CX, CY = ConvertNumbers(item.Position.X.Scale, item.Position.Y.Scale)
  82. item.Position = UDim2.new(0, item.Position.X.Offset+CX, 0, item.Position.Y.Offset+CY)
  83. StartX = Mouse.X - item.Position.X.Offset
  84. StartY = Mouse.Y - item.Position.Y.Offset
  85. while MDown == true do
  86. item.Position = UDim2.new(0, Mouse.X - StartX, 0, Mouse.Y - StartY)
  87. wait()
  88. end
  89. end
  90. end)
  91. item.InputEnded:connect(function(input)
  92. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  93. MDown = false
  94. end
  95. end)
  96. end
  97.  
  98. MainScreenGui = Instance.new("ScreenGui")
  99. if _G.GUI ~= nil then
  100. _G.GUI:remove()
  101. end
  102. _G.GUI = MainScreenGui
  103.  
  104. --Properties:
  105.  
  106. MainScreenGui.Name = "MainScreenGui"
  107. MainScreenGui.Parent = game:GetService("CoreGui")
  108. MainScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  109.  
  110. Viewer = Instance.new("Frame")
  111. MoveableItem(Viewer)
  112. Viewer.Name = "Viewer"
  113. Viewer.Parent = MainScreenGui
  114. Viewer.BackgroundColor3 = Color3.fromRGB(63, 63, 63)
  115. Viewer.BorderSizePixel = 0
  116. Viewer.Position = UDim2.new(0.140625, 0, 0.240762815, 0)
  117. Viewer.Size = UDim2.new(0.165*GuiScale, 0, 0.45*GuiScale, 0)
  118. Viewer.ZIndex = 2
  119.  
  120. TopBar = Instance.new("Frame")
  121. TopBar.Name = "TopBar"
  122. TopBar.Parent = Viewer
  123. TopBar.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  124. TopBar.BorderSizePixel = 0
  125. TopBar.Size = UDim2.new(1, 0, 0.07, 0)
  126.  
  127. JustATextLabel = Instance.new("TextLabel")
  128. JustATextLabel.Archivable = false
  129. JustATextLabel.Parent = TopBar
  130. JustATextLabel.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  131. JustATextLabel.BackgroundTransparency = 0
  132. JustATextLabel.BorderSizePixel = 0
  133. JustATextLabel.Position = UDim2.new(0.2, 0, 0, 0)
  134. JustATextLabel.Size = UDim2.new(0.6, 0, 1, 0)
  135. JustATextLabel.Font = Enum.Font.SourceSans
  136. JustATextLabel.Text = "Table Search"
  137. JustATextLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
  138. JustATextLabel.TextScaled = true
  139. JustATextLabel.TextSize = 14.000
  140. JustATextLabel.TextWrapped = true
  141.  
  142. FilterOC = Instance.new("TextButton")
  143. FilterOC.Parent = TopBar
  144. FilterOC.BackgroundColor3 = Color3.fromRGB(158, 202, 255)
  145. FilterOC.BorderSizePixel = 0
  146. FilterOC.Position = UDim2.new(0, 0, 0, 0)
  147. FilterOC.Size = UDim2.new(0.2, 0, 1, 0)
  148. FilterOC.Font = Enum.Font.Code
  149. FilterOC.Text = "Filter"
  150. FilterOC.TextColor3 = Color3.fromRGB(0, 0, 0)
  151. FilterOC.TextScaled = true
  152. FilterOC.TextWrapped = true
  153. FilterOC.MouseButton1Down:connect(function()
  154. Filter.Visible = not Filter.Visible
  155. Filter.Position = Viewer.Position - UDim2.new(0, 0, Filter.Size.Y.Scale, Filter.Size.Y.Offset+1)
  156. if Filter.Visible == true then
  157. FilterOC.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  158. else
  159. FilterOC.BackgroundColor3 = Color3.fromRGB(158, 202, 255)
  160. end
  161. end)
  162.  
  163. ConsoleOC = Instance.new("TextButton")
  164. ConsoleOC.Parent = TopBar
  165. ConsoleOC.BackgroundColor3 = Color3.fromRGB(158, 202, 255)
  166. ConsoleOC.BorderSizePixel = 0
  167. ConsoleOC.Position = UDim2.new(0.8, 0, 0, 0)
  168. ConsoleOC.Size = UDim2.new(0.2, 0, 1, 0)
  169. ConsoleOC.Font = Enum.Font.Code
  170. ConsoleOC.Text = "Console"
  171. ConsoleOC.TextColor3 = Color3.fromRGB(0, 0, 0)
  172. ConsoleOC.TextScaled = true
  173. ConsoleOC.TextWrapped = true
  174. ConsoleOC.MouseButton1Down:connect(function()
  175. ConsoleFrame.Visible = not ConsoleFrame.Visible
  176. ConsoleFrame.Position = Viewer.Position - UDim2.new(Filter.Size.X.Scale*-1, (Filter.Size.X.Offset+1)*-1, Filter.Size.Y.Scale, Filter.Size.Y.Offset+1)
  177. if ConsoleFrame.Visible == true then
  178. ConsoleOC.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  179. else
  180. ConsoleOC.BackgroundColor3 = Color3.fromRGB(158, 202, 255)
  181. end
  182. end)
  183.  
  184. Searchs = Instance.new("Frame")
  185. Searchs.Name = "Searchs"
  186. Searchs.Parent = Viewer
  187. Searchs.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  188. Searchs.BackgroundTransparency = 1.000
  189. Searchs.Position = UDim2.new(0, 0, 0.0703296736, 0)
  190. Searchs.Size = UDim2.new(1, 0, 0.129670337, 0)
  191.  
  192. TabSpot = Instance.new("TextBox")
  193. TabSpot.Parent = Searchs
  194. TabSpot.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  195. TabSpot.BorderSizePixel = 0
  196. TabSpot.Position = UDim2.new(0, 0, 0.0340000018, 0)
  197. TabSpot.Size = UDim2.new(0.8, 0, 0.440677971, 0)
  198. TabSpot.Font = Enum.Font.SourceSans
  199. TabSpot.PlaceholderColor3 = Color3.fromRGB(59, 59, 59)
  200. TabSpot.PlaceholderText = "Table"
  201. TabSpot.Text = ""
  202. TabSpot.TextColor3 = Color3.fromRGB(0, 0, 0)
  203. TabSpot.TextSize = 21.000
  204. TabSpot.TextScaled = true
  205.  
  206. Enter = Instance.new("TextButton")
  207. Enter.Parent = TabSpot
  208. Enter.BackgroundColor3 = Color3.fromRGB(73, 103, 173)
  209. Enter.BorderSizePixel = 0
  210. Enter.Position = UDim2.new(1, 0, 0, 0)
  211. Enter.Size = UDim2.new(0.25, 0, 1, 0)
  212. Enter.Font = Enum.Font.Code
  213. Enter.Text = "Enter"
  214. Enter.TextColor3 = Color3.fromRGB(0, 0, 0)
  215. Enter.TextSize = 21.000
  216. Enter.TextWrapped = true
  217. Enter.TextScaled = true
  218. Enter.MouseButton1Down:Connect(function()
  219. Searches = {}
  220. StoredTables = {}
  221. Tables = {}
  222. TableNames = {}
  223. IsUpValue = false
  224. IsConstant = false
  225. local SP = Specials(TabSpot.Text)
  226. if SP ~= nil then
  227. StartTable = SP
  228. CurrentTable = SP
  229. CurrentModify = nil
  230. DisplayTab(StartTable)
  231. return
  232. end
  233. Opening = TabSpot.Text
  234. LT = loadstring("return "..TabSpot.Text)()
  235. StartTable = LT
  236. CurrentTable = LT
  237. CurrentModify = nil
  238. CheckDebug(Opening)
  239. DisplayTab(StartTable)
  240. end)
  241.  
  242. function Specials(IP)
  243. local Tab = nil
  244. if string.lower(IP) == "reg" then
  245. Opening = "debug.getregistry()"
  246. Tab = {}
  247. for i, v in pairs(debug.getregistry()) do
  248. if typeof(v) ~= "number" and typeof(v) ~= "thread" and (typeof(v) ~= "function" or is_synapse_function(v) ~= true) and tonumber(i) ~= nil then
  249. Tab[i] = v
  250. end
  251. end
  252. end
  253. return Tab
  254. end
  255.  
  256. function CheckDebug(Op)
  257. if string.sub(Op, 1, 11) == "getupvalues" then
  258. GetUpVals = true
  259. elseif string.sub(Op, 1, 18) == "debug.getconstants" then
  260. IsConstant = true
  261. elseif string.sub(Op, 1, 15) == "debug.getprotos" then
  262. IsProto = true
  263. end
  264. end
  265.  
  266. SearchT = Instance.new("TextBox")
  267. SearchT.Name = "TextBox2"
  268. SearchT.Parent = Searchs
  269. SearchT.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  270. SearchT.BorderSizePixel = 0
  271. SearchT.Position = UDim2.new(0, Enter.AbsoluteSize.X, 0.5, 0)
  272. SearchT.Size = UDim2.new(1, -Enter.AbsoluteSize.X*2, 0.440677971, 0)
  273. SearchT.Font = Enum.Font.SourceSans
  274. SearchT.PlaceholderColor3 = Color3.fromRGB(63, 70, 88)
  275. SearchT.PlaceholderText = "Search in table"
  276. SearchT.Text = ""
  277. SearchT.TextColor3 = Color3.fromRGB(0, 0, 0)
  278. SearchT.TextSize = 21.000
  279. SearchT.TextWrapped = true
  280. SearchT.TextScaled = true
  281.  
  282. ClearSearch = Instance.new("TextButton")
  283. ClearSearch.Parent = SearchT
  284. ClearSearch.BackgroundColor3 = Color3.fromRGB(73, 103, 173)
  285. ClearSearch.BorderSizePixel = 0
  286. ClearSearch.Position = UDim2.new(0, -Enter.AbsoluteSize.X, 0, 0)
  287. ClearSearch.Size = UDim2.new(0, Enter.AbsoluteSize.X, 1, 0)
  288. ClearSearch.Font = Enum.Font.Code
  289. ClearSearch.Text = "Clear"
  290. ClearSearch.TextColor3 = Color3.fromRGB(0, 0, 0)
  291. ClearSearch.TextSize = 21.000
  292. ClearSearch.TextWrapped = true
  293. ClearSearch.TextScaled = true
  294. ClearSearch.MouseButton1Down:connect(function()
  295. if Searches[CurrentTable] ~= nil then
  296. Searches[CurrentTable] = nil
  297. end
  298. DisplayTab(CurrentTable)
  299. end)
  300.  
  301.  
  302. SearchE = Instance.new("TextButton")
  303. SearchE.Parent = SearchT
  304. SearchE.BackgroundColor3 = Color3.fromRGB(73, 103, 173)
  305. SearchE.BorderSizePixel = 0
  306. SearchE.Position = UDim2.new(1, 0, 0, 0)
  307. SearchE.Size = UDim2.new(0, Enter.AbsoluteSize.X, 1, 0)
  308. SearchE.Font = Enum.Font.Code
  309. SearchE.Text = "Find"
  310. SearchE.TextColor3 = Color3.fromRGB(0, 0, 0)
  311. SearchE.TextSize = 21.000
  312. SearchE.TextWrapped = true
  313. SearchE.TextScaled = true
  314. SearchE.MouseButton1Down:connect(function()
  315. local FoundTables = {}
  316. local TempTable = {}
  317. local LF = string.lower(SearchT.Text)
  318. for i, v in pairs(CurrentTable) do
  319. if Filters["Name Search"] == true and ((Filters["Exact Search"] ~= true and string.match(string.lower(tostring(i)), LF)) or (Filters["Exact Search"] == true and tostring(i) == SearchT.Text)) or Filters["Value Search"] == true and ((Filters["Exact Search"] ~= true and string.match(string.lower(tostring(v)), LF)) or (Filters["Exact Search"] == true and tostring(v) == SearchT.Text)) then
  320. TempTable[i] = v
  321. elseif typeof(v) == "table" and Filters["Table Search"] == true then
  322. SearchTable(TempTable, v, v, LF, i, 0, tostring(v))
  323. elseif typeof(v) == "function" and (Filters["Upvalue Search"] == true or Filters["Constants Search"] == true and Filters["Value Search"] == true) then
  324. if Filters["Upvalue Search"] == true then
  325. SearchTable(TempTable, v, getupvalues(v), LF, i, 0, "getupvalues("..tostring(v)..")", SearchT.Text)
  326. end
  327. if Filters["Constants Search"] == true and Filters["Value Search"] == true and islclosure(v) == true then
  328. SearchTable(TempTable, v, debug.getconstants(v), LF, i, 0, "debug.getconstants("..tostring(v)..")", SearchT.Text)
  329. end
  330. end
  331. end
  332. Searches[CurrentTable] = TempTable
  333. DisplayTab(TempTable)
  334. end)
  335. local MaxDepth = 5
  336. function SearchTable(StartingTable, StartingTable2, ToSearch, SearchValue, CTableName, Depth, CurrentString, ES)
  337. if Depth >= MaxDepth or CTableName ~= nil and StartingTable[CTableName] ~= nil then
  338. return
  339. end
  340. for i, v in pairs(ToSearch) do
  341. if (Filters["Name Search"] == true and (Filters["Exact Search"] == false and string.match(string.lower(tostring(i)), SearchValue) or Filters["Exact Search"] == true and tostring(i) == ES) or Filters["Value Search"] == true and (Filters["Exact Search"] == false and string.match(string.lower(tostring(v)), SearchValue) or Filters["Exact Search"] == true and tostring(v) == ES)) and (Filters[typeof(v)] == true or Filters[typeof(v)] == nil and Filters["Other"] == true) then
  342. StartingTable[CTableName] = StartingTable2
  343. CurrentString = CurrentString.."["..tostring(i).."] ("..tostring(typeof(v))
  344. if string.match(string.lower(tostring(i)), SearchValue) and Filters["Name Search"] == true then
  345. CurrentString = CurrentString..") - Name Search"
  346. else
  347. CurrentString = CurrentString..", '"..tostring(v).."') - Value Search"
  348. end
  349. FoundLocations[StartingTable2] = CurrentString
  350. return
  351. elseif typeof(v) == "table" and v ~= ToSearch then
  352. SearchTable(StartingTable, StartingTable2, v, SearchValue, CTableName, Depth + 1, CurrentString.."["..tostring(i).."]", ES)
  353. elseif typeof(v) == "function" and (Filters["Inside Upvalue"] == true or Filters["Constants Search"] == true and Filters["Value Search"] == true) then
  354. if Filters["Inside Upvalue"] == true then
  355. SearchTable(StartingTable, StartingTable2, getupvalues(v), SearchValue, CTableName, Depth + 1, "getupvalues("..CurrentString.."["..tostring(i).."])", ES)
  356. end
  357. if Filters["Constants Search"] == true and Filters["Value Search"] == true and islclosure(v) == true then
  358. SearchTable(StartingTable, StartingTable2, debug.getconstants(v), SearchValue, CTableName, Depth + 1, "debug.getconstants("..CurrentString.."["..tostring(i).."])", ES)
  359. end
  360. end
  361. end
  362. end
  363.  
  364. Scroll = Instance.new("ScrollingFrame")
  365. Scroll.Name = "Tables"
  366. Scroll.Parent = Viewer
  367. Scroll.Active = true
  368. Scroll.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  369. Scroll.BackgroundTransparency = 1.000
  370. Scroll.BorderSizePixel = 0
  371. Scroll.Position = UDim2.new(0, 0, 0.208010629, 0)
  372. Scroll.Size = UDim2.new(1, 0, 0.707692325, 0)
  373. Scroll.ScrollBarThickness = 0
  374. ScrollTab = {}
  375.  
  376. DisplayTextFunction = Instance.new("TextButton")
  377. DisplayTextFunction.Parent = Scroll
  378. DisplayTextFunction.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  379. DisplayTextFunction.BorderSizePixel = 0
  380. DisplayTextFunction.Size = UDim2.new(0.768, 0, 0, 31)
  381. DisplayTextFunction.Font = Enum.Font.Code
  382. DisplayTextFunction.Text = "Test"
  383. DisplayTextFunction.TextColor3 = Color3.fromRGB(0, 0, 0)
  384. DisplayTextFunction.TextScaled = true
  385. DisplayTextFunction.Visible = false
  386.  
  387. DisplayText = Instance.new("TextButton")
  388. DisplayText.Parent = Scroll
  389. DisplayText.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  390. DisplayText.BorderSizePixel = 0
  391. DisplayText.Size = UDim2.new(0.96, 0, 0, 31)
  392. DisplayText.Font = Enum.Font.Code
  393. DisplayText.Text = "Test"
  394. DisplayText.TextColor3 = Color3.fromRGB(0, 0, 0)
  395. DisplayText.TextScaled = true
  396. DisplayText.Visible = false
  397.  
  398. GetPathButton = Instance.new("TextButton")
  399. GetPathButton.Name = "GetPath"
  400. GetPathButton.Parent = DisplayTextFunction
  401. GetPathButton.BackgroundColor3 = Color3.fromRGB(73, 103, 173)
  402. GetPathButton.BorderSizePixel = 0
  403. GetPathButton.Position = UDim2.new(1, 0, 0, 0)
  404. GetPathButton.Size = UDim2.new(0.25, 0, 1, 0)
  405. GetPathButton.Font = Enum.Font.Code
  406. GetPathButton.Text = "GetPath"
  407. GetPathButton.TextColor3 = Color3.fromRGB(0, 0, 0)
  408. GetPathButton.TextSize = 21.000
  409. GetPathButton.TextWrapped = true
  410. GetPathButton.TextScaled = true
  411.  
  412. function ClearTab()
  413. for i = 1, #ScrollTab do
  414. ScrollTab[i]:remove()
  415. end
  416. ScrollTab = {}
  417. end
  418. Ignores = {["thread"] = true}
  419. function DisplayTab(Tab)
  420. ClearTab()
  421. local Count = 0
  422. for i, v in pairs(Tab) do
  423. if Ignores[typeof(v)] == nil and (Filters[typeof(v)] == true or Filters[typeof(v)] == nil and Filters["Other"] == true) then
  424. if Count >= 4000 then
  425. spawn(function()
  426. JustATextLabel.Text = "Table Search - Warning over 4K items!"
  427. wait(3)
  428. JustATextLabel.Text = "Table Search"
  429. end)
  430. break
  431. end
  432. Count = Count + 1
  433. local Button = nil
  434. if typeof(v) == "function" or typeof(v) == "table" then
  435. Button = DisplayTextFunction:Clone()
  436. else
  437. Button = DisplayText:Clone()
  438. end
  439. Button.Visible = true
  440. Button.Parent = Scroll
  441. Button.Position = UDim2.new(0.02, 0, 0, 34*#ScrollTab)
  442. table.insert(ScrollTab, Button)
  443. Scroll.CanvasSize = UDim2.new(0, 0, 0, 34*(#ScrollTab+1))
  444. Button.Text = tostring(i).." : "..tostring(typeof(v))
  445. Button.MouseButton1Down:connect(function()
  446. Selected = v
  447. if typeof(v) == "table" then
  448. table.insert(Tables, v)
  449. if typeof(i) == "string" then
  450. table.insert(TableNames, '"'..i..'"')
  451. else
  452. table.insert(TableNames, i)
  453. end
  454. CurrentTable = v
  455. DisplayTab(v)
  456. else
  457. Editor.Visible = true
  458. Editor.Position = Viewer.Position+UDim2.new(Viewer.Size.X.Scale, Viewer.Size.X.Offset+1, 0, 0)
  459. CurrentModify = i
  460. if typeof(v) == "function" then
  461. ETB.Text = "function MainFunction(...) \nargs = {...}\n\nreturn _G[\""..GetStartName(v)..tostring(CurrentModify).."\"](unpack(args))\nend"
  462. elseif typeof(v) == "Instance" then
  463. _G.CurrentObject = v
  464. ETB.Text = "local Object = _G.CurrentObject--"..tostring(v.ClassName).."\n"
  465. else
  466. ETB.Text = tostring(v)
  467. end
  468. EditorMode(typeof(v))
  469. end
  470. end)
  471. if Button:FindFirstChild("GetPath") then
  472. Button.GetPath.MouseButton1Down:connect(function()
  473. if FoundLocations[v] ~= nil then
  474. CPrint("Location: "..tostring(i)..": "..tostring(FoundLocations[v]))
  475. end
  476. end)
  477. end
  478. if typeof(v) ~= "table" then
  479. Button.Text = Button.Text.." : "..tostring(v)
  480. end
  481. end
  482. end
  483. end
  484.  
  485. --[[
  486. UIListLayout = Instance.new("UIListLayout")
  487. UIListLayout.Parent = Scroll
  488. UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
  489. UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
  490. UIListLayout.Padding = UDim.new(0, 3)]]--
  491.  
  492. Back = Instance.new("TextButton")
  493. Back.Name = "Back"
  494. Back.Parent = Viewer
  495. Back.BackgroundColor3 = Color3.fromRGB(68, 68, 68)
  496. Back.BackgroundTransparency = 0.900
  497. Back.BorderSizePixel = 0
  498. Back.Position = UDim2.new(0, 0, 0.915, 0)
  499. Back.Size = UDim2.new(0.155, 0, 0.085, 0)
  500. Back.Font = Enum.Font.SourceSans
  501. Back.Text = "<="
  502. Back.TextColor3 = Color3.fromRGB(255, 255, 255)
  503. Back.TextScaled = true
  504. Back.TextSize = 21.000
  505. Back.TextWrapped = true
  506. Back.MouseButton1Down:connect(function()
  507. DisplayTab(GetTables(#Tables-1))
  508. end)
  509.  
  510. DisplayLocation = Instance.new("TextButton")
  511. DisplayLocation.Name = "DisplayLocation"
  512. DisplayLocation.Parent = Viewer
  513. DisplayLocation.BackgroundColor3 = Color3.fromRGB(68, 68, 68)
  514. DisplayLocation.BackgroundTransparency = 0.900
  515. DisplayLocation.BorderSizePixel = 0
  516. DisplayLocation.Position = UDim2.new(0.155, 0, 0.915, 0)
  517. DisplayLocation.Size = UDim2.new(0.845, 0, 0.085, 0)
  518. DisplayLocation.Font = Enum.Font.SourceSans
  519. DisplayLocation.Text = "TempNothingHere"
  520. DisplayLocation.TextColor3 = Color3.fromRGB(255, 255, 255)
  521. DisplayLocation.TextScaled = true
  522. DisplayLocation.TextSize = 21.000
  523. DisplayLocation.TextWrapped = true
  524. DisplayLocation.MouseButton1Down:connect(function()
  525. setclipboard(DisplayLocation.Text)
  526. end)
  527. spawn(function()
  528. local TableNumber = 0
  529. local LastOpen = Opening
  530. while wait(0.1) do
  531. if TableNumber ~= #Tables or LastOpen ~= Opening then
  532. TableNumber = #Tables
  533. LastOpen = Opining
  534. pcall(function()
  535. DisplayLocation.Text = GetSpecialIE(Opening, false)
  536. end)
  537. end
  538. end
  539. end)
  540.  
  541. function EditorMode(M)
  542. EditorFunction.Visible = false
  543. if M == "function" or M == "Instance" then
  544. Editor.Size = UDim2.new(Viewer.Size.X.Scale*1.45, 0, Viewer.Size.Y.Scale, 0)
  545. if M == "function" then
  546. EditorFunction.Visible = true
  547. end
  548. else
  549. Editor.Size = UDim2.new(Viewer.Size.X.Scale*0.65, 0, Viewer.Size.Y.Scale*0.35, 0)
  550. end
  551. end
  552.  
  553. Editor = Instance.new("Frame")
  554. Editor.Name = "Editor"
  555. Editor.Parent = MainScreenGui
  556. Editor.BackgroundColor3 = Color3.fromRGB(63, 63, 63)
  557. Editor.BorderSizePixel = 0
  558. Editor.Position = UDim2.new(0.323958337, 0, 0.240762815, 0)
  559. Editor.Size = UDim2.new(Viewer.Size.X.Scale*1.45, 0, Viewer.Size.Y.Scale, 0)
  560. Editor.Visible = false
  561. MoveableItem(Editor)
  562.  
  563. EditorFunction = Instance.new("Frame", Editor)
  564. EditorFunction.Name = "EditorFunction"
  565. EditorFunction.BackgroundColor3 = Color3.fromRGB(63, 63, 63)
  566. EditorFunction.BorderSizePixel = 0
  567. EditorFunction.Position = UDim2.new(0, 0, 1, 0)
  568. EditorFunction.Size = UDim2.new(1, 0, 0.1, 0)
  569. EditorFunction.Visible = false
  570.  
  571. TopBarEditor = Instance.new("Frame")
  572. TopBarEditor.Name = "TopBarEditor"
  573. TopBarEditor.Parent = Editor
  574. TopBarEditor.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  575. TopBarEditor.BorderSizePixel = 0
  576. TopBarEditor.Size = UDim2.new(1, 0, 0, 0.07*Viewer.AbsoluteSize.Y+1)
  577.  
  578. TextLabel_2 = Instance.new("TextLabel")
  579. TextLabel_2.Parent = TopBarEditor
  580. TextLabel_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  581. TextLabel_2.BackgroundTransparency = 1.000
  582. TextLabel_2.BorderSizePixel = 0
  583. TextLabel_2.Position = UDim2.new(0, 0, 0, 0)
  584. TextLabel_2.Size = UDim2.new(1, 0, 1, 0)
  585. TextLabel_2.Font = Enum.Font.SourceSans
  586. TextLabel_2.Text = "Editor"
  587. TextLabel_2.TextColor3 = Color3.fromRGB(0, 0, 0)
  588. TextLabel_2.TextScaled = true
  589. TextLabel_2.TextWrapped = true
  590.  
  591. Close = Instance.new("TextButton", Editor)
  592. Close.Size = UDim2.new(0, 0.07*Viewer.AbsoluteSize.Y+1, 0, 0.07*Viewer.AbsoluteSize.Y+1)
  593. Close.Position = UDim2.new(1, -(0.07*Viewer.AbsoluteSize.Y+1), 0, 0)
  594. Close.BackgroundColor3 = Color3.new(0, 0, 0)
  595. Close.TextColor3 = Color3.new(1, 1, 1)
  596. Close.TextScaled = true
  597. Close.Text = "X"
  598. Close.BorderSizePixel = 0
  599. Close.MouseButton1Down:connect(function()
  600. Editor.Visible = false
  601. end)
  602.  
  603. ScrollSize = 1500
  604. ETBScroll = Instance.new("ScrollingFrame")
  605. ETBScroll.Parent = Editor
  606. ETBScroll.Active = true
  607. ETBScroll.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  608. ETBScroll.BackgroundTransparency = 1.000
  609. ETBScroll.BorderSizePixel = 0
  610. ETBScroll.Position = UDim2.new(0, 0, 0, 0.07*Viewer.AbsoluteSize.Y+1)
  611. ETBScroll.Size = UDim2.new(1, 0, 0.89, -(0.07*Viewer.AbsoluteSize.Y+1))
  612. ETBScroll.ScrollBarThickness = 0
  613. ETBScroll.CanvasSize = UDim2.new(0, 0, 0, ScrollSize)
  614.  
  615. function GetSize(Text, FontSize, Font, XSize, MaxY)
  616. if typeof(Font) == "string" then
  617. Font = Enum.Font[Font]
  618. end
  619. local Val = game:GetService("TextService"):GetTextSize(Text, FontSize, Font, Vector2.new(XSize, MaxY*FontSize))
  620. return Vector2.new(XSize, Val.Y)
  621. end
  622.  
  623. function DeterminLine()
  624. Pos = ETB.CursorPosition
  625. local TempSTR = string.sub(ETB.Text, 1, Pos-1)
  626. local SSize = GetSize(TempSTR, 20, "SourceSans", Editor.Size.X.Offset, ScrollSize/20)
  627. Line = SSize.Y/20
  628. return Line
  629. end
  630.  
  631. ETB = Instance.new("TextBox")
  632. ETB.Parent = ETBScroll
  633. ETB.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  634. ETB.BackgroundTransparency = 1.000
  635. ETB.Size = UDim2.new(0.99, 0, 0, ScrollSize)
  636. ETB.Position = UDim2.new(0.005, 0, 0, 0)
  637. ETB.Font = Enum.Font.SourceSans
  638. ETB.MultiLine = true
  639. ETB.PlaceholderText = "Change goes here, if it is a function do something like function Test(...) return 'Test' end \nIf you are modifying a function please make sure the main function is named MainFunction."
  640. ETB.Text = ""
  641. ETB.TextColor3 = Color3.fromRGB(255, 255, 255)
  642. ETB.TextSize = 20.000
  643. ETB.TextWrapped = true
  644. ETB.TextXAlignment = Enum.TextXAlignment.Left
  645. ETB.TextYAlignment = Enum.TextYAlignment.Top
  646. ETB.ClearTextOnFocus = false
  647. ETB:GetPropertyChangedSignal("Text"):connect(function()
  648. local Spot = DeterminLine()
  649. if Spot > 16 and ETB:IsFocused() == true then
  650. ETBScroll.CanvasPosition = Vector2.new(0, 20*(Spot-16))
  651. else
  652. ETBScroll.CanvasPosition = Vector2.new(0, 0)
  653. end
  654. end)
  655.  
  656. function GetIE()
  657. local IE = Opening
  658. for i = 1, #Tables do
  659. IE = IE..'['..TableNames[i]..']'
  660. end
  661. if CurrentModify ~= nil then
  662. if CurrentTable[tostring(CurrentModify)] ~= nil then
  663. IE = IE..'["'..tostring(CurrentModify)..'"]'
  664. else
  665. IE = IE..'['..tostring(CurrentModify)..']'
  666. end
  667. end
  668. return IE
  669. end
  670.  
  671. function GetSpecialIE(Open, Val)
  672. local IE = Open
  673. for i = 1, #Tables do
  674. IE = IE..'['..TableNames[i]..']'
  675. end
  676. if Val == true then
  677. if CurrentTable[tostring(CurrentModify)] ~= nil then
  678. IE = IE..', "'..tostring(CurrentModify)..'"'
  679. else
  680. IE = IE..', '..tostring(CurrentModify)
  681. end
  682. end
  683. return IE
  684. end
  685.  
  686. Apply = Instance.new("TextButton")
  687. Apply.Name = "Apply"
  688. Apply.Parent = Editor
  689. Apply.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  690. Apply.BorderSizePixel = 0
  691. Apply.Position = UDim2.new(0, 0, 0.89, 0)
  692. Apply.Size = UDim2.new(1, 0, 0.1, 0)
  693. Apply.Font = Enum.Font.SourceSans
  694. Apply.Text = "Apply"
  695. Apply.TextColor3 = Color3.fromRGB(0, 0, 0)
  696. Apply.TextSize = 21.000
  697. Apply.TextScaled = true
  698. Apply.MouseButton1Down:connect(function()
  699. local IE = GetIE()
  700. local TP = typeof(CurrentTable[CurrentModify])
  701. if TP == "function" then
  702. if _G[GetStartName(CurrentTable[CurrentModify])..tostring(CurrentModify)] == nil then
  703. _G[GetStartName(CurrentTable[CurrentModify])..tostring(CurrentModify)] = hookfunction(CurrentTable[CurrentModify], function(...)
  704. return _G[GetStartName(CurrentTable[CurrentModify])..tostring(CurrentModify)](...)
  705. end)
  706. end
  707. local TempFunction = loadstring(ETB.Text.." return MainFunction")()
  708. if TempFunction ~= nil then
  709. hookfunction(CurrentTable[CurrentModify], TempFunction)
  710. end
  711. end
  712. if (IsUpVal ~= true and IsConstant ~= true and IsProto ~= true or #Tables > 0) and TP ~= "function" then
  713. if TP == "string" then
  714. SetThing(IE, '"'..ETB.Text..'"')
  715. elseif TP == "CFrame" or TP == "Vector3" or TP == "Color3" or TP == "Ray" then
  716. SetThing(IE, TP..".new("..ETB.Text..")")
  717. elseif TP == "BrickColor" then
  718. SetThing(IE, TP..'.new("'..ETB.Text..'")')
  719. elseif TP == "Instance" then
  720. if typeof(CurrentModify) == "Instance" then
  721. IE = GetSpecialIE(Opening, false).."[_G.CurrentObject]"
  722. end
  723. LS(ETB.Text.."\n"..IE.." = Object")
  724. else
  725. SetThing(IE, ETB.Text)
  726. end
  727. elseif (IsUpVal == true or IsConstant == true or IsProto == true) and TP ~= "function" then
  728. local Start = GetSpecialIE(Opening, false)
  729. local Leng = 13
  730. local SMode = "UpVal"
  731. if IsConstant == true then
  732. Leng = 20
  733. SMode = "Constant"
  734. elseif IsProto == true then
  735. SMode = "Proto"
  736. Leng = 17
  737. end
  738. if string.sub(Start, string.len(Start), string.len(Start)) == ")" then
  739. Start = GetSpecialIE(string.sub(Opening, Leng, string.len(Opening)-1), true)
  740. else
  741. Start = GetSpecialIE(Opening, true)
  742. end
  743. if TP == "string" then
  744. SetThing(Start, '"'..ETB.Text..'"', SMode)
  745. elseif TP == "CFrame" or TP == "Vector3" or TP == "Color3" or TP == "Ray" or TP == "UDim2" then
  746. SetThing(Start, TP..".new("..ETB.Text..")", SMode)
  747. elseif TP == "BrickColor" then
  748. SetThing(Start, TP..'.new("'..ETB.Text..'")', SMode)
  749. elseif TP == "Instance" then
  750. if IsUpVal == true then
  751. LS(ETB.Text.."\nsetupvalue("..Start..", Object)")
  752. elseif IsConstant == true then
  753. LS(ETB.Text.."\ndebug.getconstants("..Start..", Object)")
  754. else
  755. LS(ETB.Text.."\ndebug.getprotos("..Start..", Object)")
  756. end
  757. else
  758. SetThing(Start, ETB.Text, SMode)
  759. end
  760. local TempStartTable = LS("return "..Opening)
  761. if TempStartTable ~= nil then
  762. StartTable = TempStartTable
  763. CurrentTable = StartTable
  764. end
  765. end
  766. DisplayTab(CurrentTable)
  767. end)
  768.  
  769. function SetThing(Thing, Arg, Val)
  770. if Val == "UpVal" then
  771. LS("setupvalue("..Thing..", "..Arg..")")
  772. elseif Val == "Constant" then
  773. LS("debug.setconstant("..Thing..", "..Arg..")")
  774. elseif Val == "Proto" then
  775. LS("debug.setproto("..Thing..", "..Arg..")")
  776. else
  777. LS(Thing.." = "..Arg)
  778. end
  779. end
  780.  
  781. function LS(LTE)
  782. local Worked, PossibleError = pcall(function()
  783. return loadstring(LTE)()
  784. end)
  785. if Worked == false then
  786. CError("\n--[["..tostring(PossibleError).."\n"..LTE.."]]--")
  787. else
  788. return PossibleError
  789. end
  790. end
  791.  
  792. DebugMode = Instance.new("TextButton")
  793. DebugMode.Name = "DebugMode"
  794. DebugMode.Parent = EditorFunction
  795. DebugMode.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  796. DebugMode.BorderSizePixel = 0
  797. DebugMode.Position = UDim2.new(0, 0, 0, 0)
  798. DebugMode.Size = UDim2.new(0.25, 0, 1, 0)
  799. DebugMode.Font = Enum.Font.SourceSans
  800. DebugMode.Text = "Setup\nDebug"
  801. DebugMode.TextColor3 = Color3.fromRGB(0, 0, 0)
  802. DebugMode.TextSize = 21.000
  803. DebugMode.TextWrapped = true
  804. DebugMode.TextScaled = true
  805. DebugMode.MouseButton1Down:connect(function()
  806. if typeof(CurrentTable[CurrentModify]) == "function" then
  807. ETB.Text = "function MainFunction(...) \nargs = {...}\nCPrint('-----"..tostring(CurrentModify).."-----')\nCPrint('{'..GetValues(args)..'}')\nlocal R = _G[\""..GetStartName(CurrentTable[CurrentModify])..tostring(CurrentModify).."\"](unpack(args)) \nCPrint('--return: '..tostring(R)..' : '..typeof(R))\n\nreturn R\nend"
  808. end
  809. end)
  810.  
  811. GetUpVals = Instance.new("TextButton")
  812. GetUpVals.Name = "GetUpVals"
  813. GetUpVals.Parent = EditorFunction
  814. GetUpVals.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  815. GetUpVals.BorderSizePixel = 0
  816. GetUpVals.Position = UDim2.new(0.25, 0, 0, 0)
  817. GetUpVals.Size = UDim2.new(0.25, 0, 1, 0)
  818. GetUpVals.Font = Enum.Font.SourceSans
  819. GetUpVals.Text = "Get\nUpvalues"
  820. GetUpVals.TextColor3 = Color3.fromRGB(0, 0, 0)
  821. GetUpVals.TextSize = 21.000
  822. GetUpVals.TextWrapped = true
  823. GetUpVals.TextScaled = true
  824. GetUpVals.MouseButton1Down:connect(function()
  825. if typeof(CurrentTable[CurrentModify]) == "function" then
  826. local TB = MakeTempTable()
  827. local TempOpening = "getupvalues("..GetIE()..")"
  828. if StartOpening(TempOpening) then
  829. table.insert(StoredTables, TB)
  830. IsUpVal = true
  831. IsConstant = false
  832. IsProto = false
  833. Opening = TempOpening
  834. end
  835. --{["StartTable"], ["CurrentTable"], ["TableNames"], ["Tables"], ["UpValue"], ["IsConstant"]}
  836. end
  837. end)
  838.  
  839. GetConst = Instance.new("TextButton")
  840. GetConst.Name = "GetConst"
  841. GetConst.Parent = EditorFunction
  842. GetConst.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  843. GetConst.BorderSizePixel = 0
  844. GetConst.Position = UDim2.new(0.5, 0, 0, 0)
  845. GetConst.Size = UDim2.new(0.25, 0, 1, 0)
  846. GetConst.Font = Enum.Font.SourceSans
  847. GetConst.Text = "Get\nConstants"
  848. GetConst.TextColor3 = Color3.fromRGB(0, 0, 0)
  849. GetConst.TextSize = 21.000
  850. GetConst.TextWrapped = true
  851. GetConst.TextScaled = true
  852. GetConst.MouseButton1Down:connect(function()
  853. if typeof(CurrentTable[CurrentModify]) == "function" and islclosure(CurrentTable[CurrentModify]) == true then
  854. local TB = MakeTempTable()
  855. local TempOpening = "debug.getconstants("..GetIE()..")"
  856. if StartOpening(TempOpening) then
  857. table.insert(StoredTables, TB)
  858. IsUpVal = false
  859. IsConstant = true
  860. IsProto = false
  861. Opening = TempOpening
  862. end
  863. end
  864. end)
  865.  
  866. GetProto = Instance.new("TextButton")
  867. GetProto.Name = "GetProto"
  868. GetProto.Parent = EditorFunction
  869. GetProto.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  870. GetProto.BorderSizePixel = 0
  871. GetProto.Position = UDim2.new(0.75, 0, 0, 0)
  872. GetProto.Size = UDim2.new(0.25, 0, 1, 0)
  873. GetProto.Font = Enum.Font.SourceSans
  874. GetProto.Text = "Get\nProtos"
  875. GetProto.TextColor3 = Color3.fromRGB(0, 0, 0)
  876. GetProto.TextSize = 21.000
  877. GetProto.TextWrapped = true
  878. GetProto.TextScaled = true
  879. GetProto.MouseButton1Down:connect(function()
  880. if typeof(CurrentTable[CurrentModify]) == "function" and islclosure(CurrentTable[CurrentModify]) == true then
  881. local TB = MakeTempTable()
  882. local TempOpening = "debug.getprotos("..GetIE()..")"
  883. if StartOpening(TempOpening) then
  884. table.insert(StoredTables, TB)
  885. IsUpVal = false
  886. IsConstant = false
  887. IsProto = true
  888. Opening = TempOpening
  889. end
  890. end
  891. end)
  892.  
  893. function MakeTempTable()
  894. local TempST = {}
  895. TempST["StartTable"] = StartTable
  896. TempST["CurrentTable"] = CurrentTable
  897. TempST["TableNames"] = TableNames
  898. TempST["Tables"] = Tables
  899. TempST["UpValue"] = IsUpVal
  900. TempST["Opening"] = Opening
  901. TempST["IsConstant"] = IsConstant
  902. TempST["IsProto"] = IsProto
  903. return TempST
  904. end
  905.  
  906. function StartOpening(OpeningHere)
  907. LT = LS("return "..OpeningHere)
  908. if LT == nil then
  909. return false
  910. end
  911. local Number = 0
  912. for i, v in pairs(LT) do
  913. Number = Number + 1
  914. break
  915. end
  916. if Number < 1 then
  917. return false
  918. end
  919. StartTable = LT
  920. CurrentTable = LT
  921. CurrentModify = nil
  922. Tables = {}
  923. TableNames = {}
  924. DisplayTab(StartTable)
  925. return true
  926. --{["StartTable"], ["CurrentTable"], ["TableNames"], ["Tables"], ["UpValue"], ["IsConstant"], ["IsProto"]}
  927. end
  928.  
  929. Filter = Instance.new("Frame")
  930. Filter.Parent = MainScreenGui
  931. Filter.BackgroundColor3 = Color3.fromRGB(63, 63, 63)
  932. Filter.BorderSizePixel = 0
  933. Filter.Position = UDim2.new(0.4765625, 0, 0.2407628, 0)
  934. Filter.Size = UDim2.new(Viewer.Size.X.Scale*0.756, 0, Viewer.Size.Y.Scale*0.65, 0)
  935. Filter.Visible = false
  936. MoveableItem(Filter)
  937.  
  938. FilterButton = Instance.new("TextButton")
  939. FilterButton.Parent = Filter
  940. FilterButton.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  941. FilterButton.BorderSizePixel = 0
  942. FilterButton.Position = UDim2.new(0.0996015966, 0, 0.825002134, 0)
  943. FilterButton.Size = UDim2.new(0.796812773, 0, 0.140562251, 0)
  944. FilterButton.Font = Enum.Font.SourceSans
  945. FilterButton.Text = "Filter"
  946. FilterButton.TextColor3 = Color3.fromRGB(0, 0, 0)
  947. FilterButton.TextSize = 21.000
  948. FilterButton.TextScaled = true
  949. FilterButton.MouseButton1Down:connect(function()
  950. DisplayTab(CurrentTable)
  951. end)
  952.  
  953. FilterFrame = Instance.new("Frame")
  954. FilterFrame.Parent = Filter
  955. FilterFrame.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  956. FilterFrame.BorderSizePixel = 0
  957. FilterFrame.Size = UDim2.new(1, 0, 0.11, 0)
  958.  
  959. FilterLabel = Instance.new("TextLabel")
  960. FilterLabel.Parent = FilterFrame
  961. FilterLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  962. FilterLabel.BackgroundTransparency = 1.000
  963. FilterLabel.BorderSizePixel = 0
  964. FilterLabel.Size = UDim2.new(1, 0, 1, 0)
  965. FilterLabel.Font = Enum.Font.SourceSans
  966. FilterLabel.Text = "Filter"
  967. FilterLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
  968. FilterLabel.TextScaled = true
  969. FilterLabel.TextSize = 21.000
  970. FilterLabel.TextWrapped = true
  971. FilterLabel.TextScaled = true
  972.  
  973. FilterClose = Instance.new("TextButton", FilterLabel)
  974. FilterClose.Size = UDim2.new(0, FilterLabel.AbsoluteSize.Y, 1, 0)
  975. FilterClose.Position = UDim2.new(1, -(FilterLabel.AbsoluteSize.Y), 0, 0)
  976. FilterClose.BackgroundColor3 = Color3.new(0, 0, 0)
  977. FilterClose.TextColor3 = Color3.new(1, 1, 1)
  978. FilterClose.TextScaled = true
  979. FilterClose.Text = "X"
  980. FilterClose.BorderSizePixel = 0
  981. FilterClose.MouseButton1Down:connect(function()
  982. Filter.Visible = false
  983. end)
  984.  
  985. FilterScroll = Instance.new("ScrollingFrame")
  986. FilterScroll.Parent = Filter
  987. FilterScroll.Active = true
  988. FilterScroll.BackgroundColor3 = Color3.fromRGB(63, 63, 63)
  989. FilterScroll.BorderSizePixel = 0
  990. FilterScroll.Position = UDim2.new(0, 0, 0.164658636, 0)
  991. FilterScroll.Size = UDim2.new(1, 0, 0.570281148, 0)
  992. FilterScroll.ScrollBarThickness = 0
  993.  
  994. FilterLayout = Instance.new("UIListLayout")
  995. FilterLayout.Parent = FilterScroll
  996. FilterLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
  997. FilterLayout.SortOrder = Enum.SortOrder.LayoutOrder
  998. FilterLayout.Padding = UDim.new(0, 3)
  999.  
  1000. TempFilterButton = Instance.new("TextButton")
  1001. TempFilterButton.Parent = FilterScroll
  1002. TempFilterButton.BackgroundColor3 = Color3.fromRGB(132, 182, 255)
  1003. TempFilterButton.BorderSizePixel = 0
  1004. TempFilterButton.Size = UDim2.new(1, 0, 0, FilterLabel.AbsoluteSize.Y)
  1005. TempFilterButton.Font = Enum.Font.SourceSans
  1006. TempFilterButton.TextColor3 = Color3.fromRGB(0, 0, 0)
  1007. TempFilterButton.TextSize = 14.000
  1008. TempFilterButton.Visible = false
  1009. TempFilterButton.TextScaled = true
  1010. FilterTab = {}
  1011.  
  1012. for a = 1, #Order do
  1013. local i = Order[a]
  1014. local v = Filters[i]
  1015. local Button = TempFilterButton:Clone()
  1016. Button.Visible = true
  1017. Button.Parent = FilterScroll
  1018. Button.Text = tostring(i).." : "..tostring(v)
  1019. Button.Position = UDim2.new(0, 0, 0, FilterLabel.AbsoluteSize.Y*(#FilterScroll:GetChildren()-2))
  1020. FilterScroll.CanvasSize = UDim2.new(0, 0, 0, (FilterLabel.AbsoluteSize.Y+3)*(#FilterScroll:GetChildren()-2))
  1021. FilterTab[tostring(i)] = Button
  1022. if v == false then
  1023. FilterTab[tostring(i)].BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  1024. end
  1025. Button.MouseButton1Down:connect(function()
  1026. Filters[i] = not Filters[i]
  1027. for i, v in pairs(Filters) do
  1028. FilterTab[tostring(i)].Text = tostring(i).." : "..tostring(v)
  1029. FilterTab[tostring(i)].BackgroundColor3 = Color3.fromRGB(132, 182, 255)
  1030. if v == false then
  1031. FilterTab[tostring(i)].BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  1032. end
  1033. end
  1034. end)
  1035. end
  1036.  
  1037. ConsoleFrame = Instance.new("Frame", MainScreenGui)
  1038. ConsoleFrame.Size = UDim2.new(Editor.Size.X.Scale+Viewer.Size.X.Scale-Filter.Size.X.Scale, 0, Filter.Size.Y.Scale, 0)
  1039. ConsoleFrame.BackgroundColor3 = Color3.fromRGB(63, 63, 63)
  1040. ConsoleFrame.BorderSizePixel = 0
  1041. ConsoleFrame.Position = UDim2.new(0.6, 0, 0, 0)
  1042. ConsoleFrame.Visible = false
  1043. MoveableItem(ConsoleFrame)
  1044.  
  1045. ConsoleBar = Instance.new("TextLabel")
  1046. ConsoleBar.Parent = ConsoleFrame
  1047. ConsoleBar.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  1048. ConsoleBar.BorderSizePixel = 0
  1049. ConsoleBar.Size = UDim2.new(1, 0, 0, 32)
  1050. ConsoleBar.Text = "Console"
  1051. ConsoleBar.TextScaled = true
  1052. ConsoleBar.Font = Enum.Font.SourceSans
  1053.  
  1054. ConsoleClose = Instance.new("TextButton", ConsoleBar)
  1055. ConsoleClose.Size = UDim2.new(0, 32, 0, 32)
  1056. ConsoleClose.Position = UDim2.new(1, -32, 0, 0)
  1057. ConsoleClose.BackgroundColor3 = Color3.new(0, 0, 0)
  1058. ConsoleClose.TextColor3 = Color3.new(1, 1, 1)
  1059. ConsoleClose.TextScaled = true
  1060. ConsoleClose.Text = "X"
  1061. ConsoleClose.BorderSizePixel = 0
  1062. ConsoleClose.MouseButton1Down:connect(function()
  1063. ConsoleFrame.Visible = false
  1064. end)
  1065.  
  1066. ConsoleScrollFrame = Instance.new("ScrollingFrame", ConsoleFrame)
  1067. ConsoleScrollFrame.Name = "Test"
  1068. ConsoleScrollFrame.Size = UDim2.new(1, 0, 1, -48)
  1069. ConsoleScrollFrame.Position = UDim2.new(0, 0, 0, 40)
  1070. ConsoleScrollFrame.BackgroundColor3 = Color3.new(100/255, 150/255, 1)
  1071. ConsoleScrollFrame.BackgroundTransparency = 0.5
  1072. ConsoleScrollFrame.CanvasSize = UDim2.new(0, 0, 0, ScrollSize)
  1073. ConsoleScrollFrame.ScrollBarThickness = 0
  1074. ConsoleScrollFrame.BorderSizePixel = 0
  1075. ConsoleScrollFrame.BackgroundTransparency = 1.000
  1076. ConsoleScrollFrame.CanvasPosition = Vector2.new(0, ScrollSize)
  1077.  
  1078. ConsoleFrameUIListLayout = Instance.new("UIListLayout")
  1079. ConsoleFrameUIListLayout.Parent = ConsoleScrollFrame
  1080. ConsoleFrameUIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Left
  1081. ConsoleFrameUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Bottom
  1082. ConsoleFrameUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
  1083. ConsoleFrameUIListLayout.Padding = UDim.new(0, 3)
  1084.  
  1085. function MakeNewConsoleMessage(Text, TextColor, Frame, FSize, X, Y)
  1086. local Button = Instance.new("TextButton")
  1087. local Size = GetSize(Text, FSize, "SourceSans", X, Y)
  1088. Button.Size = UDim2.new(0, Size.X, 0, Size.Y)
  1089. for i, v in pairs(Frame:GetChildren()) do
  1090. if v.ClassName ~= "UIListLayout" then
  1091. v.Position = v.Position - UDim2.new(0, 0, 0, Size.Y)
  1092. local Pos = v.Position.Y.Offset+(v.Position.Y.Scale*v.Parent.AbsoluteSize.Y)
  1093. if v.Parent.ClassName == "ScrollingFrame" then
  1094. Pos = v.Position.Y.Offset+(v.Position.Y.Scale*v.Parent.CanvasSize.Y.Offset)
  1095. end
  1096. if Pos < 0 then
  1097. v:remove()
  1098. end
  1099. end
  1100. end
  1101. Button.Position = UDim2.new(0, 0, 1, -Size.Y)
  1102. Button.Parent = Frame
  1103. Button.BackgroundColor3 = Color3.fromRGB(108, 152, 255)
  1104. Button.Text = Text
  1105. Button.TextSize = FSize
  1106. Button.TextWrapped = true
  1107. Button.Font = Enum.Font.SourceSans
  1108. Button.BorderSizePixel = 0
  1109. Button.TextColor3 = TextColor
  1110. Button.TextXAlignment = Enum.TextXAlignment.Left
  1111. Button.MouseButton1Down:connect(function()
  1112. local SC = syn_context_get()
  1113. syn_context_set(6)
  1114. setclipboard(Button.Text)
  1115. syn_context_set(SC)
  1116. end)
  1117. if Frame.ClassName == "ScrollingFrame" and math.floor(Frame.CanvasPosition.Y+Frame.AbsoluteSize.Y)+1 < Frame.CanvasSize.Y.Offset then
  1118. Frame.CanvasPosition = Frame.CanvasPosition - Vector2.new(0, Size.Y+3)
  1119. end
  1120. end
  1121. local Last = nil
  1122. function CMSG(Msg, Color)
  1123. local WhatToStart = ""
  1124. if Last == nil or getfenv(2).script ~= Last then
  1125. Last = getfenv(2).script
  1126. WhatToStart = tostring(Last)..":\n"
  1127. end
  1128. local SC = syn_context_get()
  1129. syn_context_set(6)
  1130. MakeNewConsoleMessage(WhatToStart..Msg, Color, ConsoleScrollFrame, 18, ConsoleFrame.AbsoluteSize.X, (ScrollSize/18)*0.70)
  1131. syn_context_set(SC)
  1132. end
  1133. getgenv().CError = function(Msg)
  1134. CMSG(Msg, Color3.new(0.8, 0, 0))
  1135. end
  1136. getgenv().CWarn = function(Msg)
  1137. CMSG(Msg, Color3.new(1, 1, 0))
  1138. end
  1139. getgenv().CPrint = function(Msg)
  1140. CMSG(Msg, Color3.new(1, 1, 1))
  1141. end
  1142.  
  1143. LPlayer = game.Players.LocalPlayer
  1144. getgenv()["GetValues"] = function(args)
  1145. local Vals = args
  1146. local args = ""
  1147. for i, v in pairs(Vals) do
  1148. if tonumber(i) == nil then
  1149. args = args..'["'..tostring(i)..'"] = '
  1150. end
  1151. t = typeof(Vals[i])
  1152. if t == "string" then
  1153. args = args..StringConvert(Vals[i])
  1154. elseif t == "table" then
  1155. args = args.."{"..GetValues(v).."}"
  1156. elseif t == "Vector3" or t == "CFrame" or t == "Color3" or t == "Ray" then
  1157. args = args..t..".new("..tostring(Vals[i])..")"
  1158. elseif t == "BrickColor" then
  1159. args = args..t..'.new("'..tostring(Vals[i])..'")'
  1160. elseif t == "Instance" then
  1161. args = args..GetParent(Vals[i])
  1162. else
  1163. args = args..tostring(Vals[i])
  1164. end
  1165. args = args..", "
  1166. end
  1167. args = string.sub(args, 1, string.len(args) - 2)
  1168. return args
  1169. end
  1170.  
  1171. function StringConvert(S)
  1172. for i = 1, string.len(S) do
  1173. if S:sub(i, i) == '"' or S:sub(i, i) == "'" then
  1174. S = "[["..S.."]]"
  1175. return S
  1176. end
  1177. end
  1178. return '"'..S..'"'
  1179. end
  1180.  
  1181. function CheckForSpecial(Name)
  1182. for i = 1, string.len(Name) do
  1183. C = tonumber(string.byte(Name, i, i))
  1184. if not (C >= 65 and C <= 90 or C >= 97 and C <= 122 or C >= 48 and C <= 57) then
  1185. return false
  1186. end
  1187. end
  1188. end
  1189.  
  1190. function GetParent(Par)
  1191. local Names = {}
  1192. if Par == nil or Par.Parent == nil then
  1193. return tostring(Par):lower()
  1194. end
  1195. repeat
  1196. if Par == LPlayer then
  1197. table.insert(Names, 'game:GetService("Players").LocalPlayer')
  1198. break
  1199. elseif LPlayer.Character ~= nil and Par == LPlayer.Character then
  1200. table.insert(Names, 'game:GetService("Players").LocalPlayer.Character')
  1201. break
  1202. end
  1203. table.insert(Names, tostring(Par))
  1204. Par = Par.Parent
  1205. until Par == game
  1206. local TempLine = ""
  1207. for i = 1, #Names do
  1208. if CheckForSpecial(Names[#Names-i+1]) == false and i ~= 1 and Names[#Names-i+1]:sub(1, 4) ~= "game" then
  1209. Names[#Names-i+1] = '["'..Names[#Names-i+1]..'"]'
  1210. elseif i ~= 1 and Names[#Names-i+1]:sub(1, 4) ~= "game" then
  1211. Names[#Names-i+1] = '.'..Names[#Names-i+1]
  1212. elseif i == 1 and Names[#Names]:sub(1, 4) ~= "game" then
  1213. Names[#Names] = 'game:GetService("'..tostring(game[Names[#Names]].ClassName)..'")'
  1214. end
  1215. TempLine = TempLine..Names[#Names-i+1]
  1216. end
  1217. return TempLine
  1218. end
Advertisement
Add Comment
Please, Sign In to add comment