kipr987

RemoteSpy

Mar 1st, 2025
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 17.55 KB | None | 0 0
  1. local G2L = {};
  2.  
  3. _G.Code = ""
  4.  
  5. -- StarterGui.sexy spy from tf2
  6. G2L["1"] = Instance.new("ScreenGui", game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui"));
  7. G2L["1"]["Name"] = [[sexy spy from tf2]];
  8. G2L["1"]["ResetOnSpawn"] = false
  9. G2L["1"]["ZIndexBehavior"] = Enum.ZIndexBehavior.Sibling;
  10.  
  11. -- StarterGui.sexy spy from tf2.Frame
  12. G2L["2"] = Instance.new("Frame", G2L["1"]);
  13. G2L["2"]["BorderSizePixel"] = 0;
  14. G2L["2"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
  15. G2L["2"]["Size"] = UDim2.new(0, 425, 0, 253);
  16. G2L["2"]["Position"] = UDim2.new(0.02067, 0, 0.17804, 0);
  17. G2L["2"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  18.  
  19. -- StarterGui.sexy spy from tf2.Frame.TopBar
  20. G2L["3"] = Instance.new("Frame", G2L["2"]);
  21. G2L["3"]["BorderSizePixel"] = 0;
  22. G2L["3"]["BackgroundColor3"] = Color3.fromRGB(38, 36, 39);
  23. G2L["3"]["Size"] = UDim2.new(0, 425, 0, 18);
  24. G2L["3"]["Position"] = UDim2.new(0, 0, -0.00378, 0);
  25. G2L["3"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  26. G2L["3"]["Name"] = [[TopBar]];
  27.  
  28. -- StarterGui.sexy spy from tf2.Frame.TopBar.Name
  29. G2L["4"] = Instance.new("TextLabel", G2L["3"]);
  30. G2L["4"]["BorderSizePixel"] = 0;
  31. G2L["4"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
  32. G2L["4"]["TextSize"] = 14;
  33. G2L["4"]["FontFace"] = Font.new([[rbxasset://fonts/families/Arial.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  34. G2L["4"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
  35. G2L["4"]["BackgroundTransparency"] = 1;
  36. G2L["4"]["Size"] = UDim2.new(0, 58, 0, 14);
  37. G2L["4"]["BorderColor3"] = Color3.fromRGB(255, 255, 255);
  38. G2L["4"]["Text"] = [[sexy spy from tf2]];
  39. G2L["4"]["Name"] = [[Name]];
  40. G2L["4"]["Position"] = UDim2.new(0, 0, 0, 0);
  41.  
  42. -- StarterGui.sexy spy from tf2.Frame.TopBar.X
  43. G2L["5"] = Instance.new("TextButton", G2L["3"]);
  44. G2L["5"]["BorderSizePixel"] = 0;
  45. G2L["5"]["TextStrokeColor3"] = Color3.fromRGB(255, 255, 255);
  46. G2L["5"]["TextSize"] = 21;
  47. G2L["5"]["TextColor3"] = Color3.fromRGB(205, 205, 205);
  48. G2L["5"]["BackgroundColor3"] = Color3.fromRGB(38, 36, 39);
  49. G2L["5"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  50. G2L["5"]["RichText"] = true;
  51. G2L["5"]["Size"] = UDim2.new(0, 24, 0, 18);
  52. G2L["5"]["Name"] = [[X]];
  53. G2L["5"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  54. G2L["5"]["Text"] = [[X]];
  55. G2L["5"]["Position"] = UDim2.new(0.94353, 0, 0, 0);
  56.  
  57. -- StarterGui.sexy spy from tf2.Frame.Buttons
  58. G2L["6"] = Instance.new("Frame", G2L["2"]);
  59. G2L["6"]["BorderSizePixel"] = 0;
  60. G2L["6"]["BackgroundColor3"] = Color3.fromRGB(75, 75, 75);
  61. G2L["6"]["Size"] = UDim2.new(0, 273, 0, 106);
  62. G2L["6"]["Position"] = UDim2.new(0.35765, 0, 0.58103, 0);
  63. G2L["6"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  64. G2L["6"]["Name"] = [[Buttons]];
  65.  
  66. -- StarterGui.sexy spy from tf2.Frame.Buttons.CopyR
  67. G2L["7"] = Instance.new("TextButton", G2L["6"]);
  68. G2L["7"]["TextSize"] = 14;
  69. G2L["7"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
  70. G2L["7"]["BackgroundColor3"] = Color3.fromRGB(27, 27, 29);
  71. G2L["7"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  72. G2L["7"]["Size"] = UDim2.new(0, 93, 0, 17);
  73. G2L["7"]["Name"] = [[CopyR]];
  74. G2L["7"]["BorderColor3"] = Color3.fromRGB(139, 139, 139);
  75. G2L["7"]["Text"] = [[Copy Remote]];
  76. G2L["7"]["Position"] = UDim2.new(0.32967, 0, 0.08491, 0);
  77.  
  78. -- StarterGui.sexy spy from tf2.Frame.Buttons.CopyR.Border
  79. G2L["8"] = Instance.new("TextLabel", G2L["7"]);
  80. G2L["8"]["BorderSizePixel"] = 0;
  81. G2L["8"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
  82. G2L["8"]["TextSize"] = 14;
  83. G2L["8"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  84. G2L["8"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
  85. G2L["8"]["Size"] = UDim2.new(0, 8, 0, 17);
  86. G2L["8"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  87. G2L["8"]["Text"] = [[]];
  88. G2L["8"]["Name"] = [[Border]];
  89.  
  90. -- StarterGui.sexy spy from tf2.Frame.Buttons.CopyC
  91. G2L["9"] = Instance.new("TextButton", G2L["6"]);
  92. G2L["9"]["TextSize"] = 14;
  93. G2L["9"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
  94. G2L["9"]["BackgroundColor3"] = Color3.fromRGB(27, 27, 29);
  95. G2L["9"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  96. G2L["9"]["Size"] = UDim2.new(0, 83, 0, 17);
  97. G2L["9"]["Name"] = [[CopyC]];
  98. G2L["9"]["BorderColor3"] = Color3.fromRGB(139, 139, 139);
  99. G2L["9"]["Text"] = [[Copy Code]];
  100. G2L["9"]["Position"] = UDim2.new(0, 0, 0.08491, 0);
  101.  
  102. G2L["9"].MouseButton1Click:Connect(function()
  103.  
  104.  
  105.     if setclipboard then
  106.  
  107.         setclipboard(_G.Code)
  108.  
  109.     else
  110.         print("Your executer doesn't support clipboard")
  111.     end
  112. end)
  113.  
  114. -- StarterGui.sexy spy from tf2.Frame.Buttons.CopyC.Border
  115. G2L["a"] = Instance.new("TextLabel", G2L["9"]);
  116. G2L["a"]["BorderSizePixel"] = 0;
  117. G2L["a"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
  118. G2L["a"]["TextSize"] = 14;
  119. G2L["a"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  120. G2L["a"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
  121. G2L["a"]["Size"] = UDim2.new(0, 8, 0, 17);
  122. G2L["a"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  123. G2L["a"]["Text"] = [[]];
  124. G2L["a"]["Name"] = [[Border]];
  125.  
  126. -- StarterGui.sexy spy from tf2.Frame.Buttons.Run
  127. G2L["b"] = Instance.new("TextButton", G2L["6"]);
  128. G2L["b"]["TextSize"] = 14;
  129. G2L["b"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
  130. G2L["b"]["BackgroundColor3"] = Color3.fromRGB(27, 27, 29);
  131. G2L["b"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  132. G2L["b"]["Size"] = UDim2.new(0, 81, 0, 17);
  133. G2L["b"]["Name"] = [[Run]];
  134. G2L["b"]["BorderColor3"] = Color3.fromRGB(139, 139, 139);
  135. G2L["b"]["Text"] = [[Run Code]];
  136. G2L["b"]["Position"] = UDim2.new(0.7033, 0, 0.08491, 0);
  137.  
  138. -- StarterGui.sexy spy from tf2.Frame.Buttons.Run.Border
  139. G2L["c"] = Instance.new("TextLabel", G2L["b"]);
  140. G2L["c"]["BorderSizePixel"] = 0;
  141. G2L["c"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
  142. G2L["c"]["TextSize"] = 14;
  143. G2L["c"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  144. G2L["c"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
  145. G2L["c"]["Size"] = UDim2.new(0, 8, 0, 17);
  146. G2L["c"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  147. G2L["c"]["Text"] = [[]];
  148. G2L["c"]["Name"] = [[Border]];
  149.  
  150. G2L["d2"] = Instance.new("TextButton", G2L["6"]);
  151. G2L["d2"]["TextSize"] = 14;
  152. G2L["d2"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
  153. G2L["d2"]["BackgroundColor3"] = Color3.fromRGB(27, 27, 29);
  154. G2L["d2"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  155. G2L["d2"]["Size"] = UDim2.new(0, 83, 0, 17);
  156. G2L["d2"]["Name"] = [[Clear]];
  157. G2L["d2"]["BorderColor3"] = Color3.fromRGB(139, 139, 139);
  158. G2L["d2"]["Text"] = [[Clear Output]];
  159. G2L["d2"]["Position"] = UDim2.new(0, 0, 0.33962, 0);
  160.  
  161. G2L["e2"] = Instance.new("TextLabel", G2L["d2"]);
  162. G2L["e2"]["BorderSizePixel"] = 0;
  163. G2L["e2"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
  164. G2L["e2"]["TextSize"] = 14;
  165. G2L["e2"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  166. G2L["e2"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
  167. G2L["e2"]["Size"] = UDim2.new(0, 8, 0, 17);
  168. G2L["e2"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  169. G2L["e2"]["Text"] = [[]];
  170. G2L["e2"]["Name"] = [[Border]];
  171.  
  172. -- StarterGui.sexy spy from tf2.Frame.Remotes
  173. G2L["d"] = Instance.new("ScrollingFrame", G2L["2"]);
  174. G2L["d"]["Active"] = true;
  175. G2L["d"]["BorderSizePixel"] = 0;
  176. G2L["d"]["CanvasSize"] = UDim2.new(9999, 9999, 9999, 9999);
  177. G2L["d"]["BackgroundColor3"] = Color3.fromRGB(54, 54, 56);
  178. G2L["d"]["Name"] = [[Remotes]];
  179. G2L["d"]["ScrollBarImageTransparency"] = 1;
  180. G2L["d"]["Size"] = UDim2.new(0, 152, 0, 236);
  181. G2L["d"]["ScrollBarImageColor3"] = Color3.fromRGB(0, 0, 0);
  182. G2L["d"]["Position"] = UDim2.new(0, 0, 0.06719, 0);
  183. G2L["d"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  184. G2L["d"]["ScrollBarThickness"] = 0;
  185. G2L["d"]["LayoutOrder"] = 1;
  186.  
  187. -- StarterGui.sexy spy from tf2.Frame.Remotes.RemoteExample
  188. G2L["e"] = Instance.new("TextButton", G2L["d"]);
  189. G2L["e"]["BorderSizePixel"] = 3;
  190. G2L["e"]["TextSize"] = 14;
  191. G2L["e"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
  192. G2L["e"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
  193. G2L["e"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.SemiBold, Enum.FontStyle.Normal);
  194. G2L["e"]["Size"] = UDim2.new(0, 152, 0, 22);
  195. G2L["e"]["BackgroundTransparency"] = 0.8;
  196. G2L["e"]["Name"] = [[RemoteExample]];
  197. G2L["e"]["BorderColor3"] = Color3.fromRGB(93, 96, 102);
  198. G2L["e"]["Text"] = [[RemoteName]];
  199.  
  200. -- StarterGui.sexy spy from tf2.Frame.Remotes.RemoteExample.border
  201. G2L["f"] = Instance.new("TextLabel", G2L["e"]);
  202. G2L["f"]["BorderSizePixel"] = 0;
  203. G2L["f"]["BackgroundColor3"] = Color3.fromRGB(253, 242, 81);
  204. G2L["f"]["TextSize"] = 14;
  205. G2L["f"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  206. G2L["f"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
  207. G2L["f"]["Size"] = UDim2.new(0, 10, 0, 22);
  208. G2L["f"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  209. G2L["f"]["Text"] = [[]];
  210. G2L["f"]["Name"] = [[border]];
  211.  
  212. -- StarterGui.sexy spy from tf2.Frame.Remotes.UIListLayout
  213. G2L["10"] = Instance.new("UIListLayout", G2L["d"]);
  214. G2L["10"]["Padding"] = UDim.new(0, 7);
  215. G2L["10"]["SortOrder"] = Enum.SortOrder.LayoutOrder;
  216.  
  217. -- StarterGui.sexy spy from tf2.Frame.CodeSample
  218. G2L["11"] = Instance.new("TextBox", G2L["2"]);
  219. G2L["11"]["CursorPosition"] = -1;
  220. G2L["11"]["Interactable"] = false;
  221. G2L["11"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
  222. G2L["11"]["BorderSizePixel"] = 0;
  223. G2L["11"]["TextXAlignment"] = Enum.TextXAlignment.Left;
  224. G2L["11"]["TextWrapped"] = true;
  225. G2L["11"]["TextSize"] = 15;
  226. G2L["11"]["Name"] = [[CodeSample]];
  227. G2L["11"]["TextYAlignment"] = Enum.TextYAlignment.Top;
  228. G2L["11"]["BackgroundColor3"] = Color3.fromRGB(42, 45, 54);
  229. G2L["11"]["FontFace"] = Font.new([[rbxasset://fonts/families/Balthazar.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
  230. G2L["11"]["MultiLine"] = true;
  231. G2L["11"]["ClearTextOnFocus"] = false;
  232. G2L["11"]["Size"] = UDim2.new(0, 272, 0, 130);
  233. G2L["11"]["Position"] = UDim2.new(0.35784, 0, 0.06719, 0);
  234. G2L["11"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
  235. G2L["11"]["Text"] = [[]];
  236.  
  237. -- StarterGui.sexy spy from tf2.Frame.Drag
  238. G2L["12"] = Instance.new("LocalScript", G2L["2"]);
  239. G2L["12"]["Name"] = [[Drag]];
  240.  
  241. -- StarterGui.sexy spy from tf2.Frame.Main
  242. G2L["13"] = Instance.new("LocalScript", G2L["2"]);
  243. G2L["13"]["Name"] = [[Main]];
  244.  
  245. -- StarterGui.sexy spy from tf2.Frame.Drag
  246. local function C_12()
  247.     local script = G2L["12"];
  248.     local frame = script.Parent
  249.     local UserInputService = game:GetService("UserInputService")
  250.  
  251.     local dragging
  252.     local dragInput
  253.     local dragStart
  254.     local startPos
  255.  
  256.     local function update(input)
  257.         local delta = input.Position - dragStart
  258.         frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  259.     end
  260.  
  261.     frame.InputBegan:Connect(function(input)
  262.         if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  263.             dragging = true
  264.             dragStart = input.Position
  265.             startPos = frame.Position
  266.  
  267.             input.Changed:Connect(function()
  268.                 if input.UserInputState == Enum.UserInputState.End then
  269.                     dragging = false
  270.                 end
  271.             end)
  272.         end
  273.     end)
  274.  
  275.     frame.InputChanged:Connect(function(input)
  276.         if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
  277.             dragInput = input
  278.         end
  279.     end)
  280.  
  281.     UserInputService.InputChanged:Connect(function(input)
  282.         if input == dragInput and dragging then
  283.             update(input)
  284.         end
  285.     end)
  286.  
  287. end;
  288. task.spawn(C_12);
  289. -- StarterGui.sexy spy from tf2.Frame.Main
  290. local function C_13()
  291.     local script = G2L["13"];
  292.     local TweenService = game:GetService("TweenService")
  293.  
  294.     local MainFrame = script.Parent
  295.     local TopBar = MainFrame.TopBar
  296.  
  297.     local function Close()
  298.  
  299.         MainFrame.Parent:Destroy()
  300.  
  301.     end
  302.  
  303.     local function SetupButtons()
  304.  
  305.         TopBar.X.MouseEnter:Connect(function()
  306.             TweenService:Create(TopBar.X, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(170, 0, 0)}):Play()
  307.         end)
  308.  
  309.         TopBar.X.MouseLeave:Connect(function()
  310.             TweenService:Create(TopBar.X, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(37, 35, 38)}):Play()
  311.         end)
  312.  
  313.         TopBar.X.MouseButton1Click:Connect(function()
  314.             Close()
  315.         end)
  316.  
  317.         MainFrame.Buttons.Clear.MouseButton1Click:Connect(function()
  318.  
  319.             for _,v in pairs(MainFrame.Remotes:GetChildren()) do
  320.                 if v:IsA("TextButton") then
  321.                     v:Destroy()
  322.                 end
  323.             end
  324.  
  325.         end)
  326.  
  327.     end
  328.  
  329.     local function Init()
  330.  
  331.         -- Close Function
  332.  
  333.         SetupButtons()
  334.  
  335.     end
  336.  
  337.     Init()
  338. end;
  339. task.spawn(C_13);
  340.  
  341. local function getPathToInstance(instance)
  342.     local path = {}
  343.     local current = instance
  344.     while current and current ~= game do
  345.         local name = current.Name
  346.         if name:sub(1, 4) == "Game" then
  347.             name = "game" .. name:sub(5)
  348.         end
  349.         table.insert(path, 1, name)
  350.         current = current.Parent
  351.     end
  352.     return table.concat(path, ".")
  353. end
  354.  
  355. local function formatValue(value)
  356.     if typeof(value) == "string" then
  357.         return string.format("%q", value)
  358.     elseif typeof(value) == "number" then
  359.         return tostring(value)
  360.     elseif typeof(value) == "boolean" then
  361.         return value and "true" or "false"
  362.     elseif typeof(value) == "Instance" then
  363.         return getPathToInstance(value)
  364.     else
  365.         return string.format("%q", tostring(value))
  366.     end
  367. end
  368.  
  369. local function Format(args)
  370.     local formattedArgs = {}
  371.     for i, arg in ipairs(args) do
  372.         formattedArgs[i] = string.format("[%d] = %s", i, formatValue(arg))
  373.     end
  374.     return formattedArgs
  375. end
  376. local tabelhell = nil
  377. tabelhell = function(newtonbar, depth)
  378.     local value = "{"
  379.     local deeper = ""
  380.     for i=1,depth do
  381.         deeper = deeper .. "    "
  382.     end
  383.     local passes = 0
  384.     for name, value2 in pairs(newtonbar) do
  385.         if type(value2) == "string" then value2 = '"' .. value2 .. '"' end
  386.         if type(value2) == "table" then value2 = tabelhell(value2, depth+1) end
  387.         local ender = ",\n"
  388.         passes += 1
  389.         if passes == #newtonbar then
  390.             ender = ""
  391.         end
  392.         if not tonumber(name) then
  393.             name = '"' .. name .. '"'
  394.         end
  395.         value = value .. deeper .. '[' .. name .. '] = ' .. tostring(value2) .. ender
  396.     end
  397.     value = value .. "\n}"
  398.     return value
  399. end
  400.  
  401. local function handleRemote(remote)
  402.     local path = {}
  403.     local current = remote
  404.     while current and current.Parent ~= game do
  405.         local name = current.Name
  406.         if name:sub(1, 4) == "Game" then
  407.             name = "game" .. name:sub(5)
  408.         end
  409.         table.insert(path, 1, name)
  410.         current = current.Parent
  411.     end
  412.     local fullPath = table.concat(path, ".")
  413.  
  414.     if remote:IsA("RemoteEvent") then
  415.         remote.OnClientEvent:Connect(function(...)
  416.             local args = {...}
  417.             local argsString = ""
  418.             local passes = 0
  419.             for name, value in pairs(args) do
  420.                 local value = value
  421.                 local newtonbar = value
  422.                 if type(value) == "string" then value = '"' .. value .. '"' end
  423.                 if type(newtonbar) == "table" then
  424.                     value = tablehell(newtonbar, 2)
  425.                 end
  426.                 if type(value) == "userdata" then value = value:GetFullName() end
  427.                 local ender = ","
  428.                 passes += 1
  429.                 if passes == #newtonbar then
  430.                     ender = ""
  431.                 end
  432.                 if not tonumber(name) then
  433.                     name = '"' .. name .. '"'
  434.                 end
  435.                 argsString = argsString .. '\n  [' .. name .. '] = ' .. tostring(value) .. ender
  436.             end
  437.             G2L["yu"] = G2L["e"]:Clone()
  438.             G2L["yu"]["Name"] = remote.Name
  439.             G2L["yu"]["Text"] = remote.Name
  440.             G2L["yu"]["Parent"] = G2L["d"]
  441.             G2L["yu"].MouseButton1Click:Connect(function()
  442.  
  443.                 _G.Code = string.format([[local args = {
  444. %s
  445. }
  446. %s:FireServer(unpack(args))
  447. ]], argsString, fullPath)
  448.  
  449.                 G2L["11"]["Text"] = _G.Code
  450.             end)
  451.         end)
  452.     elseif remote:IsA("RemoteFunction") then
  453.         remote.OnClientInvoke = function(...)
  454.             local args = {...}
  455.             local argsString = ""
  456.             local passes = 0
  457.             for name, value in pairs(args) do
  458.                 local value = value
  459.                 local newtonbar = value
  460.                 if type(value) == "string" then value = '"' .. value .. '"' end
  461.                 if type(value) == "userdata" then value = value:GetFullName() end
  462.                 if type(newtonbar) == "table" then
  463.                     value = tablehell(newtonbar, 2)
  464.                 end
  465.                 local ender = ","
  466.                 passes += 1
  467.                 if passes == #newtonbar then
  468.                     ender = ""
  469.                 end
  470.                 if not tonumber(name) then
  471.                     name = '"' .. name .. '"'
  472.                 end
  473.                 argsString = argsString .. '\n  [' .. name .. '] = ' .. tostring(value) .. ender
  474.             end
  475.  
  476.             G2L["yu2"] = G2L["e"]:Clone()
  477.             G2L["yu2"]["Name"] = remote.Name
  478.             G2L["yu2"]["Text"] = remote.Name
  479.             G2L["yu2"]["Parent"] = G2L["d"]
  480.             G2L["yu2"].MouseButton1Click:Connect(function()
  481.                 _G.Code = string.format([[local args = {
  482. %s
  483. }
  484. %s:InvokeServer(unpack(args))
  485. ]], argsString, fullPath)
  486.             end)
  487.  
  488.             return ...
  489.         end
  490.     end
  491. end
  492.  
  493. local function wrapRemotes(folder)
  494.     for _, obj in ipairs(folder:GetDescendants()) do
  495.         if obj:IsA("RemoteEvent") or obj:IsA("RemoteFunction") then
  496.             handleRemote(obj)
  497.         end
  498.     end
  499.     folder.DescendantAdded:Connect(function(descendant)
  500.         if descendant:IsA("RemoteEvent") or descendant:IsA("RemoteFunction") then
  501.             handleRemote(descendant)
  502.         end
  503.     end)
  504. end
  505.  
  506. local folders = {
  507.     game.ReplicatedStorage,
  508.     game.StarterGui,
  509.     game.StarterPack,
  510.     game.StarterPlayer
  511. }
  512.  
  513. for _, folder in ipairs(folders) do
  514.     wrapRemotes(folder)
  515.     folder.DescendantAdded:Connect(function(descendant)
  516.         if descendant:IsA("RemoteEvent") or descendant:IsA("RemoteFunction") then
  517.             handleRemote(descendant)
  518.         end
  519.     end)
  520. end
  521.  
  522. return G2L["1"], require;
Add Comment
Please, Sign In to add comment