Lev1nko

Untitled

Feb 17th, 2023 (edited)
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 55.04 KB | None | 0 0
  1. --or copy this
  2. local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/xHeptc/Kavo-UI-Library/main/source.lua"))()
  3. local Window = Library.CreateLib("SimpleScripts (Made by Lev1nko)", "DarkTheme")
  4.  
  5. --Main
  6. local Main = Window:NewTab("Main")
  7. local MainSection = Main:NewSection("Main")
  8.  
  9. --Kat
  10. local Kat = Window:NewTab("Kat")
  11. local KatSection = Kat:NewSection("Kat")
  12.  
  13. --Others
  14. local Others = Window:NewTab("Others")
  15. local OthersSection = Others:NewSection("Others")
  16.  
  17. --Player
  18. local Player = Window:NewTab("Player")
  19. local PlayerSection = Player:NewSection("Player")
  20.  
  21. OthersSection:NewButton("BackDoorExexuter", "BackdoorExecuter", function()
  22. loadstring(game:HttpGet(('https://raw.githubusercontent.com/iK4oS/backdoor.exe/master/source.lua'),true))()
  23. end)
  24.  
  25. PlayerSection:NewToggle("Super-Human", "Run fast and jump height", function(state)
  26. if state then
  27. game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 120
  28. game.Players.LocalPlayer.Character.Humanoid.JumpPower = 120
  29. else
  30. game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 16
  31. game.Players.LocalPlayer.Character.Humanoid.JumpPower = 50
  32. end
  33. end)
  34.  
  35. KatSection:NewButton("KatAimbot", "Kills the nearst player", function()
  36. local Camera = game:GetService("Workspace").CurrentCamera
  37. local Players = game:GetService("Players")
  38. local LocalPlayer = game:GetService("Players").LocalPlayer
  39.  
  40. local function GetClosestPlayer()
  41. local ClosestPlayer = nil
  42. local FarthestDistance = math.huge
  43.  
  44. for i, v in pairs(Players.GetPlayers(Players)) do
  45. if v ~= LocalPlayer and v.Character and v.Character.FindFirstChild(v.Character, "HumanoidRootPart") then
  46. local DistanceFromPlayer = (LocalPlayer.Character.HumanoidRootPart.Position - v.Character.HumanoidRootPart.Position).Magnitude
  47.  
  48. if DistanceFromPlayer < FarthestDistance then
  49. FarthestDistance = DistanceFromPlayer
  50. ClosestPlayer = v
  51. end
  52. end
  53. end
  54.  
  55. if ClosestPlayer then
  56. return ClosestPlayer
  57. end
  58. end
  59.  
  60. local GameMetaTable = getrawmetatable(game)
  61. local OldGameMetaTableNamecall = GameMetaTable.__namecall
  62. setreadonly(GameMetaTable, false)
  63.  
  64. GameMetaTable.__namecall = newcclosure(function(object, ...)
  65. local NamecallMethod = getnamecallmethod()
  66. local Arguments = {...}
  67.  
  68. if tostring(NamecallMethod) == "FindPartOnRayWithIgnoreList" then
  69. local ClosestPlayer = GetClosestPlayer()
  70.  
  71. if ClosestPlayer and ClosestPlayer.Character then
  72. Arguments[1] = Ray.new(Camera.CFrame.Position, (ClosestPlayer.Character.Head.Position - Camera.CFrame.Position).Unit * (Camera.CFrame.Position - ClosestPlayer.Character.Head.Position).Magnitude)
  73. end
  74. end
  75.  
  76. return OldGameMetaTableNamecall(object, unpack(Arguments))
  77. end)
  78.  
  79. setreadonly(GameMetaTable, true)
  80. end)
  81.  
  82.  
  83. OthersSection:NewButton("Esp", "You can see through walls", function()
  84. -- press v to use aimbot and press q to disable aimbot
  85. loadstring(game:HttpGet("https://pastebin.com/raw/uw2P2fbY", true))()
  86.  
  87. PLAYER = game.Players.LocalPlayer
  88. MOUSE = PLAYER:GetMouse()
  89. CC = game.Workspace.CurrentCamera
  90.  
  91. ENABLED = false
  92. ESP_ENABLED = false
  93.  
  94. _G.FREE_FOR_ALL = false
  95.  
  96. _G.BIND = 118
  97. _G.ESP_BIND = 49
  98. _G.CHANGE_AIM = 'q'
  99.  
  100. _G.AIM_AT = 'Head'
  101.  
  102. wait(1)
  103.  
  104. function GetNearestPlayerToMouse()
  105. local PLAYERS = {}
  106. local PLAYER_HOLD = {}
  107. local DISTANCES = {}
  108. for i, v in pairs(game.Players:GetPlayers()) do
  109. if v ~= PLAYER then
  110. table.insert(PLAYERS, v)
  111. end
  112. end
  113. for i, v in pairs(PLAYERS) do
  114. if _G.FREE_FOR_ALL == false then
  115. if v and (v.Character) ~= nil and v.TeamColor ~= PLAYER.TeamColor then
  116. local AIM = v.Character:FindFirstChild(_G.AIM_AT)
  117. if AIM ~= nil then
  118. local DISTANCE = (AIM.Position - game.Workspace.CurrentCamera.CoordinateFrame.p).magnitude
  119. local RAY = Ray.new(game.Workspace.CurrentCamera.CoordinateFrame.p, (MOUSE.Hit.p - CC.CoordinateFrame.p).unit * DISTANCE)
  120. local HIT,POS = game.Workspace:FindPartOnRay(RAY, game.Workspace)
  121. local DIFF = math.floor((POS - AIM.Position).magnitude)
  122. PLAYER_HOLD[v.Name .. i] = {}
  123. PLAYER_HOLD[v.Name .. i].dist = DISTANCE
  124. PLAYER_HOLD[v.Name .. i].plr = v
  125. PLAYER_HOLD[v.Name .. i].diff = DIFF
  126. table.insert(DISTANCES, DIFF)
  127. end
  128. end
  129. elseif _G.FREE_FOR_ALL == true then
  130. local AIM = v.Character:FindFirstChild(_G.AIM_AT)
  131. if AIM ~= nil then
  132. local DISTANCE = (AIM.Position - game.Workspace.CurrentCamera.CoordinateFrame.p).magnitude
  133. local RAY = Ray.new(game.Workspace.CurrentCamera.CoordinateFrame.p, (MOUSE.Hit.p - CC.CoordinateFrame.p).unit * DISTANCE)
  134. local HIT,POS = game.Workspace:FindPartOnRay(RAY, game.Workspace)
  135. local DIFF = math.floor((POS - AIM.Position).magnitude)
  136. PLAYER_HOLD[v.Name .. i] = {}
  137. PLAYER_HOLD[v.Name .. i].dist = DISTANCE
  138. PLAYER_HOLD[v.Name .. i].plr = v
  139. PLAYER_HOLD[v.Name .. i].diff = DIFF
  140. table.insert(DISTANCES, DIFF)
  141. end
  142. end
  143. end
  144.  
  145. if unpack(DISTANCES) == nil then
  146. return false
  147. end
  148.  
  149. local L_DISTANCE = math.floor(math.min(unpack(DISTANCES)))
  150. if L_DISTANCE > 20 then
  151. return false
  152. end
  153.  
  154. for i, v in pairs(PLAYER_HOLD) do
  155. if v.diff == L_DISTANCE then
  156. return v.plr
  157. end
  158. end
  159. return false
  160. end
  161.  
  162. GUI_MAIN = Instance.new('ScreenGui', game.CoreGui)
  163. GUI_TARGET = Instance.new('TextLabel', GUI_MAIN)
  164. GUI_AIM_AT = Instance.new('TextLabel', GUI_MAIN)
  165.  
  166. GUI_MAIN.Name = 'AIMBOT'
  167.  
  168. GUI_TARGET.Size = UDim2.new(0,200,0,30)
  169. GUI_TARGET.BackgroundTransparency = 0.5
  170. GUI_TARGET.BackgroundColor = BrickColor.new('Fossil')
  171. GUI_TARGET.BorderSizePixel = 0
  172. GUI_TARGET.Position = UDim2.new(0.5,-100,0,0)
  173. GUI_TARGET.Text = 'AIMBOT : OFF'
  174. GUI_TARGET.TextColor3 = Color3.new(1,1,1)
  175. GUI_TARGET.TextStrokeTransparency = 1
  176. GUI_TARGET.TextWrapped = true
  177. GUI_TARGET.FontSize = 'Size24'
  178. GUI_TARGET.Font = 'SourceSansBold'
  179.  
  180. GUI_AIM_AT.Size = UDim2.new(0,200,0,20)
  181. GUI_AIM_AT.BackgroundTransparency = 0.5
  182. GUI_AIM_AT.BackgroundColor = BrickColor.new('Fossil')
  183. GUI_AIM_AT.BorderSizePixel = 0
  184. GUI_AIM_AT.Position = UDim2.new(0.5,-100,0,30)
  185. GUI_AIM_AT.Text = 'AIMING : HEAD'
  186. GUI_AIM_AT.TextColor3 = Color3.new(1,1,1)
  187. GUI_AIM_AT.TextStrokeTransparency = 1
  188. GUI_AIM_AT.TextWrapped = true
  189. GUI_AIM_AT.FontSize = 'Size18'
  190. GUI_AIM_AT.Font = 'SourceSansBold'
  191.  
  192. local TRACK = false
  193.  
  194. function CREATE(BASE, TEAM)
  195. local ESP_MAIN = Instance.new('BillboardGui', PLAYER.PlayerGui)
  196. local ESP_DOT = Instance.new('Frame', ESP_MAIN)
  197. local ESP_NAME = Instance.new('TextLabel', ESP_MAIN)
  198.  
  199. ESP_MAIN.Name = 'ESP'
  200. ESP_MAIN.Adornee = BASE
  201. ESP_MAIN.AlwaysOnTop = true
  202. ESP_MAIN.ExtentsOffset = Vector3.new(0, 1, 0)
  203. ESP_MAIN.Size = UDim2.new(0, 5, 0, 5)
  204.  
  205. ESP_DOT.Name = 'DOT'
  206. ESP_DOT.BackgroundColor = BrickColor.new('Bright red')
  207. ESP_DOT.BackgroundTransparency = 0.3
  208. ESP_DOT.BorderSizePixel = 0
  209. ESP_DOT.Position = UDim2.new(-0.5, 0, -0.5, 0)
  210. ESP_DOT.Size = UDim2.new(2, 0, 2, 0)
  211. ESP_DOT.Visible = true
  212. ESP_DOT.ZIndex = 10
  213.  
  214. ESP_NAME.Name = 'NAME'
  215. ESP_NAME.BackgroundColor3 = Color3.new(255, 255, 255)
  216. ESP_NAME.BackgroundTransparency = 1
  217. ESP_NAME.BorderSizePixel = 0
  218. ESP_NAME.Position = UDim2.new(0, 0, 0, -40)
  219. ESP_NAME.Size = UDim2.new(1, 0, 10, 0)
  220. ESP_NAME.Visible = true
  221. ESP_NAME.ZIndex = 10
  222. ESP_NAME.Font = 'ArialBold'
  223. ESP_NAME.FontSize = 'Size14'
  224. ESP_NAME.Text = BASE.Parent.Name:upper()
  225. ESP_NAME.TextColor = BrickColor.new('Bright red')
  226. end
  227.  
  228. function CLEAR()
  229. for _,v in pairs(PLAYER.PlayerGui:children()) do
  230. if v.Name == 'ESP' and v:IsA('BillboardGui') then
  231. v:Destroy()
  232. end
  233. end
  234. end
  235.  
  236. function FIND()
  237. CLEAR()
  238. TRACK = true
  239. spawn(function()
  240. while wait() do
  241. if TRACK then
  242. CLEAR()
  243. for i,v in pairs(game.Players:GetChildren()) do
  244. if v.Character and v.Character:FindFirstChild('Head') then
  245. if _G.FREE_FOR_ALL == false then
  246. if v.TeamColor ~= PLAYER.TeamColor then
  247. if v.Character:FindFirstChild('Head') then
  248. CREATE(v.Character.Head, true)
  249. end
  250. end
  251. else
  252. if v.Character:FindFirstChild('Head') then
  253. CREATE(v.Character.Head, true)
  254. end
  255. end
  256. end
  257. end
  258. end
  259. end
  260. wait(1)
  261. end)
  262. end
  263.  
  264. MOUSE.KeyDown:connect(function(KEY)
  265. KEY = KEY:lower():byte()
  266. if KEY == _G.BIND then
  267. ENABLED = true
  268. end
  269. end)
  270.  
  271. MOUSE.KeyUp:connect(function(KEY)
  272. KEY = KEY:lower():byte()
  273. if KEY == _G.BIND then
  274. ENABLED = false
  275. end
  276. end)
  277.  
  278. MOUSE.KeyDown:connect(function(KEY)
  279. KEY = KEY:lower():byte()
  280. if KEY == _G.ESP_BIND then
  281. if ESP_ENABLED == false then
  282. FIND()
  283. ESP_ENABLED = true
  284. print('ESP : ON')
  285. elseif ESP_ENABLED == true then
  286. wait()
  287. CLEAR()
  288. TRACK = false
  289. ESP_ENABLED = true
  290. print('ESP : OFF')
  291. end
  292. end
  293. end)
  294.  
  295. MOUSE.KeyDown:connect(function(KEY)
  296. if KEY == _G.CHANGE_AIM then
  297. if _G.AIM_AT == 'Head' then
  298. _G.AIM_AT = 'Torso'
  299. GUI_AIM_AT.Text = 'AIMING : TORSO'
  300. elseif _G.AIM_AT == 'Torso' then
  301. _G.AIM_AT = 'Head'
  302. GUI_AIM_AT.Text = 'AIMING : HEAD'
  303. end
  304. end
  305. end)
  306.  
  307. game:GetService('RunService').RenderStepped:connect(function()
  308. if ENABLED then
  309. local TARGET = GetNearestPlayerToMouse()
  310. if (TARGET ~= false) then
  311. local AIM = TARGET.Character:FindFirstChild(_G.AIM_AT)
  312. if AIM then
  313. CC.CoordinateFrame = CFrame.new(CC.CoordinateFrame.p, AIM.CFrame.p)
  314. end
  315. GUI_TARGET.Text = 'AIMBOT : '.. TARGET.Name:sub(1, 5)
  316. else
  317. GUI_TARGET.Text = 'AIMBOT : OFF'
  318. end
  319. end
  320. end)
  321.  
  322. repeat
  323. wait()
  324. if ESP_ENABLED == true then
  325. FIND()
  326. end
  327. until ESP_ENABLED == false
  328. wait()
  329. _G.FREE_FOR_ALL = false
  330. _G.BIND = 118 -- LEFT ALT
  331. _G.ESP_BIND = 49 -- RIGHT CTRL
  332. end)
  333.  
  334.  
  335. OthersSection:NewButton("TurtleSpy", "Rspy(RemoteSpy)", function()
  336. -- TurtleSpy V1.5.3, credits to Intrer#0421
  337.  
  338. local colorSettings =
  339. {
  340. ["Main"] = {
  341. ["HeaderColor"] = Color3.fromRGB(0, 168, 255),
  342. ["HeaderShadingColor"] = Color3.fromRGB(0, 151, 230),
  343. ["HeaderTextColor"] = Color3.fromRGB(47, 54, 64),
  344. ["MainBackgroundColor"] = Color3.fromRGB(47, 54, 64),
  345. ["InfoScrollingFrameBgColor"] = Color3.fromRGB(47, 54, 64),
  346. ["ScrollBarImageColor"] = Color3.fromRGB(127, 143, 166)
  347. },
  348. ["RemoteButtons"] = {
  349. ["BorderColor"] = Color3.fromRGB(113, 128, 147),
  350. ["BackgroundColor"] = Color3.fromRGB(53, 59, 72),
  351. ["TextColor"] = Color3.fromRGB(220, 221, 225),
  352. ["NumberTextColor"] = Color3.fromRGB(203, 204, 207)
  353. },
  354. ["MainButtons"] = {
  355. ["BorderColor"] = Color3.fromRGB(113, 128, 147),
  356. ["BackgroundColor"] = Color3.fromRGB(53, 59, 72),
  357. ["TextColor"] = Color3.fromRGB(220, 221, 225)
  358. },
  359. ['Code'] = {
  360. ['BackgroundColor'] = Color3.fromRGB(35, 40, 48),
  361. ['TextColor'] = Color3.fromRGB(220, 221, 225),
  362. ['CreditsColor'] = Color3.fromRGB(108, 108, 108)
  363. },
  364. }
  365.  
  366. local settings = {
  367. ["Keybind"] = "P"
  368. }
  369.  
  370. if PROTOSMASHER_LOADED then
  371. getgenv().isfile = newcclosure(function(File)
  372. local Suc, Er = pcall(readfile, File)
  373. if not Suc then
  374. return false
  375. end
  376. return true
  377. end)
  378. end
  379.  
  380. local HttpService = game:GetService("HttpService")
  381. -- read settings for keybind
  382. if not isfile("TurtleSpySettings.json") then
  383. writefile("TurtleSpySettings.json", HttpService:JSONEncode(settings))
  384. else
  385. if HttpService:JSONDecode(readfile("TurtleSpySettings.json"))["Main"] then
  386. writefile("TurtleSpySettings.json", HttpService:JSONEncode(settings))
  387. else
  388. settings = HttpService:JSONDecode(readfile("TurtleSpySettings.json"))
  389. end
  390. end
  391.  
  392. -- Compatibility for protosmasher: credits to sdjsdj (v3rm username) for converting to proto
  393.  
  394. function isSynapse()
  395. if PROTOSMASHER_LOADED then
  396. return false
  397. else
  398. return true
  399. end
  400. end
  401. function Parent(GUI)
  402. if syn and syn.protect_gui then
  403. syn.protect_gui(GUI)
  404. GUI.Parent = game:GetService("CoreGui")
  405. elseif PROTOSMASHER_LOADED then
  406. GUI.Parent = get_hidden_gui()
  407. else
  408. GUI.Parent = game:GetService("CoreGui")
  409. end
  410. end
  411.  
  412. local client = game.Players.LocalPlayer
  413. local function toUnicode(string)
  414. local codepoints = "utf8.char("
  415.  
  416. for _i, v in utf8.codes(string) do
  417. codepoints = codepoints .. v .. ', '
  418. end
  419.  
  420. return codepoints:sub(1, -3) .. ')'
  421. end
  422. local function GetFullPathOfAnInstance(instance)
  423. local name = instance.Name
  424. local head = (#name > 0 and '.' .. name) or "['']"
  425.  
  426. if not instance.Parent and instance ~= game then
  427. return head .. " --[[ PARENTED TO NIL OR DESTROYED ]]"
  428. end
  429.  
  430. if instance == game then
  431. return "game"
  432. elseif instance == workspace then
  433. return "workspace"
  434. else
  435. local _success, result = pcall(game.GetService, game, instance.ClassName)
  436.  
  437. if result then
  438. head = ':GetService("' .. instance.ClassName .. '")'
  439. elseif instance == client then
  440. head = '.LocalPlayer'
  441. else
  442. local nonAlphaNum = name:gsub('[%w_]', '')
  443. local noPunct = nonAlphaNum:gsub('[%s%p]', '')
  444.  
  445. if tonumber(name:sub(1, 1)) or (#nonAlphaNum ~= 0 and #noPunct == 0) then
  446. head = '["' .. name:gsub('"', '\\"'):gsub('\\', '\\\\') .. '"]'
  447. elseif #nonAlphaNum ~= 0 and #noPunct > 0 then
  448. head = '[' .. toUnicode(name) .. ']'
  449. end
  450. end
  451. end
  452.  
  453. return GetFullPathOfAnInstance(instance.Parent) .. head
  454. end
  455. -- Main Script
  456.  
  457. -- references to game functions (to prevent using namecall inside of a namecall hook)
  458. local isA = game.IsA
  459. local clone = game.Clone
  460.  
  461. local TextService = game:GetService("TextService")
  462. local getTextSize = TextService.GetTextSize
  463. game.StarterGui.ResetPlayerGuiOnSpawn = false
  464. local mouse = game.Players.LocalPlayer:GetMouse()
  465.  
  466. -- delete the previous instances of turtlespy
  467. if game.CoreGui:FindFirstChild("TurtleSpyGUI") then
  468. game.CoreGui.TurtleSpyGUI:Destroy()
  469. end
  470.  
  471. --Important tables and GUI offsets
  472. local buttonOffset = -25
  473. local scrollSizeOffset = 287
  474. local functionImage = "http://www.roblox.com/asset/?id=413369623"
  475. local eventImage = "http://www.roblox.com/asset/?id=413369506"
  476. local remotes = {}
  477. local remoteArgs = {}
  478. local remoteButtons = {}
  479. local remoteScripts = {}
  480. local IgnoreList = {}
  481. local BlockList = {}
  482. local IgnoreList = {}
  483. local connections = {}
  484. local unstacked = {}
  485.  
  486. -- (mostly) generated code by Gui to lua
  487. local TurtleSpyGUI = Instance.new("ScreenGui")
  488. local mainFrame = Instance.new("Frame")
  489. local Header = Instance.new("Frame")
  490. local HeaderShading = Instance.new("Frame")
  491. local HeaderTextLabel = Instance.new("TextLabel")
  492. local RemoteScrollFrame = Instance.new("ScrollingFrame")
  493. local RemoteButton = Instance.new("TextButton")
  494. local Number = Instance.new("TextLabel")
  495. local RemoteName = Instance.new("TextLabel")
  496. local RemoteIcon = Instance.new("ImageLabel")
  497. local InfoFrame = Instance.new("Frame")
  498. local InfoFrameHeader = Instance.new("Frame")
  499. local InfoTitleShading = Instance.new("Frame")
  500. local CodeFrame = Instance.new("ScrollingFrame")
  501. local Code = Instance.new("TextLabel")
  502. local CodeComment = Instance.new("TextLabel")
  503. local InfoHeaderText = Instance.new("TextLabel")
  504. local InfoButtonsScroll = Instance.new("ScrollingFrame")
  505. local CopyCode = Instance.new("TextButton")
  506. local RunCode = Instance.new("TextButton")
  507. local CopyScriptPath = Instance.new("TextButton")
  508. local CopyDecompiled = Instance.new("TextButton")
  509. local IgnoreRemote = Instance.new("TextButton")
  510. local BlockRemote = Instance.new("TextButton")
  511. local WhileLoop = Instance.new("TextButton")
  512. local CopyReturn = Instance.new("TextButton")
  513. local Clear = Instance.new("TextButton")
  514. local FrameDivider = Instance.new("Frame")
  515. local CloseInfoFrame = Instance.new("TextButton")
  516. local OpenInfoFrame = Instance.new("TextButton")
  517. local Minimize = Instance.new("TextButton")
  518. local DoNotStack = Instance.new("TextButton")
  519. local ImageButton = Instance.new("ImageButton")
  520.  
  521. -- Remote browser
  522. local BrowserHeader = Instance.new("Frame")
  523. local BrowserHeaderFrame = Instance.new("Frame")
  524. local BrowserHeaderText = Instance.new("TextLabel")
  525. local CloseInfoFrame2 = Instance.new("TextButton")
  526. local RemoteBrowserFrame = Instance.new("ScrollingFrame")
  527. local RemoteButton2 = Instance.new("TextButton")
  528. local RemoteName2 = Instance.new("TextLabel")
  529. local RemoteIcon2 = Instance.new("ImageLabel")
  530.  
  531. TurtleSpyGUI.Name = "TurtleSpyGUI"
  532.  
  533. Parent(TurtleSpyGUI)
  534.  
  535. mainFrame.Name = "mainFrame"
  536. mainFrame.Parent = TurtleSpyGUI
  537. mainFrame.BackgroundColor3 = Color3.fromRGB(53, 59, 72)
  538. mainFrame.BorderColor3 = Color3.fromRGB(53, 59, 72)
  539. mainFrame.Position = UDim2.new(0.100000001, 0, 0.239999995, 0)
  540. mainFrame.Size = UDim2.new(0, 207, 0, 35)
  541. mainFrame.ZIndex = 8
  542. mainFrame.Active = true
  543. mainFrame.Draggable = true
  544.  
  545. -- Remote browser properties
  546.  
  547. BrowserHeader.Name = "BrowserHeader"
  548. BrowserHeader.Parent = TurtleSpyGUI
  549. BrowserHeader.BackgroundColor3 = colorSettings["Main"]["HeaderShadingColor"]
  550. BrowserHeader.BorderColor3 = colorSettings["Main"]["HeaderShadingColor"]
  551. BrowserHeader.Position = UDim2.new(0.712152421, 0, 0.339464903, 0)
  552. BrowserHeader.Size = UDim2.new(0, 207, 0, 33)
  553. BrowserHeader.ZIndex = 20
  554. BrowserHeader.Active = true
  555. BrowserHeader.Draggable = true
  556. BrowserHeader.Visible = false
  557.  
  558. BrowserHeaderFrame.Name = "BrowserHeaderFrame"
  559. BrowserHeaderFrame.Parent = BrowserHeader
  560. BrowserHeaderFrame.BackgroundColor3 = colorSettings["Main"]["HeaderColor"]
  561. BrowserHeaderFrame.BorderColor3 = colorSettings["Main"]["HeaderColor"]
  562. BrowserHeaderFrame.Position = UDim2.new(0, 0, -0.0202544238, 0)
  563. BrowserHeaderFrame.Size = UDim2.new(0, 207, 0, 26)
  564. BrowserHeaderFrame.ZIndex = 21
  565.  
  566. BrowserHeaderText.Name = "InfoHeaderText"
  567. BrowserHeaderText.Parent = BrowserHeaderFrame
  568. BrowserHeaderText.BackgroundTransparency = 1.000
  569. BrowserHeaderText.Position = UDim2.new(0, 0, -0.00206991332, 0)
  570. BrowserHeaderText.Size = UDim2.new(0, 206, 0, 33)
  571. BrowserHeaderText.ZIndex = 22
  572. BrowserHeaderText.Font = Enum.Font.SourceSans
  573. BrowserHeaderText.Text = "Remote Browser"
  574. BrowserHeaderText.TextColor3 = colorSettings["Main"]["HeaderTextColor"]
  575. BrowserHeaderText.TextSize = 17.000
  576.  
  577. CloseInfoFrame2.Name = "CloseInfoFrame"
  578. CloseInfoFrame2.Parent = BrowserHeaderFrame
  579. CloseInfoFrame2.BackgroundColor3 = colorSettings["Main"]["HeaderColor"]
  580. CloseInfoFrame2.BorderColor3 = colorSettings["Main"]["HeaderColor"]
  581. CloseInfoFrame2.Position = UDim2.new(0, 185, 0, 2)
  582. CloseInfoFrame2.Size = UDim2.new(0, 22, 0, 22)
  583. CloseInfoFrame2.ZIndex = 38
  584. CloseInfoFrame2.Font = Enum.Font.SourceSansLight
  585. CloseInfoFrame2.Text = "X"
  586. CloseInfoFrame2.TextColor3 = Color3.fromRGB(0, 0, 0)
  587. CloseInfoFrame2.TextSize = 20.000
  588. CloseInfoFrame2.MouseButton1Click:Connect(function()
  589. BrowserHeader.Visible = not BrowserHeader.Visible
  590. end)
  591.  
  592. RemoteBrowserFrame.Name = "RemoteBrowserFrame"
  593. RemoteBrowserFrame.Parent = BrowserHeader
  594. RemoteBrowserFrame.Active = true
  595. RemoteBrowserFrame.BackgroundColor3 = Color3.fromRGB(47, 54, 64)
  596. RemoteBrowserFrame.BorderColor3 = Color3.fromRGB(47, 54, 64)
  597. RemoteBrowserFrame.Position = UDim2.new(-0.004540205, 0, 1.03504682, 0)
  598. RemoteBrowserFrame.Size = UDim2.new(0, 207, 0, 286)
  599. RemoteBrowserFrame.ZIndex = 19
  600. RemoteBrowserFrame.CanvasSize = UDim2.new(0, 0, 0, 287)
  601. RemoteBrowserFrame.ScrollBarThickness = 8
  602. RemoteBrowserFrame.VerticalScrollBarPosition = Enum.VerticalScrollBarPosition.Left
  603. RemoteBrowserFrame.ScrollBarImageColor3 = colorSettings["Main"]["ScrollBarImageColor"]
  604.  
  605. RemoteButton2.Name = "RemoteButton"
  606. RemoteButton2.Parent = RemoteBrowserFrame
  607. RemoteButton2.BackgroundColor3 = colorSettings["RemoteButtons"]["BackgroundColor"]
  608. RemoteButton2.BorderColor3 = colorSettings["RemoteButtons"]["BorderColor"]
  609. RemoteButton2.Position = UDim2.new(0, 17, 0, 10)
  610. RemoteButton2.Size = UDim2.new(0, 182, 0, 26)
  611. RemoteButton2.ZIndex = 20
  612. RemoteButton2.Selected = true
  613. RemoteButton2.Font = Enum.Font.SourceSans
  614. RemoteButton2.Text = ""
  615. RemoteButton2.TextSize = 18.000
  616. RemoteButton2.TextStrokeTransparency = 123.000
  617. RemoteButton2.TextWrapped = true
  618. RemoteButton2.TextXAlignment = Enum.TextXAlignment.Left
  619. RemoteButton2.Visible = false
  620.  
  621. RemoteName2.Name = "RemoteName2"
  622. RemoteName2.Parent = RemoteButton2
  623. RemoteName2.BackgroundTransparency = 1.000
  624. RemoteName2.Position = UDim2.new(0, 5, 0, 0)
  625. RemoteName2.Size = UDim2.new(0, 155, 0, 26)
  626. RemoteName2.ZIndex = 21
  627. RemoteName2.Font = Enum.Font.SourceSans
  628. RemoteName2.Text = "RemoteEventaasdadad"
  629. RemoteName2.TextColor3 = colorSettings["RemoteButtons"]["TextColor"]
  630. RemoteName2.TextSize = 16.000
  631. RemoteName2.TextXAlignment = Enum.TextXAlignment.Left
  632. RemoteName2.TextTruncate = 1
  633.  
  634.  
  635. RemoteIcon2.Name = "RemoteIcon2"
  636. RemoteIcon2.Parent = RemoteButton2
  637. RemoteIcon2.BackgroundTransparency = 1.000
  638. RemoteIcon2.Position = UDim2.new(0.840260386, 0, 0.0225472748, 0)
  639. RemoteIcon2.Size = UDim2.new(0, 24, 0, 24)
  640. RemoteIcon2.ZIndex = 21
  641. RemoteIcon2.Image = functionImage
  642.  
  643. local browsedRemotes = {}
  644. local browsedConnections = {}
  645. local browsedButtonOffset = 10
  646. local browserCanvasSize = 286
  647.  
  648. ImageButton.Parent = Header
  649. ImageButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  650. ImageButton.BackgroundTransparency = 1.000
  651. ImageButton.Position = UDim2.new(0, 8, 0, 8)
  652. ImageButton.Size = UDim2.new(0, 18, 0, 18)
  653. ImageButton.ZIndex = 9
  654. ImageButton.Image = "rbxassetid://169476802"
  655. ImageButton.ImageColor3 = Color3.fromRGB(53, 53, 53)
  656. ImageButton.MouseButton1Click:Connect(function()
  657. BrowserHeader.Visible = not BrowserHeader.Visible
  658. for i, v in pairs(game:GetDescendants()) do
  659. if isA(v, "RemoteEvent") or isA(v, "RemoteFunction") then
  660. local bButton = clone(RemoteButton2)
  661. bButton.Parent = RemoteBrowserFrame
  662. bButton.Visible = true
  663. bButton.Position = UDim2.new(0, 17, 0, browsedButtonOffset)
  664. local fireFunction = ""
  665. if isA(v, "RemoteEvent") then
  666. fireFunction = ":FireServer()"
  667. bButton.RemoteIcon2.Image = eventImage
  668. else
  669. fireFunction = ":InvokeServer()"
  670. end
  671. bButton.RemoteName2.Text = v.Name
  672. local connection = bButton.MouseButton1Click:Connect(function()
  673. setclipboard(GetFullPathOfAnInstance(v)..fireFunction)
  674. end)
  675. table.insert(browsedConnections, connection)
  676. browsedButtonOffset = browsedButtonOffset + 35
  677.  
  678. if #browsedConnections > 8 then
  679. browserCanvasSize = browserCanvasSize + 35
  680. RemoteBrowserFrame.CanvasSize = UDim2.new(0, 0, 0, browserCanvasSize)
  681. end
  682. end
  683. end
  684. end)
  685.  
  686. mouse.KeyDown:Connect(function(key)
  687. if key:lower() == settings["Keybind"]:lower() then
  688. TurtleSpyGUI.Enabled = not TurtleSpyGUI.Enabled
  689. end
  690. end)
  691.  
  692. Header.Name = "Header"
  693. Header.Parent = mainFrame
  694. Header.BackgroundColor3 = colorSettings["Main"]["HeaderColor"]
  695. Header.BorderColor3 = colorSettings["Main"]["HeaderColor"]
  696. Header.Size = UDim2.new(0, 207, 0, 26)
  697. Header.ZIndex = 9
  698.  
  699. HeaderShading.Name = "HeaderShading"
  700. HeaderShading.Parent = Header
  701. HeaderShading.BackgroundColor3 = colorSettings["Main"]["HeaderShadingColor"]
  702. HeaderShading.BorderColor3 = colorSettings["Main"]["HeaderShadingColor"]
  703. HeaderShading.Position = UDim2.new(1.46719131e-07, 0, 0.285714358, 0)
  704. HeaderShading.Size = UDim2.new(0, 207, 0, 27)
  705. HeaderShading.ZIndex = 8
  706.  
  707. HeaderTextLabel.Name = "HeaderTextLabel"
  708. HeaderTextLabel.Parent = HeaderShading
  709. HeaderTextLabel.BackgroundTransparency = 1.000
  710. HeaderTextLabel.Position = UDim2.new(-0.00507604145, 0, -0.202857122, 0)
  711. HeaderTextLabel.Size = UDim2.new(0, 215, 0, 29)
  712. HeaderTextLabel.ZIndex = 10
  713. HeaderTextLabel.Font = Enum.Font.SourceSans
  714. HeaderTextLabel.Text = "Turtle Spy"
  715. HeaderTextLabel.TextColor3 = colorSettings["Main"]["HeaderTextColor"]
  716. HeaderTextLabel.TextSize = 17.000
  717.  
  718. RemoteScrollFrame.Name = "RemoteScrollFrame"
  719. RemoteScrollFrame.Parent = mainFrame
  720. RemoteScrollFrame.Active = true
  721. RemoteScrollFrame.BackgroundColor3 = Color3.fromRGB(47, 54, 64)
  722. RemoteScrollFrame.BorderColor3 = Color3.fromRGB(47, 54, 64)
  723. RemoteScrollFrame.Position = UDim2.new(0, 0, 1.02292562, 0)
  724. RemoteScrollFrame.Size = UDim2.new(0, 207, 0, 286)
  725. RemoteScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 287)
  726. RemoteScrollFrame.ScrollBarThickness = 8
  727. RemoteScrollFrame.VerticalScrollBarPosition = Enum.VerticalScrollBarPosition.Left
  728. RemoteScrollFrame.ScrollBarImageColor3 = colorSettings["Main"]["ScrollBarImageColor"]
  729.  
  730. RemoteButton.Name = "RemoteButton"
  731. RemoteButton.Parent = RemoteScrollFrame
  732. RemoteButton.BackgroundColor3 = colorSettings["RemoteButtons"]["BackgroundColor"]
  733. RemoteButton.BorderColor3 = colorSettings["RemoteButtons"]["BorderColor"]
  734. RemoteButton.Position = UDim2.new(0, 17, 0, 10)
  735. RemoteButton.Size = UDim2.new(0, 182, 0, 26)
  736. RemoteButton.Selected = true
  737. RemoteButton.Font = Enum.Font.SourceSans
  738. RemoteButton.Text = ""
  739. RemoteButton.TextColor3 = Color3.fromRGB(220, 221, 225)
  740. RemoteButton.TextSize = 18.000
  741. RemoteButton.TextStrokeTransparency = 123.000
  742. RemoteButton.TextWrapped = true
  743. RemoteButton.TextXAlignment = Enum.TextXAlignment.Left
  744. RemoteButton.Visible = false
  745.  
  746. Number.Name = "Number"
  747. Number.Parent = RemoteButton
  748. Number.BackgroundTransparency = 1.000
  749. Number.Position = UDim2.new(0, 5, 0, 0)
  750. Number.Size = UDim2.new(0, 300, 0, 26)
  751. Number.ZIndex = 2
  752. Number.Font = Enum.Font.SourceSans
  753. Number.Text = "1"
  754. Number.TextColor3 = colorSettings["RemoteButtons"]["NumberTextColor"]
  755. Number.TextSize = 16.000
  756. Number.TextWrapped = true
  757. Number.TextXAlignment = Enum.TextXAlignment.Left
  758.  
  759. RemoteName.Name = "RemoteName"
  760. RemoteName.Parent = RemoteButton
  761. RemoteName.BackgroundTransparency = 1.000
  762. RemoteName.Position = UDim2.new(0, 20, 0, 0)
  763. RemoteName.Size = UDim2.new(0, 134, 0, 26)
  764. RemoteName.Font = Enum.Font.SourceSans
  765. RemoteName.Text = "RemoteEvent"
  766. RemoteName.TextColor3 = colorSettings["RemoteButtons"]["TextColor"]
  767. RemoteName.TextSize = 16.000
  768. RemoteName.TextXAlignment = Enum.TextXAlignment.Left
  769. RemoteName.TextTruncate = 1
  770.  
  771. RemoteIcon.Name = "RemoteIcon"
  772. RemoteIcon.Parent = RemoteButton
  773. RemoteIcon.BackgroundTransparency = 1.000
  774. RemoteIcon.Position = UDim2.new(0.840260386, 0, 0.0225472748, 0)
  775. RemoteIcon.Size = UDim2.new(0, 24, 0, 24)
  776. RemoteIcon.Image = "http://www.roblox.com/asset/?id=413369506"
  777.  
  778. InfoFrame.Name = "InfoFrame"
  779. InfoFrame.Parent = mainFrame
  780. InfoFrame.BackgroundColor3 = colorSettings["Main"]["MainBackgroundColor"]
  781. InfoFrame.BorderColor3 = colorSettings["Main"]["MainBackgroundColor"]
  782. InfoFrame.Position = UDim2.new(0.368141592, 0, -5.58035717e-05, 0)
  783. InfoFrame.Size = UDim2.new(0, 357, 0, 322)
  784. InfoFrame.Visible = false
  785. InfoFrame.ZIndex = 6
  786.  
  787. InfoFrameHeader.Name = "InfoFrameHeader"
  788. InfoFrameHeader.Parent = InfoFrame
  789. InfoFrameHeader.BackgroundColor3 = colorSettings["Main"]["HeaderColor"]
  790. InfoFrameHeader.BorderColor3 = colorSettings["Main"]["HeaderColor"]
  791. InfoFrameHeader.Size = UDim2.new(0, 357, 0, 26)
  792. InfoFrameHeader.ZIndex = 14
  793.  
  794. InfoTitleShading.Name = "InfoTitleShading"
  795. InfoTitleShading.Parent = InfoFrame
  796. InfoTitleShading.BackgroundColor3 = colorSettings["Main"]["HeaderShadingColor"]
  797. InfoTitleShading.BorderColor3 = colorSettings["Main"]["HeaderShadingColor"]
  798. InfoTitleShading.Position = UDim2.new(-0.00280881394, 0, 0, 0)
  799. InfoTitleShading.Size = UDim2.new(0, 358, 0, 34)
  800. InfoTitleShading.ZIndex = 13
  801.  
  802. CodeFrame.Name = "CodeFrame"
  803. CodeFrame.Parent = InfoFrame
  804. CodeFrame.Active = true
  805. CodeFrame.BackgroundColor3 = colorSettings["Code"]["BackgroundColor"]
  806. CodeFrame.BorderColor3 = colorSettings["Code"]["BackgroundColor"]
  807. CodeFrame.Position = UDim2.new(0.0391303748, 0, 0.141156405, 0)
  808. CodeFrame.Size = UDim2.new(0, 329, 0, 63)
  809. CodeFrame.ZIndex = 16
  810. CodeFrame.CanvasSize = UDim2.new(0, 670, 2, 0)
  811. CodeFrame.ScrollBarThickness = 8
  812. CodeFrame.ScrollingDirection = 1
  813. CodeFrame.ScrollBarImageColor3 = colorSettings["Main"]["ScrollBarImageColor"]
  814.  
  815. Code.Name = "Code"
  816. Code.Parent = CodeFrame
  817. Code.BackgroundTransparency = 1.000
  818. Code.Position = UDim2.new(0.00888902973, 0, 0.0394801199, 0)
  819. Code.Size = UDim2.new(0, 100000, 0, 25)
  820. Code.ZIndex = 18
  821. Code.Font = Enum.Font.SourceSans
  822. Code.Text = "Thanks for using Turtle Spy! :D"
  823. Code.TextColor3 = colorSettings["Code"]["TextColor"]
  824. Code.TextSize = 14.000
  825. Code.TextWrapped = true
  826. Code.TextXAlignment = Enum.TextXAlignment.Left
  827.  
  828. CodeComment.Name = "CodeComment"
  829. CodeComment.Parent = CodeFrame
  830. CodeComment.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  831. CodeComment.BackgroundTransparency = 1.000
  832. CodeComment.Position = UDim2.new(0.0119285434, 0, -0.001968503, 0)
  833. CodeComment.Size = UDim2.new(0, 1000, 0, 25)
  834. CodeComment.ZIndex = 18
  835. CodeComment.Font = Enum.Font.SourceSans
  836. CodeComment.Text = "-- Script generated by TurtleSpy, made by Intrer#0421"
  837. CodeComment.TextColor3 = colorSettings["Code"]["CreditsColor"]
  838. CodeComment.TextSize = 14.000
  839. CodeComment.TextXAlignment = Enum.TextXAlignment.Left
  840.  
  841. InfoHeaderText.Name = "InfoHeaderText"
  842. InfoHeaderText.Parent = InfoFrame
  843. InfoHeaderText.BackgroundTransparency = 1.000
  844. InfoHeaderText.Position = UDim2.new(0.0391303934, 0, -0.00206972216, 0)
  845. InfoHeaderText.Size = UDim2.new(0, 342, 0, 35)
  846. InfoHeaderText.ZIndex = 18
  847. InfoHeaderText.Font = Enum.Font.SourceSans
  848. InfoHeaderText.Text = "Info: RemoteFunction"
  849. InfoHeaderText.TextColor3 = colorSettings["Main"]["HeaderTextColor"]
  850. InfoHeaderText.TextSize = 17.000
  851.  
  852. InfoButtonsScroll.Name = "InfoButtonsScroll"
  853. InfoButtonsScroll.Parent = InfoFrame
  854. InfoButtonsScroll.Active = true
  855. InfoButtonsScroll.BackgroundColor3 = colorSettings["Main"]["MainBackgroundColor"]
  856. InfoButtonsScroll.BorderColor3 = colorSettings["Main"]["MainBackgroundColor"]
  857. InfoButtonsScroll.Position = UDim2.new(0.0391303748, 0, 0.355857909, 0)
  858. InfoButtonsScroll.Size = UDim2.new(0, 329, 0, 199)
  859. InfoButtonsScroll.ZIndex = 11
  860. InfoButtonsScroll.CanvasSize = UDim2.new(0, 0, 1, 0)
  861. InfoButtonsScroll.ScrollBarThickness = 8
  862. InfoButtonsScroll.VerticalScrollBarPosition = Enum.VerticalScrollBarPosition.Left
  863. InfoButtonsScroll.ScrollBarImageColor3 = colorSettings["Main"]["ScrollBarImageColor"]
  864.  
  865. CopyCode.Name = "CopyCode"
  866. CopyCode.Parent = InfoButtonsScroll
  867. CopyCode.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  868. CopyCode.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  869. CopyCode.Position = UDim2.new(0.0645, 0, 0, 10)
  870. CopyCode.Size = UDim2.new(0, 294, 0, 26)
  871. CopyCode.ZIndex = 15
  872. CopyCode.Font = Enum.Font.SourceSans
  873. CopyCode.Text = "Copy code"
  874. CopyCode.TextColor3 = Color3.fromRGB(250, 251, 255)
  875. CopyCode.TextSize = 16.000
  876.  
  877. RunCode.Name = "RunCode"
  878. RunCode.Parent = InfoButtonsScroll
  879. RunCode.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  880. RunCode.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  881. RunCode.Position = UDim2.new(0.0645, 0, 0, 45)
  882. RunCode.Size = UDim2.new(0, 294, 0, 26)
  883. RunCode.ZIndex = 15
  884. RunCode.Font = Enum.Font.SourceSans
  885. RunCode.Text = "Execute"
  886. RunCode.TextColor3 = Color3.fromRGB(250, 251, 255)
  887. RunCode.TextSize = 16.000
  888.  
  889. CopyScriptPath.Name = "CopyScriptPath"
  890. CopyScriptPath.Parent = InfoButtonsScroll
  891. CopyScriptPath.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  892. CopyScriptPath.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  893. CopyScriptPath.Position = UDim2.new(0.0645, 0, 0, 80)
  894. CopyScriptPath.Size = UDim2.new(0, 294, 0, 26)
  895. CopyScriptPath.ZIndex = 15
  896. CopyScriptPath.Font = Enum.Font.SourceSans
  897. CopyScriptPath.Text = "Copy script path"
  898. CopyScriptPath.TextColor3 = Color3.fromRGB(250, 251, 255)
  899. CopyScriptPath.TextSize = 16.000
  900.  
  901. CopyDecompiled.Name = "CopyDecompiled"
  902. CopyDecompiled.Parent = InfoButtonsScroll
  903. CopyDecompiled.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  904. CopyDecompiled.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  905. CopyDecompiled.Position = UDim2.new(0.0645, 0, 0, 115)
  906. CopyDecompiled.Size = UDim2.new(0, 294, 0, 26)
  907. CopyDecompiled.ZIndex = 15
  908. CopyDecompiled.Font = Enum.Font.SourceSans
  909. CopyDecompiled.Text = "Copy decompiled script"
  910. CopyDecompiled.TextColor3 = Color3.fromRGB(250, 251, 255)
  911. CopyDecompiled.TextSize = 16.000
  912.  
  913. IgnoreRemote.Name = "IgnoreRemote"
  914. IgnoreRemote.Parent = InfoButtonsScroll
  915. IgnoreRemote.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  916. IgnoreRemote.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  917. IgnoreRemote.Position = UDim2.new(0.0645, 0, 0, 185)
  918. IgnoreRemote.Size = UDim2.new(0, 294, 0, 26)
  919. IgnoreRemote.ZIndex = 15
  920. IgnoreRemote.Font = Enum.Font.SourceSans
  921. IgnoreRemote.Text = "Ignore remote"
  922. IgnoreRemote.TextColor3 = Color3.fromRGB(250, 251, 255)
  923. IgnoreRemote.TextSize = 16.000
  924.  
  925. BlockRemote.Name = "Block Remote"
  926. BlockRemote.Parent = InfoButtonsScroll
  927. BlockRemote.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  928. BlockRemote.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  929. BlockRemote.Position = UDim2.new(0.0645, 0, 0, 220)
  930. BlockRemote.Size = UDim2.new(0, 294, 0, 26)
  931. BlockRemote.ZIndex = 15
  932. BlockRemote.Font = Enum.Font.SourceSans
  933. BlockRemote.Text = "Block remote from firing"
  934. BlockRemote.TextColor3 = Color3.fromRGB(250, 251, 255)
  935. BlockRemote.TextSize = 16.000
  936.  
  937. WhileLoop.Name = "WhileLoop"
  938. WhileLoop.Parent = InfoButtonsScroll
  939. WhileLoop.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  940. WhileLoop.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  941. WhileLoop.Position = UDim2.new(0.0645, 0, 0, 290)
  942. WhileLoop.Size = UDim2.new(0, 294, 0, 26)
  943. WhileLoop.ZIndex = 15
  944. WhileLoop.Font = Enum.Font.SourceSans
  945. WhileLoop.Text = "Generate while loop script"
  946. WhileLoop.TextColor3 = Color3.fromRGB(250, 251, 255)
  947. WhileLoop.TextSize = 16.000
  948.  
  949. Clear.Name = "Clear"
  950. Clear.Parent = InfoButtonsScroll
  951. Clear.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  952. Clear.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  953. Clear.Position = UDim2.new(0.0645, 0, 0, 255)
  954. Clear.Size = UDim2.new(0, 294, 0, 26)
  955. Clear.ZIndex = 15
  956. Clear.Font = Enum.Font.SourceSans
  957. Clear.Text = "Clear logs"
  958. Clear.TextColor3 = Color3.fromRGB(250, 251, 255)
  959. Clear.TextSize = 16.000
  960.  
  961. CopyReturn.Name = "CopyReturn"
  962. CopyReturn.Parent = InfoButtonsScroll
  963. CopyReturn.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  964. CopyReturn.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  965. CopyReturn.Position = UDim2.new(0.0645, 0, 0, 325)
  966. CopyReturn.Size = UDim2.new(0, 294, 0, 26)
  967. CopyReturn.ZIndex = 15
  968. CopyReturn.Font = Enum.Font.SourceSans
  969. CopyReturn.Text = "Execute and copy return value"
  970. CopyReturn.TextColor3 = Color3.fromRGB(250, 251, 255)
  971. CopyReturn.TextSize = 16.000
  972.  
  973. DoNotStack.Name = "CopyReturn"
  974. DoNotStack.Parent = InfoButtonsScroll
  975. DoNotStack.BackgroundColor3 = colorSettings["MainButtons"]["BackgroundColor"]
  976. DoNotStack.BorderColor3 = colorSettings["MainButtons"]["BorderColor"]
  977. DoNotStack.Position = UDim2.new(0.0645, 0, 0, 150)
  978. DoNotStack.Size = UDim2.new(0, 294, 0, 26)
  979. DoNotStack.ZIndex = 15
  980. DoNotStack.Font = Enum.Font.SourceSans
  981. DoNotStack.Text = "Unstack remote when fired with new args"
  982. DoNotStack.TextColor3 = Color3.fromRGB(250, 251, 255)
  983. DoNotStack.TextSize = 16.000
  984.  
  985. FrameDivider.Name = "FrameDivider"
  986. FrameDivider.Parent = InfoFrame
  987. FrameDivider.BackgroundColor3 = Color3.fromRGB(53, 59, 72)
  988. FrameDivider.BorderColor3 = Color3.fromRGB(53, 59, 72)
  989. FrameDivider.Position = UDim2.new(0, 3, 0, 0)
  990. FrameDivider.Size = UDim2.new(0, 4, 0, 322)
  991. FrameDivider.ZIndex = 7
  992.  
  993. local InfoFrameOpen = false
  994. CloseInfoFrame.Name = "CloseInfoFrame"
  995. CloseInfoFrame.Parent = InfoFrame
  996. CloseInfoFrame.BackgroundColor3 = colorSettings["Main"]["HeaderColor"]
  997. CloseInfoFrame.BorderColor3 = colorSettings["Main"]["HeaderColor"]
  998. CloseInfoFrame.Position = UDim2.new(0, 333, 0, 2)
  999. CloseInfoFrame.Size = UDim2.new(0, 22, 0, 22)
  1000. CloseInfoFrame.ZIndex = 18
  1001. CloseInfoFrame.Font = Enum.Font.SourceSansLight
  1002. CloseInfoFrame.Text = "X"
  1003. CloseInfoFrame.TextColor3 = Color3.fromRGB(0, 0, 0)
  1004. CloseInfoFrame.TextSize = 20.000
  1005. CloseInfoFrame.MouseButton1Click:Connect(function()
  1006. InfoFrame.Visible = false
  1007. InfoFrameOpen = false
  1008. mainFrame.Size = UDim2.new(0, 207, 0, 35)
  1009. end)
  1010.  
  1011. OpenInfoFrame.Name = "OpenInfoFrame"
  1012. OpenInfoFrame.Parent = mainFrame
  1013. OpenInfoFrame.BackgroundColor3 = colorSettings["Main"]["HeaderColor"]
  1014. OpenInfoFrame.BorderColor3 = colorSettings["Main"]["HeaderColor"]
  1015. OpenInfoFrame.Position = UDim2.new(0, 185, 0, 2)
  1016. OpenInfoFrame.Size = UDim2.new(0, 22, 0, 22)
  1017. OpenInfoFrame.ZIndex = 18
  1018. OpenInfoFrame.Font = Enum.Font.SourceSans
  1019. OpenInfoFrame.Text = ">"
  1020. OpenInfoFrame.TextColor3 = Color3.fromRGB(0, 0, 0)
  1021. OpenInfoFrame.TextSize = 16.000
  1022. OpenInfoFrame.MouseButton1Click:Connect(function()
  1023. if not InfoFrame.Visible then
  1024. mainFrame.Size = UDim2.new(0, 565, 0, 35)
  1025. OpenInfoFrame.Text = "<"
  1026. elseif RemoteScrollFrame.Visible then
  1027. mainFrame.Size = UDim2.new(0, 207, 0, 35)
  1028. OpenInfoFrame.Text = ">"
  1029. end
  1030. InfoFrame.Visible = not InfoFrame.Visible
  1031. InfoFrameOpen = not InfoFrameOpen
  1032. end)
  1033.  
  1034. Minimize.Name = "Minimize"
  1035. Minimize.Parent = mainFrame
  1036. Minimize.BackgroundColor3 = colorSettings["Main"]["HeaderColor"]
  1037. Minimize.BorderColor3 = colorSettings["Main"]["HeaderColor"]
  1038. Minimize.Position = UDim2.new(0, 164, 0, 2)
  1039. Minimize.Size = UDim2.new(0, 22, 0, 22)
  1040. Minimize.ZIndex = 18
  1041. Minimize.Font = Enum.Font.SourceSans
  1042. Minimize.Text = "_"
  1043. Minimize.TextColor3 = Color3.fromRGB(0, 0, 0)
  1044. Minimize.TextSize = 16.000
  1045. Minimize.MouseButton1Click:Connect(function()
  1046. -- Close
  1047. if RemoteScrollFrame.Visible then
  1048. mainFrame.Size = UDim2.new(0, 207, 0, 35)
  1049. OpenInfoFrame.Text = "<"
  1050. InfoFrame.Visible = false
  1051. else
  1052. --Open
  1053. if InfoFrameOpen then
  1054. mainFrame.Size = UDim2.new(0, 565, 0, 35)
  1055. OpenInfoFrame.Text = "<"
  1056. InfoFrame.Visible = true
  1057. else
  1058. mainFrame.Size = UDim2.new(0, 207, 0, 35)
  1059. OpenInfoFrame.Text = ">"
  1060. InfoFrame.Visible = false
  1061. end
  1062. end
  1063. RemoteScrollFrame.Visible = not RemoteScrollFrame.Visible
  1064. end)
  1065.  
  1066. local function FindRemote(remote, args)
  1067. local currentId = (get_thread_context or syn.get_thread_identity)()
  1068. ;(set_thread_context or syn.set_thread_identity)(7)
  1069. local i
  1070. if table.find(unstacked, remote) then
  1071. local numOfRemotes = 0
  1072. for b, v in pairs(remotes) do
  1073. if v == remote then
  1074. numOfRemotes = numOfRemotes + 1
  1075. for i2, v2 in pairs(remoteArgs) do
  1076. if table.unpack(remoteArgs[b]) == table.unpack(args) then
  1077. i = b
  1078. end
  1079. end
  1080. end
  1081. end
  1082. else
  1083. i = table.find(remotes, remote)
  1084. end
  1085. ;(set_thread_context or syn.set_thread_identity)(currentId)
  1086. return i
  1087. end
  1088.  
  1089. -- creates a simple color and text change effect
  1090. local function ButtonEffect(textlabel, text)
  1091. if not text then
  1092. text = "Copied!"
  1093. end
  1094. local orgText = textlabel.Text
  1095. local orgColor = textlabel.TextColor3
  1096. textlabel.Text = text
  1097. textlabel.TextColor3 = Color3.fromRGB(76, 209, 55)
  1098. wait(0.8)
  1099. textlabel.Text = orgText
  1100. textlabel.TextColor3 = orgColor
  1101. end
  1102.  
  1103. -- important values for later
  1104. local lookingAt
  1105. local lookingAtArgs
  1106. local lookingAtButton
  1107.  
  1108. CopyCode.MouseButton1Click:Connect(function()
  1109. if not lookingAt then return end
  1110. -- copy the code's text to clipboard if the user is lookin at a remote
  1111. setclipboard(CodeComment.Text.. "\n\n"..Code.Text)
  1112. ButtonEffect(CopyCode)
  1113. end)
  1114.  
  1115. RunCode.MouseButton1Click:Connect(function()
  1116. -- find the index of the remote the user is looking at
  1117. if lookingAt then
  1118. if isA(lookingAt, "RemoteFunction") then
  1119. -- fire remote with its args
  1120. lookingAt:InvokeServer(unpack(lookingAtArgs))
  1121. elseif isA(lookingAt, "RemoteEvent") then
  1122. lookingAt:FireServer(unpack(lookingAtArgs))
  1123. end
  1124. end
  1125. end)
  1126. CopyScriptPath.MouseButton1Click:Connect(function()
  1127. -- get remote index
  1128. local remote = FindRemote(lookingAt, lookingAtArgs)
  1129. if remote and lookingAt then
  1130. -- copy the script name at that index
  1131. setclipboard(GetFullPathOfAnInstance(remoteScripts[remote]))
  1132. ButtonEffect(CopyScriptPath)
  1133. end
  1134. end)
  1135. -- bool to make decompilations queue instead of running simultaneously
  1136. local decompiling
  1137. CopyDecompiled.MouseButton1Click:Connect(function()
  1138. local remote = FindRemote(lookingAt, lookingAtArgs)
  1139. if not isSynapse() then
  1140. CopyDecompiled.Text = "This exploit doesn't support decompilation!"
  1141. CopyDecompiled.TextColor3 = Color3.fromRGB(232, 65, 24)
  1142. wait(1.6)
  1143. CopyDecompiled.Text = "Copy decompiled script"
  1144. CopyDecompiled.TextColor3 = Color3.fromRGB(250, 251, 255)
  1145. return
  1146. end
  1147. if not decompiling and remote and lookingAt then
  1148. decompiling = true
  1149.  
  1150. -- button effect
  1151. spawn(function()
  1152. while true do
  1153. if decompiling == false then return end
  1154. CopyDecompiled.Text = "Decompiling."
  1155. wait(0.8)
  1156. if decompiling == false then return end
  1157. CopyDecompiled.Text = "Decompiling.."
  1158. wait(0.8)
  1159. if decompiling == false then return end
  1160. CopyDecompiled.Text = "Decompiling..."
  1161. wait(0.8)
  1162. end
  1163. end)
  1164.  
  1165. -- Decompile the remotescript of the remote
  1166. local success = { pcall(function()setclipboard(decompile(remoteScripts[remote]))end) }
  1167. decompiling = false
  1168. if success[1] then
  1169. CopyDecompiled.Text = "Copied decompilation!"
  1170. CopyDecompiled.TextColor3 = Color3.fromRGB(76, 209, 55)
  1171. else
  1172. warn(success[2], success[3])
  1173. CopyDecompiled.Text = "Decompilation error! Check F9 to see the error."
  1174. CopyDecompiled.TextColor3 = Color3.fromRGB(232, 65, 24)
  1175. end
  1176. wait(1.6)
  1177. CopyDecompiled.Text = "Copy decompiled script"
  1178. CopyDecompiled.TextColor3 = Color3.fromRGB(250, 251, 255)
  1179. end
  1180. end)
  1181.  
  1182. BlockRemote.MouseButton1Click:Connect(function()
  1183. -- find the remote the user is looking at and check whether it's blocked or not
  1184. local bRemote = table.find(BlockList, lookingAt)
  1185.  
  1186. if lookingAt and not bRemote then
  1187. -- remote isn't blocked, add it to the blocklist
  1188. table.insert(BlockList, lookingAt)
  1189. BlockRemote.Text = "Unblock remote"
  1190. BlockRemote.TextColor3 = Color3.fromRGB(251, 197, 49)
  1191. local remote = table.find(remotes, lookingAt)
  1192. if remote then
  1193. remoteButtons[remote].Parent.RemoteName.TextColor3 = Color3.fromRGB(225, 177, 44)
  1194. end
  1195. elseif lookingAt and bRemote then
  1196. -- remote is
  1197. table.remove(BlockList, bRemote)
  1198. BlockRemote.Text = "Block remote from firing"
  1199. BlockRemote.TextColor3 = Color3.fromRGB(250, 251, 255)
  1200. local remote = table.find(remotes, lookingAt)
  1201. if remote then
  1202. remoteButtons[remote].Parent.RemoteName.TextColor3 = Color3.fromRGB(245, 246, 250)
  1203. end
  1204. end
  1205. end)
  1206.  
  1207. IgnoreRemote.MouseButton1Click:Connect(function()
  1208. -- check if remote is blocked
  1209. local iRemote = table.find(IgnoreList, lookingAt)
  1210. if lookingAt and not iRemote then
  1211. table.insert(IgnoreList, lookingAt)
  1212. IgnoreRemote.Text = "Stop ignoring remote"
  1213. IgnoreRemote.TextColor3 = Color3.fromRGB(127, 143, 166)
  1214. local remote = table.find(remotes, lookingAt)
  1215. local unstacked = table.find(unstacked, lookingAt)
  1216. if remote then
  1217. remoteButtons[remote].Parent.RemoteName.TextColor3 = Color3.fromRGB(127, 143, 166)
  1218. end
  1219. elseif lookingAt and iRemote then
  1220. table.remove(IgnoreList, iRemote)
  1221. IgnoreRemote.Text = "Ignore remote"
  1222. IgnoreRemote.TextColor3 = Color3.fromRGB(250, 251, 255)
  1223. local remote = table.find(remotes, lookingAt)
  1224. if remote then
  1225. remoteButtons[remote].Parent.RemoteName.TextColor3 = Color3.fromRGB(245, 246, 250)
  1226. end
  1227. end
  1228. end)
  1229.  
  1230. WhileLoop.MouseButton1Click:Connect(function()
  1231. if not lookingAt then return end
  1232. setclipboard("while wait() do\n "..Code.Text.."\nend")
  1233. ButtonEffect(WhileLoop)
  1234. end)
  1235.  
  1236. Clear.MouseButton1Click:Connect(function()
  1237. for i, v in pairs(RemoteScrollFrame:GetChildren()) do
  1238. if i > 1 then
  1239. v:Destroy()
  1240. end
  1241. end
  1242. for i, v in pairs(connections) do
  1243. v:Disconnect()
  1244. end
  1245. -- reset everything
  1246. buttonOffset = -25
  1247. scrollSizeOffset = 0
  1248. remotes = {}
  1249. remoteArgs = {}
  1250. remoteButtons = {}
  1251. remoteScripts = {}
  1252. IgnoreList = {}
  1253. BlockList = {}
  1254. IgnoreList = {}
  1255. RemoteScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 287)
  1256. unstacked = {}
  1257. connections = {}
  1258.  
  1259. ButtonEffect(Clear, "Cleared!")
  1260. end)
  1261.  
  1262. DoNotStack.MouseButton1Click:Connect(function()
  1263. if lookingAt then
  1264. local isUnstacked = table.find(unstacked, lookingAt)
  1265. if isUnstacked then
  1266. table.remove(unstacked, isUnstacked)
  1267. DoNotStack.Text = "Unstack remote when fired with new args"
  1268. DoNotStack.TextColor3 = Color3.fromRGB(245, 246, 250)
  1269. else
  1270. table.insert(unstacked, lookingAt)
  1271. DoNotStack.Text = "Stack remote"
  1272. DoNotStack.TextColor3 = Color3.fromRGB(251, 197, 49)
  1273. end
  1274. end
  1275. end)
  1276.  
  1277. local function len(t)
  1278. local n = 0
  1279.  
  1280. for _ in pairs(t) do
  1281. n = n + 1
  1282. end
  1283. return n
  1284. end
  1285.  
  1286. -- converts tables to a string, good for formatting arguments
  1287. local function convertTableToString(args)
  1288. local string = ""
  1289. local index = 1
  1290. for i,v in pairs(args) do
  1291. if type(i) == "string" then
  1292. string = string .. '["' .. tostring(i) .. '"] = '
  1293. elseif type(i) == "userdata" and typeof(i) ~= "Instance" then
  1294. string = string .. "[" .. typeof(i) .. ".new(" .. tostring(i) .. ")] = "
  1295. elseif type(i) == "userdata" then
  1296. string = string .. "[" .. GetFullPathOfAnInstance(i) .. "] = "
  1297. end
  1298. if v == nil then
  1299. string = string .. "nil"
  1300. elseif typeof(v) == "Instance" then
  1301. string = string .. GetFullPathOfAnInstance(v)
  1302. elseif type(v) == "number" or type(v) == "function" then
  1303. string = string .. tostring(v)
  1304. elseif type(v) == "userdata" then
  1305. string = string .. typeof(v)..".new("..tostring(v)..")"
  1306. elseif type(v) == "string" then
  1307. string = string .. [["]]..v..[["]]
  1308. elseif type(v) == "table" then
  1309. string = string .. "{"
  1310. string = string .. convertTableToString(v)
  1311. string = string .. "}"
  1312. elseif type(v) == 'boolean' then
  1313. if v then
  1314. string = string..'true'
  1315. else
  1316. string = string..'false'
  1317. end
  1318. end
  1319. if len(args) > 1 and index < len(args) then
  1320. string = string .. ","
  1321. end
  1322. index = index + 1
  1323. end
  1324. return string
  1325. end
  1326. CopyReturn.MouseButton1Click:Connect(function()
  1327. local remote = FindRemote(lookingAt, lookingAtArgs)
  1328. if lookingAt and remote then
  1329. if isA(lookingAt, "RemoteFunction") then
  1330. -- execute the remote and copy the return value, pretty easy stuff
  1331. local result = remotes[remote]:InvokeServer(unpack(remoteArgs[remote]))
  1332. setclipboard(convertTableToString(table.pack(result)))
  1333. ButtonEffect(CopyReturn)
  1334. end
  1335. end
  1336. end)
  1337.  
  1338. -- detect when a child is added to the remotescrollframe and add a mousebutton1click signal (doing this in the addToList function causes problems since it's in a roblox thread)
  1339. RemoteScrollFrame.ChildAdded:Connect(function(child)
  1340. -- get all essential info that will be useful later when the user presses the button
  1341. local remote = remotes[#remotes]
  1342. local args = remoteArgs[#remotes]
  1343. local event = true
  1344. local fireFunction = ":FireServer("
  1345. if isA(remote, "RemoteFunction") then
  1346. event = false
  1347. fireFunction = ":InvokeServer("
  1348. end
  1349. local connection = child.MouseButton1Click:Connect(function()
  1350.  
  1351. InfoHeaderText.Text = "Info: "..remote.Name
  1352. if event then
  1353. InfoButtonsScroll.CanvasSize = UDim2.new(0, 0, 1, 0)
  1354. else
  1355. -- make space for the execute and copy return button since it's a remote function
  1356. InfoButtonsScroll.CanvasSize = UDim2.new(0, 0, 1.1, 0)
  1357. end
  1358. mainFrame.Size = UDim2.new(0, 565, 0, 35)
  1359. OpenInfoFrame.Text = ">"
  1360. InfoFrame.Visible = true
  1361. Code.Text = GetFullPathOfAnInstance(remote)..fireFunction..convertTableToString(args)..")"
  1362. -- gets text size and updates code box's size accordingly
  1363. local textsize = TextService:GetTextSize(Code.Text, Code.TextSize, Code.Font, Vector2.new(math.huge, math.huge))
  1364. CodeFrame.CanvasSize = UDim2.new(0, textsize.X + 11, 2, 0)
  1365. lookingAt = remote
  1366. lookingAtArgs = args
  1367. lookingAtButton = child.Number
  1368.  
  1369. -- is the remote ignored/blocked? in that case, change those buttons
  1370. local blocked = table.find(BlockList, remote)
  1371. if blocked then
  1372. BlockRemote.Text = "Unblock remote"
  1373. BlockRemote.TextColor3 = Color3.fromRGB(251, 197, 49)
  1374. else
  1375. BlockRemote.Text = "Block remote from firing"
  1376. BlockRemote.TextColor3 = Color3.fromRGB(250, 251, 255)
  1377. end
  1378. local iRemote = table.find(IgnoreList, lookingAt)
  1379. if iRemote then
  1380. IgnoreRemote.Text = "Stop ignoring remote"
  1381. IgnoreRemote.TextColor3 = Color3.fromRGB(127, 143, 166)
  1382. else
  1383. IgnoreRemote.Text = "Ignore remote"
  1384. IgnoreRemote.TextColor3 = Color3.fromRGB(250, 251, 255)
  1385. end
  1386. InfoFrameOpen = true
  1387. end)
  1388. -- insert them into a connections table in order to be able to disconnect all of them
  1389. table.insert(connections, connection)
  1390. end)
  1391.  
  1392.  
  1393. -- Main function: add a remote to the list (event: is it a RemoteEvent?, remote: the remote fired, ...: the args)
  1394. function addToList(event, remote, ...)
  1395. -- set thread context since this is running in a game thread
  1396. local currentId = (get_thread_context or syn.get_thread_identity)()
  1397. ;(set_thread_context or syn.set_thread_identity)(7)
  1398. if not remote then return end
  1399.  
  1400. -- important variables
  1401. local name = remote.Name
  1402. local args = {...}
  1403.  
  1404. -- call the FindRemote function to find this specific remote with these args
  1405. local i = FindRemote(remote, args)
  1406.  
  1407. -- if the remote hasn't been found
  1408. if not i then
  1409. -- add remote to remotes table (important)
  1410. table.insert(remotes, remote)
  1411.  
  1412. local rButton = clone(RemoteButton)
  1413. -- add all useful info about the remote to tables
  1414. remoteButtons[#remotes] = rButton.Number
  1415. remoteArgs[#remotes] = args
  1416. remoteScripts[#remotes] = (isSynapse() and getcallingscript() or rawget(getfenv(0), "script"))
  1417.  
  1418. -- clone a little baby of the remotebutton
  1419. rButton.Parent = RemoteScrollFrame
  1420. rButton.Visible = true
  1421. local numberTextsize = getTextSize(TextService, rButton.Number.Text, rButton.Number.TextSize, rButton.Number.Font, Vector2.new(math.huge, math.huge))
  1422. rButton.RemoteName.Position = UDim2.new(0,numberTextsize.X + 10, 0, 0)
  1423. if name then
  1424. rButton.RemoteName.Text = name
  1425. end
  1426. if not event then
  1427. rButton.RemoteIcon.Image = "http://www.roblox.com/asset/?id=413369623"
  1428. end
  1429. buttonOffset = buttonOffset + 35
  1430. rButton.Position = UDim2.new(0.0912411734, 0, 0, buttonOffset)
  1431. if #remotes > 8 then
  1432. scrollSizeOffset = scrollSizeOffset + 35
  1433. RemoteScrollFrame.CanvasSize = UDim2.new(0, 0, 0, scrollSizeOffset)
  1434. end
  1435. else
  1436. -- the remote has been found, increment the remote's button's number text
  1437. remoteButtons[i].Text = tostring(tonumber(remoteButtons[i].Text) + 1)
  1438. -- get the size in pixels of the number text and change the name's position accordingly
  1439. local numberTextsize = getTextSize(TextService, remoteButtons[i].Text, remoteButtons[i].TextSize, remoteButtons[i].Font, Vector2.new(math.huge, math.huge))
  1440. remoteButtons[i].Parent.RemoteName.Position = UDim2.new(0,numberTextsize.X + 10, 0, 0)
  1441. remoteButtons[i].Parent.RemoteName.Size = UDim2.new(0, 149 -numberTextsize.X, 0, 26)
  1442.  
  1443. -- update the arguments
  1444. remoteArgs[i] = args
  1445.  
  1446. -- update the codebox if the player is looking at it
  1447. if lookingAt and lookingAt == remote and lookingAtButton == remoteButtons[i] and InfoFrame.Visible then
  1448. local fireFunction = ":FireServer("
  1449. if isA(remote, "RemoteFunction") then
  1450. fireFunction = ":InvokeServer("
  1451. end
  1452. Code.Text = GetFullPathOfAnInstance(remote)..fireFunction..convertTableToString(remoteArgs[i])..")"
  1453. local textsize = getTextSize(TextService, Code.Text, Code.TextSize, Code.Font, Vector2.new(math.huge, math.huge))
  1454. CodeFrame.CanvasSize = UDim2.new(0, textsize.X + 11, 2, 0)
  1455. end
  1456. end
  1457. ;(set_thread_context or syn.set_thread_identity)(currentId)
  1458. end
  1459.  
  1460. local OldEvent
  1461. OldEvent = hookfunction(Instance.new("RemoteEvent").FireServer, function(Self, ...)
  1462. if not checkcaller() and table.find(BlockList, Self) then
  1463. return
  1464. elseif table.find(IgnoreList, Self) then
  1465. --if ignored then don't call the addToList
  1466. return OldEvent(Self, ...)
  1467. end
  1468. addToList(true, Self, ...)
  1469. end)
  1470.  
  1471. local OldFunction
  1472. OldFunction = hookfunction(Instance.new("RemoteFunction").InvokeServer, function(Self, ...)
  1473. if not checkcaller() and table.find(BlockList, Self) then
  1474. return
  1475. elseif table.find(IgnoreList, Self) then
  1476. --if ignored then don't call the addToList
  1477. return OldFunction(Self, ...)
  1478. end
  1479. addToList(false, Self, ...)
  1480. end)
  1481.  
  1482. -- game namecall hook (makes the script detect the remotes, basically)
  1483. local OldNamecall
  1484. OldNamecall = hookmetamethod(game,"__namecall",function(...)
  1485. local args = {...}
  1486. local Self = args[1]
  1487. local method = (getnamecallmethod or get_namecall_method)()
  1488. if method == "FireServer" and isA(Self, "RemoteEvent") then
  1489. -- if the remote is blocked and the remote is being fired by the game then block it
  1490. if not checkcaller() and table.find(BlockList, Self) then
  1491. return
  1492. elseif table.find(IgnoreList, Self) then
  1493. --if ignored then don't call the addToList
  1494. return OldNamecall(...)
  1495. end
  1496. addToList(true, ...)
  1497. elseif method == "InvokeServer" and isA(Self, 'RemoteFunction') then
  1498. if not checkcaller() and table.find(BlockList, Self) then
  1499. return
  1500. elseif table.find(IgnoreList, Self) then
  1501. return OldNamecall(...)
  1502. end
  1503. addToList(false, ...)
  1504. end
  1505.  
  1506. return OldNamecall(...)
  1507. end)
  1508. end)
  1509.  
Add Comment
Please, Sign In to add comment