Palazikaka

Untitled

Feb 12th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.52 KB | None | 0 0
  1. local Humanoid = Instance.new'Humanoid';
  2. local BasePart = Instance.new'Part';
  3. local RemoteEvent = Instance.new'RemoteEvent';
  4. local RemoteFunction = Instance.new'RemoteFunction';
  5. local Frame = Instance.new'Frame';
  6.  
  7. --[[Change this to whatever]]--
  8. getgenv = getgenv or getfenv or function() game:GetService'Players'.LocalPlayer:Kick("Your exploit does not support the functions needed.") end;
  9. getrawmetatable = getrawmetatable or debug.getmetatable or getmetatable or function() game:GetService'Players'.LocalPlayer:Kick("Your exploit does not support the functions needed.") end;
  10. toPrint = print;
  11.  
  12. local isLuaFunction = islclosure;
  13. if isLuaFunction == nil then
  14. isLuaFunction = function(Function)
  15. local worked, Err = pcall(coroutine.wrap, Function);
  16. return worked;
  17. end;
  18. end;
  19.  
  20. local globals = {
  21. [assert] = "assert";
  22. [collectgarbage] = "collectgarbage";
  23. [error] = "error";
  24. [getfenv] = "getfenv";
  25. [RemoteEvent.FireServer] = "FireServer";
  26. [RemoteEvent.OnClientEvent] = "OnClientEvent";
  27. [RemoteFunction.InvokeServer] = "InvokeServer";
  28. [getmetatable] = "getmetatable";
  29. [ipairs] = "ipairs";
  30. [loadstring] = "loadstring";
  31. [newproxy] = "newproxy";
  32. [next] = "next";
  33. [pairs] = "pairs";
  34. [pcall] = "pcall";
  35. [print] = "print";
  36. [game.FindFirstChild] = "FindFirstChild";
  37. [game.FindFirstChildOfClass] = "FindFirstChildOfClass";
  38. [game.WaitForChild] = "WaitForChild";
  39. [game.FindFirstChildWhichIsA] = "FindFirstChildWhichIsA";
  40. [game.IsA] = "IsA";
  41. [game.ClearAllChildren] = "ClearAllChildren";
  42. [game.Clone] = "Clone";
  43. [game.FindFirstAncestor] = "FindFirstAncestor";
  44. [game.FindFirstAncestorOfClass] = "FindFirstAncestorOfClass";
  45. [game.FindFirstAncestorWhichIsA] = "FindFirstAncestorWhichIsA";
  46. [game.GetChildren] = "GetChildren";
  47. [game.GetDebugId] = "GetDebugId";
  48. [game.GetDescendants] = "GetDescendants";
  49. [game.GetFullName] = "GetFullName";
  50. [game.GetPropertyChangedSignal] = "GetPropertyChangedSignal";
  51. [game.IsAncestorOf] = "IsAncestorOf";
  52. [game.IsDescendantOf] = "IsDescendantOf";
  53. [game.AncestryChanged] = "AncestryChanged";
  54. [game.Changed] = "Changed";
  55. [game.ChildAdded] = "ChildAdded";
  56. [game.ChildRemoved] = "ChildRemoved";
  57. [game.DescendantAdded] = "DescendantAdded";
  58. [game.DescendantRemoving] = "DescendantRemoving";
  59. [game.Destroy] = "Destroy";
  60. [Frame.TweenPosition] = "TweenPosition";
  61. [Frame.TweenSize] = "TweenSize";
  62. [Frame.TweenSizeAndPosition] = "TweenSizeAndPosition";
  63. [Frame.InputBegan] = "InputBegan";
  64. [Frame.InputChanged] = "InputChanged";
  65. [Frame.InputEnded] = "InputEnded";
  66. [Frame.MouseEnter] = "MouseEnter";
  67. [Frame.MouseLeave] = "MouseLeave";
  68. [Frame.MouseMoved] = "MouseMoved";
  69. [Frame.MouseWheelBackward] = "MouseWheelBackward";
  70. [Frame.MouseWheelForward] = "MouseWheelForward";
  71. [Frame.SelectionGained] = "SelectionGained";
  72. [Frame.SelectionLost] = "SelectionLost";
  73. [Frame.TouchLongPress] = "TouchLongPress";
  74. [Frame.TouchPan] = "TouchPan";
  75. [Frame.TouchPinch] = "TouchPinch";
  76. [Frame.TouchRotate] = "TouchRotate";
  77. [Frame.TouchSwipe] = "TouchSwipe";
  78. [Frame.TouchTap] = "TouchTap";
  79. [Humanoid.AddAccessory] = "AddAccessory";
  80. [Humanoid.ApplyDescription] = "ApplyDescription";
  81. [Humanoid.BuildRigFromAttachments] = "BuildRigFromAttachments";
  82. [Humanoid.ChangeState] = "ChangeState";
  83. [Humanoid.EquipTool] = "EquipTool";
  84. [Humanoid.GetAccessories] = "GetAccessories";
  85. [Humanoid.GetAppliedDescription] = "GetAppliedDescription";
  86. [Humanoid.GetBodyPartR15] = "GetBodyPartR15";
  87. [Humanoid.GetLimb] = "GetLimb";
  88. [Humanoid.GetPlayingAnimationTracks] = "GetPlayingAnimationTracks";
  89. [Humanoid.GetState] = "GetState";
  90. [Humanoid.GetStateEnabled] = "GetStateEnabled";
  91. [Humanoid.LoadAnimation] = "LoadAnimation";
  92. [Humanoid.Move] = "Move";
  93. [Humanoid.MoveTo] = "MoveTo";
  94. [Humanoid.PlayEmote] = "PlayEmote";
  95. [Humanoid.RemoveAccessories] = "RemoveAccessories";
  96. [Humanoid.ReplaceBodyPartR15] = "ReplaceBodyPartR15";
  97. [Humanoid.SetStateEnabled] = "SetStateEnabled";
  98. [Humanoid.TakeDamage] = "TakeDamage";
  99. [Humanoid.UnequipTools] = "UnequipTools";
  100. [Humanoid.AnimationPlayed] = "AnimationPlayed";
  101. [Humanoid.Climbing] = "Climbing";
  102. [Humanoid.Died] = "Died";
  103. [Humanoid.FallingDown] = "FallingDown";
  104. [Humanoid.FreeFalling] = "FreeFalling";
  105. [Humanoid.GettingUp] = "GettingUp";
  106. [Humanoid.HealthChanged] = "HealthChanged";
  107. [Humanoid.Jumping] = "Jumping";
  108. [Humanoid.MoveToFinished] = "MoveToFinished";
  109. [Humanoid.PlatformStanding] = "PlatformStanding";
  110. [Humanoid.Ragdoll] = "Ragdoll";
  111. [Humanoid.Running] = "Running";
  112. [Humanoid.Seated] = "Seated";
  113. [Humanoid.StateChanged] = "StateChanged";
  114. [Humanoid.StateEnabledChanged] = "StateEnabledChanged";
  115. [Humanoid.Strafing] = "Strafing";
  116. [Humanoid.Swimming] = "Swimming";
  117. [Humanoid.Touched] = "Touched";
  118. [BasePart.BreakJoints] = "BreakJoints";
  119. [BasePart.CanCollideWith] = "CanCollideWith";
  120. [BasePart.CanSetNetworkOwnership] = "CanSetNetworkOwnership";
  121. [BasePart.GetConnectedParts] = "GetConnectedParts";
  122. [BasePart.GetJoints] = "GetJoints";
  123. [BasePart.GetMass] = "GetMass";
  124. [BasePart.GetNetworkOwner] = "GetNetworkOwner";
  125. [BasePart.GetNetworkOwnershipAuto] = "GetNetworkOwnershipAuto";
  126. [BasePart.GetRootPart] = "GetRootPart";
  127. [BasePart.GetTouchingParts] = "GetTouchingParts";
  128. [BasePart.IsGrounded] = "IsGrounded";
  129. [BasePart.MakeJoints] = "MakeJoints";
  130. [BasePart.Resize] = "Resize";
  131. [BasePart.SetNetworkOwner] = "SetNetworkOwner";
  132. [BasePart.SetNetworkOwnershipAuto] = "SetNetworkOwnershipAuto";
  133. [BasePart.SubtractAsync] = "SubtractAsync";
  134. [BasePart.UnionAsync] = "UnionAsync";
  135. [BasePart.TouchEnded] = "TouchEnded";
  136. [BasePart.Touched] = "Touched";
  137. [rawequal] = "rawequal";
  138. [rawget] = "rawget";
  139. [rawset] = "rawset";
  140. [select] = "select";
  141. [setfenv] = "setfenv";
  142. [setmetatable] = "setmetatable";
  143. [tonumber] = "tonumber";
  144. [tostring] = "tostring";
  145. [type] = "type";
  146. [unpack] = "unpack";
  147. [xpcall] = "xpcall";
  148. [_G] = "_G";
  149. [_VERSION] = "_VERSION";
  150. [delay] = "delay";
  151. [elapsedTime] = "elapsedTime";
  152. [LoadLibrary] = "LoadLibrary";
  153. [printidentity] = "printidentity";
  154. [require] = "require";
  155. [settings] = "settings";
  156. [spawn] = "spawn";
  157. [stats] = "stats";
  158. [tick] = "tick";
  159. [time] = "time";
  160. [typeof] = "typeof";
  161. [UserSettings] = "UserSettings";
  162. [_VERSION] = "_VERSION";
  163. [wait] = "wait";
  164. [warn] = "warn";
  165. [Enum] = "Enum";
  166. [game] = "game";
  167. [shared] = "shared";
  168. [workspace] = "workspace";
  169. [type] = "type";
  170. [math.log] = "math.log";
  171. [math.ldexp] = "math.ldexp";
  172. [math.rad] = "math.rad";
  173. [math.cosh] = "math.cosh";
  174. [math.random] = "math.random";
  175. [math.frexp] = "math.frexp";
  176. [math.tanh] = "math.tanh";
  177. [math.floor] = "math.floor";
  178. [math.max] = "math.max";
  179. [math.sqrt] = "math.sqrt";
  180. [math.modf] = "math.modf";
  181. [math.pow] = "math.pow";
  182. [math.atan] = "math.atan";
  183. [math.tan] = "math.tan";
  184. [math.cos] = "math.cos";
  185. [math.sign] = "math.sign";
  186. [math.clamp] = "math.clamp";
  187. [math.log10] = "math.log10";
  188. [math.noise] = "math.noise";
  189. [math.acos] = "math.acos";
  190. [math.abs] = "math.abs";
  191. [math.sinh] = "math.sinh";
  192. [math.asin] = "math.asin";
  193. [math.min] = "math.min";
  194. [math.deg] = "math.deg";
  195. [math.fmod] = "math.fmod";
  196. [math.randomseed] = "math.randomseed";
  197. [math.atan2] = "math.atan2";
  198. [math.ceil] = "math.ceil";
  199. [math.sin] = "math.sin";
  200. [math.exp] = "math.exp";
  201. [CFrame.fromMatrix] = "CFrame.fromMatrix";
  202. [CFrame.fromAxisAngle] = "CFrame.fromAxisAngle";
  203. [CFrame.fromOrientation] = "CFrame.fromOrientation";
  204. [CFrame.fromEulerAnglesXYZ] = "CFrame.fromEulerAnglesXYZ";
  205. [CFrame.Angles] = "CFrame.Angles";
  206. [CFrame.fromEulerAnglesYXZ] = "CFrame.fromEulerAnglesYXZ";
  207. [CFrame.new] = "CFrame.new";
  208. [Vector3.FromNormalId] = "Vector3.FromNormalId";
  209. [Vector3.FromAxis] = "Vector3.FromAxis";
  210. [Vector3.new] = "Vector3.new";
  211. [string.sub] = "string.sub";
  212. [string.len] = "string.len";
  213. [string.upper] = "string.upper";
  214. [string.split] = "string.split";
  215. [string.rep] = "string.rep";
  216. [string.find] = "string.find";
  217. [string.match] = "string.match";
  218. [string.char] = "string.char";
  219. [string.gmatch] = "string.gmatch";
  220. [string.reverse] = "string.reverse";
  221. [string.byte] = "string.byte";
  222. [string.format] = "string.format";
  223. [string.gsub] = "string.gsub";
  224. [string.lower] = "string.lower";
  225. [PathWaypoint.new] = "PathWaypoint.new";
  226. [Color3.fromHSV] = "Color3.fromHSV";
  227. [Color3.toHSV] = "Color3.toHSV";
  228. [Color3.fromRGB] = "Color3.fromRGB";
  229. [Color3.new] = "Color3.new";
  230. [Vector2.new] = "Vector2.new";
  231. [UDim2.fromOffset] = "UDim2.fromOffset";
  232. [UDim2.fromScale] = "UDim2.fromScale";
  233. [UDim2.new] = "UDim2.new";
  234. [UDim.new] = "UDim.new";
  235. [Faces.new] = "Faces.new";
  236. [TweenInfo.new] = "TweenInfo.new";
  237. [table.pack] = "table.pack";
  238. [table.insert] = "table.insert";
  239. [table.getn] = "table.getn";
  240. [table.foreachi] = "table.foreachi";
  241. [table.maxn] = "table.maxn";
  242. [table.foreach] = "table.foreach";
  243. [table.concat] = "table.concat";
  244. [table.unpack] = "table.unpack";
  245. [table.sort] = "table.sort";
  246. [table.remove] = "table.remove";
  247. [PluginDrag.new] = "PluginDrag.new";
  248. [debug.traceback] = "debug.traceback";
  249. [debug.profileend] = "debug.profileend";
  250. [debug.profilebegin] = "debug.profilebegin";
  251. [os.difftime] = "os.difftime";
  252. [os.time] = "os.time";
  253. [os.date] = "os.date";
  254. [DockWidgetPluginGuiInfo.new] = "DockWidgetPluginGuiInfo.new";
  255. [Region3.new] = "Region3.new";
  256. [Vector2int16.new] = "Vector2int16.new";
  257. [Vector3int16.new] = "Vector3int16.new";
  258. [bit32.band] = "bit32.band";
  259. [bit32.extract] = "bit32.extract";
  260. [bit32.bor] = "bit32.bor";
  261. [bit32.bnot] = "bit32.bnot";
  262. [bit32.arshift] = "bit32.arshift";
  263. [bit32.rshift] = "bit32.rshift";
  264. [bit32.rrotate] = "bit32.rrotate";
  265. [bit32.replace] = "bit32.replace";
  266. [bit32.lshift] = "bit32.lshift";
  267. [bit32.lrotate] = "bit32.lrotate";
  268. [bit32.btest] = "bit32.btest";
  269. [bit32.bxor] = "bit32.bxor";
  270. [Region3int16.new] = "Region3int16.new";
  271. [coroutine.resume] = "coroutine.resume";
  272. [coroutine.yield] = "coroutine.yield";
  273. [coroutine.status] = "coroutine.status";
  274. [coroutine.wrap] = "coroutine.wrap";
  275. [coroutine.create] = "coroutine.create";
  276. [coroutine.running] = "coroutine.running";
  277. [utf8.offset] = "utf8.offset";
  278. [utf8.codepoint] = "utf8.codepoint";
  279. [utf8.nfdnormalize] = "utf8.nfdnormalize";
  280. [utf8.char] = "utf8.char";
  281. [utf8.codes] = "utf8.codes";
  282. [utf8.len] = "utf8.len";
  283. [utf8.nfcnormalize] = "utf8.nfcnormalize";
  284. [utf8.graphemes] = "utf8.graphemes";
  285. [ColorSequence.new] = "ColorSequence.new";
  286. [PathWaypoint.new] = "PathWaypoint.new";
  287. };
  288.  
  289. setmetatable(globals, {
  290. __index = function(self, key)
  291. if typeof(key) == "Instance" then return key:GetFullName(); end;
  292. return tostring(key);
  293. end;
  294. });
  295.  
  296. local function findString(ToFind, Partly)
  297. for i,v in next, debug.getregistry() do
  298. if type(v) == "function" and islclosure(v) and not is_synapse_function(v) then
  299. for g,b in next, debug.getconstants(v) do
  300. if type(b) == "string" and (Partly and (b:lower():match(ToFind:lower())) or b == ToFind) then
  301. return v;
  302. end;
  303. end;
  304. end;
  305. end;
  306. end;
  307.  
  308. local function findStrings(ToFind, Partly)
  309. local Found = {};
  310. for i,v in next, debug.getregistry() do
  311. if type(v) == "function" and islclosure(v) and not is_synapse_function(v) then
  312. for g,b in next, debug.getconstants(v) do
  313. if type(b) == "string" and (Partly and (b:lower():match(ToFind:lower())) or b == ToFind) then
  314. Found[#Found + 1] = {Function = v, Value = b};
  315. end;
  316. end;
  317. end;
  318. end;
  319. return Found;
  320. end;
  321.  
  322. local function changeConstant(Function, IndicePosition, ChangeTo)
  323. if type(Function) == "function" and ToChange ~= nil and typeof(IndicePosition) == "number" then
  324. debug.setconstant(Function, IndicePosition, ChangeTo);
  325. end;
  326. end;
  327.  
  328. local function changeUpvalue(Function, IndicePosition, ChangeTo)
  329. if type(Function) == "function" and ToChange ~= nil and typeof(IndicePosition) == "number" then
  330. debug.setupvalue(Function, IndicePosition, ChangeTo);
  331. end;
  332. end;
  333.  
  334. getgenv(2).changeconstant = changeConstant;
  335. getgenv(2).ChangeConstant = changeConstant;
  336.  
  337. getgenv(2).changeupvalue = ChangeUpvalue;
  338. getgenv(2).ChangeUpvalue = changeUpvalue;
  339.  
  340. local function findUpvalue(ToFind)
  341. for i,v in next, debug.getregistry() do
  342. if type(v) == "function" and not is_synapse_function(v) then
  343. for g,b in next, debug.getupvalues(v) do
  344. if b == ToFind then
  345. return v;
  346. end;
  347. end;
  348. end;
  349. end;
  350. end;
  351.  
  352. local function hasUpvalue(Func, Str)
  353. for i,v in next, debug.getupvalues(Func) do
  354. if v == Str or tostring(v) == tostring(Str) then
  355. return true, v;
  356. end;
  357. end;
  358. return false;
  359. end;
  360.  
  361. local function findTable(...)
  362. for i,v in next, debug.getregistry() do
  363. if type(v) == "function" and not is_synapse_function(v) then
  364. for g,b in next, debug.getupvalues(v) do
  365. if type(b) == "table" then
  366. local HasAll = true;
  367. for _, Val in next, {...} do
  368. if not rawget(b, Val) then
  369. HasAll = false;
  370. end;
  371. end;
  372. if HasAll then return b; end;
  373. end;
  374. end;
  375. end;
  376. end;
  377. end;
  378.  
  379. local function findUpvalues(ToFind)
  380. local Found = {};
  381. for i,v in next, debug.getregistry() do
  382. if type(v) == "function" and not is_synapse_function(v) then
  383. for g,b in next, debug.getupvalues(v) do
  384. if b == ToFind then
  385. Found[#Found + 1] = {Key = g, Value = b};
  386. end;
  387. end;
  388. end;
  389. end;
  390. return Found;
  391. end;
  392.  
  393. local function hasUpvalue(Function, ToCheck)
  394. if type(Function) ~= "function" then return false; end;
  395. for i,v in next, debug.getupvalues(Function) do
  396. if v == ToCheck then
  397. return true;
  398. end;
  399. end;
  400. return false;
  401. end;
  402.  
  403. local function hasConstant(Function, ToCheck)
  404. if type(Function) ~= "function" then return false; end;
  405. if not islclosure(Function) then return false; end;
  406. for i,v in next, debug.getconstants(Function) do
  407. if v == ToCheck then
  408. return true;
  409. end;
  410. end;
  411. return false;
  412. end;
  413.  
  414. local function hasString(Function, ToCheck, Partly)
  415. if type(Function) ~= "function" then return false; end;
  416. if not islclosure(Function) then return false; end;
  417. if type(ToCheck) ~= "string" then return false; end;
  418. for i,v in next, debug.getconstants(Function) do
  419. if (not Partly and v == ToCheck or Partly and v:lower():match(Partly:lower())) then
  420. return true;
  421. end;
  422. end;
  423. return false;
  424. end;
  425.  
  426. getgenv(2).findupvalue = findUpvalue;
  427. getgenv(2).FindUpvalue = findUpvalue;
  428.  
  429. local function forEach(Table, Callback)
  430. for Key, Value in next, Table do
  431. Callback(Key, Value);
  432. end;
  433. end;
  434.  
  435. getgenv(2).foreach = forEach;
  436. getgenv(2).ForEach = forEach;
  437.  
  438. local function countLen(Table)
  439. local Count = 0;
  440. forEach(Table, function(Key, Value) Count = Count + 1; end);
  441. return Count;
  442. end;
  443.  
  444. getgenv(2).countlen = countLen;
  445. getgenv(2).CountLen = countLen;
  446.  
  447. local function isArray(Table)
  448. return not (#Table == 0 and (countLen(Table) > 0));
  449. end;
  450.  
  451. getgenv(2).isarray = isArray;
  452. getgenv(2).IsArray = isArray;
  453.  
  454. local function tableToString(Table)
  455. if countLen(Table) == 0 then return "{}"; end;
  456. local Result = "{"
  457.  
  458. local isArray = isArray(Table);
  459.  
  460. for i,v in next, Table, nil do
  461.  
  462. local BackupMT = {};
  463. local BackupMT2 = {};
  464. if type(v) == "table" then
  465. local MT = getrawmetatable(v);
  466. if MT then
  467. for g,b in next, MT do
  468. rawset(BackupMT, g, b);
  469. rawset(MT, g, nil);
  470. end;
  471. end;
  472. end;
  473.  
  474. if type(i) == "table" then
  475. local MT = getrawmetatable(i);
  476. if MT then
  477. for g,b in next, MT do
  478. rawset(BackupMT2, g, b);
  479. rawset(MT, g, nil);
  480. end;
  481. end;
  482. end;
  483.  
  484. Result = Result .. "\n [" .. (type(i) == "number" and tostring(i) or type(i) == "table" and tableToString(i) or ('"' .. tostring(i) .. '"')) .. "] = " .. globals[v] .. " (type: " .. (typeof(v) == "Instance" and v.ClassName or typeof(v)) .. (typeof(v) == "function" and ", is lua closure: " .. tostring(isLuaFunction(v)) or "") .. ")";
  485.  
  486. if type(v) == "table" then
  487. local MT = getrawmetatable(v);
  488. if MT then
  489. for g,b in next, BackupMT do
  490. rawset(MT, g, b);
  491. end;
  492. end;
  493. end;
  494.  
  495. if type(i) == "table" then
  496. local MT = getrawmetatable(i);
  497. if MT then
  498. for g,b in next, BackupMT2 do
  499. rawset(MT, g, b);
  500. end;
  501. end;
  502. end;
  503.  
  504. end;
  505. Result = Result .. "\n}";
  506. return Result;
  507. end;
  508.  
  509. local hookf = hookfunction or replaceclosure or function(f, f2) local oldf = f; f = f2; return oldf; end;
  510. local cwrap = newcclosure or (coroutine and coroutine.wrap or function(f) return f() end);
  511.  
  512. if not getgenv().hooked then
  513. getgenv().hooked = true;
  514. local OldTT;
  515. OldTT = hookf(tostring, cwrap(function(toSet)
  516. if rawequal(typeof(toSet), "table") then
  517. return tableToString(toSet);
  518. end;
  519. return OldTT(toSet);
  520. end));
  521. end;
  522.  
  523. getgenv(2).tabletostring = tableToString;
  524. getgenv(2).tstring = tableToString;
  525. getgenv(2).tabstring = tabelToString;
  526.  
  527. local function dumpFunction(Function)
  528. if type(Function) ~= "function" then return; end;
  529. local Upvalues = debug.getupvalues(Function);
  530. toPrint("Function found!\nUpvalues: " .. tableToString(Upvalues));
  531. if isLuaFunction(Function) then
  532. local Constants = debug.getconstants(Function);
  533. toPrint("Constants: " .. tableToString(Constants))
  534. end;
  535. end;
  536.  
  537. local function dumpTable(Table)
  538. if type(Table) ~= "table" then return; end;
  539. toPrint("Table found!\nContents: " .. tableToString(Table));
  540. end;
  541.  
  542. getgenv(2).dumpFunction = dumpFunction;
  543. getgenv(2).dumpTable = dumpTable;
  544. getgenv(2).tableToString = tableToString;
  545. getgenv(2).findString = findString;
  546. getgenv(2).countLen = countLen;
  547. getgenv(2).isArray = isArray;
  548. getgenv(2).forEach = forEach;
  549. getgenv(2).findUpvalue = findUpvalue;
  550. getgenv(2).findStrings = findStrings;
  551. getgenv(2).findUpvalues = findUpvalues;
  552. getgenv(2).findTable = findTable;
  553. getgenv(2).hasUpvalue=hasUpvalue;
Advertisement
Add Comment
Please, Sign In to add comment