Advertisement
iiRyptix

RLM

May 17th, 2025 (edited)
797
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 39.39 KB | None | 0 0
  1. if not game:IsLoaded() then
  2.     game.Loaded:Wait()
  3. end
  4. wait(1)
  5.  
  6. pcall(function()
  7.     queue_on_teleport("loadstring(game:HttpGet('https://pastebin.com/raw/2cfVkq93'))()")
  8. end)
  9.  
  10. local library = loadstring(game:HttpGet('https://raw.githubusercontent.com/bloodball/-back-ups-for-libs/main/wall%20v3'))()
  11. local mainWindow = library:CreateWindow("RypScripts")
  12. local illuWindow = library:CreateWindow("Illu Checker")
  13. local lagger = library:CreateWindow("Auto contract")
  14. local serverloot = library:CreateWindow("Server Loot")
  15.  
  16. local laggerfolder = lagger:CreateFolder("Main")
  17. local illuFolder = illuWindow:CreateFolder("Main")
  18. local autopickupFolder = mainWindow:CreateFolder("Autopickup")
  19. local forgeFolder = mainWindow:CreateFolder("Forge")
  20. local exploitsFolder = mainWindow:CreateFolder("Exploits")
  21. local collectorsFolder = mainWindow:CreateFolder("Collectors")
  22. local miscFolder = mainWindow:CreateFolder("Misc")
  23. local serverlootfolder = serverloot:CreateFolder("Main")
  24.  
  25. local collector_detection_enabled = false
  26. local tp_bypass_enabled = false
  27. local serverlagger_enabled = false
  28. local boundbooks_enabled = false
  29. local purit_enabled = false
  30. local autopickup_enabled = false
  31. local fullbright_enabled = false
  32. local noclip_enabled = false
  33. local fly_enabled = false
  34. local nofog_enabled = false
  35. local fogHeartbeatConnection = nil
  36.  
  37.  
  38.  
  39. local function serverlootv2()
  40. local Players = game:GetService("Players")
  41. local player = Players.LocalPlayer
  42. local character = player.Character or player.CharacterAdded:Wait()
  43. local hrp = character:WaitForChild("HumanoidRootPart")
  44.  
  45. local trinketsFolder = workspace:WaitForChild("Trinkets")
  46. local TELEPORT_RANGE = 25
  47.  
  48. -- Your scan points
  49. local scanPoints = {
  50.        Vector3.new(3993, 439, -1017),
  51.     Vector3.new(4026, 439, -1015),
  52.     Vector3.new(3934, 440, -1215),
  53.     Vector3.new(3814, 441, -1184),
  54.     Vector3.new(3882, 627, -1343),
  55.     Vector3.new(3890, 625, -1386),
  56.     Vector3.new(2256, 61, 893),
  57.     Vector3.new(2256, 61, 856),
  58.     Vector3.new(2431, 292, 922),
  59.     Vector3.new(4864, 474, 1661),
  60.     Vector3.new(4882, 475, 1636),
  61.     Vector3.new(4832, 550, 752),
  62.     Vector3.new(4884, 549, 779),
  63.     Vector3.new(4924, 581, 722),
  64.     Vector3.new(5812, 416, 642),
  65.     Vector3.new(5742, 322, 637),
  66.     Vector3.new(5760, 322, 610),
  67.     Vector3.new(-1136, 865, 2590),
  68.     Vector3.new(-1122, 865, 2610),
  69.     Vector3.new(-1119, 865, 2667),
  70.     Vector3.new(-1135, 869, 2685),
  71.     Vector3.new(-1193, 865, 2681),
  72.     Vector3.new(-1212, 869, 2668),
  73.     Vector3.new(-1209, 865, 2610),
  74.     Vector3.new(-1194, 870, 2594),
  75.     Vector3.new(-2696, 608, 108),
  76.     Vector3.new(-2656, 608, 120),
  77.     Vector3.new(554, 179, -1178),
  78.     Vector3.new(162, 56, -1928),
  79.     Vector3.new(164, 56, -1957),
  80.     Vector3.new(1182, 175, -3695),
  81.     Vector3.new(1223, 168, -3744),
  82.     Vector3.new(1269, 168, -3700),
  83.     Vector3.new(1106, 192, -3503),
  84.     Vector3.new(1127, 192, -3479),
  85.     Vector3.new(1109, 192, -3449),
  86.     Vector3.new(1091, 192, -3476),
  87.     Vector3.new(996, -456, -4327),
  88.     Vector3.new(1323, 422, -4111),
  89.     Vector3.new(911, 665, -4068),
  90.     Vector3.new(942, 665, -4070),
  91.     Vector3.new(692, 111, -4625),
  92.     Vector3.new(623, 70, -4533),
  93.     Vector3.new(1138, -259, -4572),
  94.     Vector3.new(1377, -422, -5293),
  95.     Vector3.new(1111, -358, -5035),
  96.     Vector3.new(1087, -515, -5559),
  97.     Vector3.new(1157, -515, -5560),
  98.     Vector3.new(966, -916, -7929),
  99.     Vector3.new(979, -920, -7892),
  100.     Vector3.new(567, -928, -8113),
  101.     Vector3.new(214, -941, -7475),
  102.     Vector3.new(566, -928, -7611),
  103.     Vector3.new(1203, -691, -7841),
  104.     Vector3.new(-379, 270, 1034),
  105.     Vector3.new(702, 443, 2383),
  106.     Vector3.new(782, 443, 2385),
  107.     Vector3.new(776, 388, 2382),
  108.     Vector3.new(1546, 438, 3022),
  109.     Vector3.new(1500, 439, 3004),
  110.     Vector3.new(6458, 1104, -2654),
  111.     Vector3.new(7128, 962, -2265),
  112.     Vector3.new(6615, 1461, 467),
  113.     Vector3.new(6581, 1464, 501),
  114.     Vector3.new(6553, 1463, 468),
  115.     Vector3.new(6572, 1386, 500),
  116.     Vector3.new(6551, 1388, 478),
  117.     Vector3.new(6359, 1478, 56),
  118.     Vector3.new(6310, 1481, 58),
  119.     Vector3.new(6363, 1414, 127),
  120.     Vector3.new(6314, 1395, 177),
  121.     Vector3.new(6357, 1478, -258),
  122.     Vector3.new(6338, 1402, -246),
  123.     Vector3.new(6320, 1405, -195),
  124.     Vector3.new(6517, 1404, -247),
  125.     Vector3.new(6533, 1378, -253),
  126.     Vector3.new(7096, 1287, -316),
  127.     Vector3.new(7067, 1306, -335),
  128.     Vector3.new(7114, 1286, -333),
  129.     Vector3.new(7077, 1287, -295),
  130.     Vector3.new(9382, 1439, 15),
  131.     Vector3.new( -631, 119, 40730),
  132.     Vector3.new(-1721, 526, -372),
  133.     Vector3.new(-1687, 526, -345),
  134.     Vector3.new(-1705, 526, -332),
  135.     Vector3.new(-1650, 526, -338),
  136.     Vector3.new(-1683, 526, -370),
  137.      Vector3.new(-1045, 84, -299),
  138.      Vector3.new(-1041, 84, -324),
  139.      Vector3.new(-1072, 84, -329),
  140.      Vector3.new(-1109, 84, -343),
  141.      Vector3.new(701, 466, 1126),
  142.      Vector3.new(-66, 3639, 389),
  143.      Vector3.new(1983, 357, -778),
  144.      Vector3.new(1943, 240, -799),
  145.           Vector3.new(371, 1320, -4109),
  146.     Vector3.new(458, 1410, -4595),
  147.     Vector3.new(458, 1410, -4595),
  148.     Vector3.new(456, 1410, -4613),
  149.     Vector3.new(556, 1962, -4485),
  150.     Vector3.new(579, 1669, -4468),
  151.     Vector3.new(-65231, 240, -8574),
  152. }
  153.  
  154. local handledTrinkets = {}
  155. local totalTrinketsCollected = 0
  156.  
  157. local function isValidTrinket(trinket)
  158.     return trinket:IsA("BasePart") and trinket.Parent == trinketsFolder and not handledTrinkets[trinket]
  159. end
  160.  
  161. local function highlightTrinket(trinket)
  162.     if not trinket:FindFirstChildOfClass("Highlight") then
  163.         local h = Instance.new("Highlight")
  164.         h.FillColor = Color3.fromRGB(255, 255, 0)
  165.         h.OutlineColor = Color3.fromRGB(255, 255, 255)
  166.         h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
  167.         h.Parent = trinket
  168.     end
  169. end
  170.  
  171. local function getActiveTrinkets()
  172.     local active = {}
  173.     for _, t in ipairs(trinketsFolder:GetChildren()) do
  174.         if isValidTrinket(t) then
  175.             table.insert(active, t)
  176.         end
  177.     end
  178.     return active
  179. end
  180.  
  181. local function findBestTeleportPoint()
  182.     local bestPoint = nil
  183.     local bestTrinkets = {}
  184.  
  185.     for _, point in ipairs(scanPoints) do
  186.         local nearby = {}
  187.         for _, trinket in ipairs(getActiveTrinkets()) do
  188.             if (trinket.Position - point).Magnitude <= TELEPORT_RANGE then
  189.                 table.insert(nearby, trinket)
  190.             end
  191.         end
  192.  
  193.         if #nearby > #bestTrinkets then
  194.             bestPoint = point
  195.             bestTrinkets = nearby
  196.         end
  197.     end
  198.  
  199.     return bestPoint, bestTrinkets
  200. end
  201.  
  202. task.spawn(function()
  203.     while true do
  204.         local point, trinkets = findBestTeleportPoint()
  205.  
  206.         if point and #trinkets > 0 then
  207.             print(string.format("[TP] To: %s | Trinkets nearby: %d", tostring(point), #trinkets))
  208.             for _, t in ipairs(trinkets) do highlightTrinket(t) end
  209.  
  210.             hrp.CFrame = CFrame.new(point)
  211.  
  212.             -- Give 0.5s grace period to let autopickup do its job
  213.             task.wait(0.5)
  214.  
  215.             -- Re-check which ones still exist
  216.             local remaining = {}
  217.             for _, t in ipairs(trinkets) do
  218.                 if isValidTrinket(t) then
  219.                     table.insert(remaining, t)
  220.                 else
  221.                     handledTrinkets[t] = true
  222.                     totalTrinketsCollected += 1
  223.                 end
  224.             end
  225.  
  226.             -- Teleport directly to remaining ones
  227.             for _, t in ipairs(remaining) do
  228.                 if isValidTrinket(t) then
  229.                     print("[TP → Trinket] Directly teleporting to missed trinket at:", t.Position)
  230.                     hrp.CFrame = t.CFrame + Vector3.new(0, 3, 0) -- offset above it a little
  231.                     highlightTrinket(t)
  232.  
  233.                     -- Wait for it to be picked up
  234.                     local timeout = 3
  235.                     while isValidTrinket(t) and timeout > 0 do
  236.                         task.wait(0.2)
  237.                         timeout -= 0.2
  238.                     end
  239.  
  240.                     if not isValidTrinket(t) then
  241.                         handledTrinkets[t] = true
  242.                         totalTrinketsCollected += 1
  243.                     end
  244.                 end
  245.             end
  246.  
  247.         else
  248.             print("[DONE] No more trinkets to collect.")
  249.             break
  250.         end
  251.  
  252.         task.wait(0.1)
  253.     end
  254.  
  255.     print(string.format("[SUMMARY] Total trinkets collected: %d", totalTrinketsCollected))
  256. end)
  257.  
  258. end
  259.  
  260.  
  261. local function serverlootv1()
  262. local Players = game:GetService("Players")
  263. local player = Players.LocalPlayer
  264. local character = player.Character or player.CharacterAdded:Wait()
  265. local hrp = character:WaitForChild("HumanoidRootPart")
  266.  
  267. local trinketsFolder = workspace:WaitForChild("Trinkets")
  268. local TELEPORT_RANGE = 25
  269.  
  270. local locations = {
  271.     Vector3.new(3993, 439, -1017),
  272.     Vector3.new(4026, 439, -1015),
  273.     Vector3.new(3934, 440, -1215),
  274.     Vector3.new(3814, 441, -1184),
  275.     Vector3.new(3882, 627, -1343),
  276.     Vector3.new(3890, 625, -1386),
  277.     Vector3.new(2256, 61, 893),
  278.     Vector3.new(2256, 61, 856),
  279.     Vector3.new(2431, 292, 922),
  280.     Vector3.new(4864, 474, 1661),
  281.     Vector3.new(4882, 475, 1636),
  282.     Vector3.new(4832, 550, 752),
  283.     Vector3.new(4884, 549, 779),
  284.     Vector3.new(4924, 581, 722),
  285.     Vector3.new(5812, 416, 642),
  286.     Vector3.new(5742, 322, 637),
  287.     Vector3.new(5760, 322, 610),
  288.     Vector3.new(-1136, 865, 2590),
  289.     Vector3.new(-1122, 865, 2610),
  290.     Vector3.new(-1119, 865, 2667),
  291.     Vector3.new(-1135, 869, 2685),
  292.     Vector3.new(-1193, 865, 2681),
  293.     Vector3.new(-1212, 869, 2668),
  294.     Vector3.new(-1209, 865, 2610),
  295.     Vector3.new(-1194, 870, 2594),
  296.     Vector3.new(-2696, 608, 108),
  297.     Vector3.new(-2656, 608, 120),
  298.     Vector3.new(554, 179, -1178),
  299.     Vector3.new(162, 56, -1928),
  300.     Vector3.new(164, 56, -1957),
  301.     Vector3.new(1182, 175, -3695),
  302.     Vector3.new(1223, 168, -3744),
  303.     Vector3.new(1269, 168, -3700),
  304.     Vector3.new(1106, 192, -3503),
  305.     Vector3.new(1127, 192, -3479),
  306.     Vector3.new(1109, 192, -3449),
  307.     Vector3.new(1091, 192, -3476),
  308.     Vector3.new(996, -456, -4327),
  309.     Vector3.new(1323, 422, -4111),
  310.     Vector3.new(911, 665, -4068),
  311.     Vector3.new(942, 665, -4070),
  312.     Vector3.new(692, 111, -4625),
  313.     Vector3.new(623, 70, -4533),
  314.     Vector3.new(1138, -259, -4572),
  315.     Vector3.new(1377, -422, -5293),
  316.     Vector3.new(1111, -358, -5035),
  317.     Vector3.new(1087, -515, -5559),
  318.     Vector3.new(1157, -515, -5560),
  319.     Vector3.new(966, -916, -7929),
  320.     Vector3.new(979, -920, -7892),
  321.     Vector3.new(567, -928, -8113),
  322.     Vector3.new(214, -941, -7475),
  323.     Vector3.new(566, -928, -7611),
  324.     Vector3.new(1203, -691, -7841),
  325.     Vector3.new(-379, 270, 1034),
  326.     Vector3.new(702, 443, 2383),
  327.     Vector3.new(782, 443, 2385),
  328.     Vector3.new(776, 388, 2382),
  329.     Vector3.new(1546, 438, 3022),
  330.     Vector3.new(1500, 439, 3004),
  331.     Vector3.new(6458, 1104, -2654),
  332.     Vector3.new(7128, 962, -2265),
  333.     Vector3.new(6615, 1461, 467),
  334.     Vector3.new(6581, 1464, 501),
  335.     Vector3.new(6553, 1463, 468),
  336.     Vector3.new(6572, 1386, 500),
  337.     Vector3.new(6551, 1388, 478),
  338.     Vector3.new(6359, 1478, 56),
  339.     Vector3.new(6310, 1481, 58),
  340.     Vector3.new(6363, 1414, 127),
  341.     Vector3.new(6314, 1395, 177),
  342.     Vector3.new(6357, 1478, -258),
  343.     Vector3.new(6338, 1402, -246),
  344.     Vector3.new(6320, 1405, -195),
  345.     Vector3.new(6517, 1404, -247),
  346.     Vector3.new(6533, 1378, -253),
  347.     Vector3.new(7096, 1287, -316),
  348.     Vector3.new(7067, 1306, -335),
  349.     Vector3.new(7114, 1286, -333),
  350.     Vector3.new(7077, 1287, -295),
  351.     Vector3.new(9382, 1439, 15),
  352.     Vector3.new( -631, 119, 40730),
  353.     Vector3.new(-1721, 526, -372),
  354.     Vector3.new(-1687, 526, -345),
  355.     Vector3.new(-1705, 526, -332),
  356.     Vector3.new(-1650, 526, -338),
  357.     Vector3.new(-1683, 526, -370),
  358.      Vector3.new(-1045, 84, -299),
  359.      Vector3.new(-1041, 84, -324),
  360.      Vector3.new(-1072, 84, -329),
  361.      Vector3.new(-1109, 84, -343),
  362.      Vector3.new(701, 466, 1126),
  363.      Vector3.new(-66, 3639, 389),
  364.      Vector3.new(1983, 357, -778),
  365.      Vector3.new(1943, 240, -799),
  366.           Vector3.new(371, 1320, -4109),
  367.     Vector3.new(458, 1410, -4595),
  368.     Vector3.new(458, 1410, -4595),
  369.     Vector3.new(456, 1410, -4613),
  370.     Vector3.new(556, 1962, -4485),
  371.     Vector3.new(579, 1669, -4468),
  372.     Vector3.new(-65231, 240, -8574),
  373.  
  374. }
  375.  
  376. local function highlightTrinket(trinket)
  377.     if not trinket:FindFirstChildOfClass("Highlight") then
  378.         local highlight = Instance.new("Highlight")
  379.         highlight.FillColor = Color3.fromRGB(255, 255, 0) -- Yellow
  380.         highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
  381.         highlight.Parent = trinket
  382.     end
  383. end
  384.  
  385. local function countAndHighlightTrinketsNear(position)
  386.     local count = 0
  387.     for _, trinket in ipairs(trinketsFolder:GetChildren()) do
  388.         if (trinket.Position - position).Magnitude <= TELEPORT_RANGE then
  389.             count += 1
  390.             highlightTrinket(trinket)
  391.         end
  392.     end
  393.     return count
  394. end
  395.  
  396. task.spawn(function()
  397.     for _, loc in ipairs(locations) do
  398.         local count = countAndHighlightTrinketsNear(loc)
  399.         if count > 0 then
  400.             hrp.CFrame = CFrame.new(loc)
  401.             print("[TP] Teleported to:", loc, "| Trinkets nearby:", count)
  402.  
  403.             -- Wait until all trinkets are gone
  404.             repeat
  405.                 task.wait(0.2)
  406.             until countAndHighlightTrinketsNear(loc) == 0
  407.  
  408.             print("[CLEAR] All trinkets collected at:", loc)
  409.         else
  410.             print("[SKIP] No trinkets near:", loc)
  411.         end
  412.         task.wait(0.1)
  413.     end
  414. end)
  415.  
  416.  
  417. end
  418.  
  419.  
  420. local function teleport_to_cframe(cframe)
  421.     local root = workspace.Live[game.Players.LocalPlayer.Name]:FindFirstChild("HumanoidRootPart")
  422.     if root then
  423.         root.CFrame = cframe + Vector3.new(0, 5, 0)
  424.     end
  425. end
  426.  
  427. local function getRandomCoordinate(min, max)
  428.     return math.random(min, max)
  429. end
  430.  
  431. local function getFullPath(instance)
  432.     local path = instance.Name
  433.     while instance.Parent do
  434.         instance = instance.Parent
  435.         path = instance.Name .. "." .. path
  436.     end
  437.     return path
  438. end
  439.  
  440. local function fullBright(toggle)
  441.     fullbright_enabled = toggle
  442.  
  443.     if toggle then
  444.         local Lighting = game:GetService("Lighting")
  445.         local oldAmbient = Lighting.Ambient
  446.         local oldBrightness = Lighting.Brightness
  447.  
  448.         Lighting.Ambient = Color3.fromRGB(255, 255, 255)
  449.         Lighting.Brightness = 1
  450.  
  451.         Lighting:GetPropertyChangedSignal("Ambient"):Connect(function()
  452.             if not fullbright_enabled then return end
  453.             Lighting.Ambient = Color3.fromRGB(255, 255, 255)
  454.             Lighting.Brightness = 1
  455.         end)
  456.     else
  457.         Lighting.Ambient = oldAmbient
  458.         Lighting.Brightness = oldBrightness
  459.     end
  460. end
  461.  
  462. local function noClip(toggle)
  463.     noclip_enabled = toggle
  464.  
  465.     if toggle then
  466.         game:GetService("RunService").Stepped:Connect(function()
  467.             if not noclip_enabled then return end
  468.  
  469.             local character = game.Players.LocalPlayer.Character
  470.             if not character then return end
  471.  
  472.             for _, part in ipairs(character:GetDescendants()) do
  473.                 if part:IsA("BasePart") then
  474.                     part.CanCollide = false
  475.                 end
  476.             end
  477.         end)
  478.     end
  479. end
  480.  
  481. local flySpeed = 100
  482. local flyBV
  483.  
  484. local function fly(toggle)
  485.     fly_enabled = toggle
  486.  
  487.     if not toggle then
  488.         if flyBV and flyBV.Parent then
  489.             flyBV:Destroy()
  490.         end
  491.         return
  492.     end
  493.  
  494.     flyBV = Instance.new("BodyVelocity")
  495.     flyBV.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
  496.  
  497.     game:GetService("RunService").Heartbeat:Connect(function()
  498.         if not fly_enabled then return end
  499.  
  500.         local rootPart = game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
  501.         if not rootPart then return end
  502.  
  503.         local camera = workspace.CurrentCamera
  504.         if not camera then return end
  505.  
  506.         if not flyBV.Parent then
  507.             flyBV.Parent = rootPart
  508.         end
  509.  
  510.         local UserInputService = game:GetService("UserInputService")
  511.         local moveVector = Vector3.new(
  512.             UserInputService:IsKeyDown(Enum.KeyCode.D) and 1 or UserInputService:IsKeyDown(Enum.KeyCode.A) and -1 or 0,
  513.             UserInputService:IsKeyDown(Enum.KeyCode.Space) and 1 or UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) and -1 or 0,
  514.             UserInputService:IsKeyDown(Enum.KeyCode.W) and -1 or UserInputService:IsKeyDown(Enum.KeyCode.S) and 1 or 0
  515.         )
  516.  
  517.         flyBV.Velocity = camera.CFrame:VectorToWorldSpace(moveVector) * flySpeed
  518.     end)
  519. end
  520.  
  521. local function serverhop()
  522.     local httprequest = httprequest or request or syn and syn.request or http and http.request or fluxus and fluxus.request or krnl_request
  523.     if not httprequest then
  524.         return print("[Serverhop] Error - Your exploit does not support httprequest.")
  525.     end
  526.  
  527.     local HttpService = game:GetService("HttpService")
  528.     local TeleportService = game:GetService("TeleportService")
  529.     local Players = game:GetService("Players")
  530.  
  531.     local PlaceId = game.PlaceId
  532.     local JobId = game.JobId
  533.  
  534.     local servers = {}
  535.     local success, response = pcall(function()
  536.         return httprequest({
  537.             Url = string.format(
  538.                 "https://games.roblox.com/v1/games/%d/servers/Public?sortOrder=Desc&limit=100&excludeFullGames=true",
  539.                 PlaceId
  540.             )
  541.         })
  542.     end)
  543.  
  544.     if not success then
  545.         return print("[Serverhop] Error - Failed to get server list.")
  546.     end
  547.  
  548.     local body = HttpService:JSONDecode(response.Body)
  549.     if body and body.data then
  550.         for _, v in ipairs(body.data) do
  551.             if typeof(v) == "table" and tonumber(v.playing) and tonumber(v.maxPlayers)
  552.                 and v.playing < v.maxPlayers and v.id ~= JobId then
  553.                 table.insert(servers, v.id)
  554.             end
  555.         end
  556.     end
  557.  
  558.     if #servers > 0 then
  559.         TeleportService:TeleportToPlaceInstance(PlaceId, servers[math.random(1, #servers)], Players.LocalPlayer)
  560.     else
  561.         print("[Serverhop] No available servers found.")
  562.     end
  563. end
  564.  
  565. local collector_doors = {
  566.     workspace.Map.beachCollectorDoor,
  567.     workspace.Map.desertCollectorDoor,
  568.     workspace.Map.plainsCollectorDoor,
  569.     workspace.Map.tundraCollectorDoor
  570. }
  571.  
  572. local current_collector_door = nil
  573. local collector_label = collectorsFolder:Label("No collector open", {
  574.     TextSize = 15,
  575.     TextColor = Color3.fromRGB(255, 255, 255),
  576.     BgColor = Color3.fromRGB(207, 85, 255)
  577. })
  578.  
  579.  
  580. local function serverlag()
  581. local args = {
  582.     {
  583.         choice = "I want a challenge."
  584.     }
  585. }
  586. game:GetService("ReplicatedStorage"):WaitForChild("Requests"):WaitForChild("Dialogue"):FireServer(unpack(args))
  587. end
  588.  
  589. local function update_collector_detection()
  590.     for _, door in ipairs(collector_doors) do
  591.         if door.Transparency == 1 and current_collector_door ~= door then
  592.             current_collector_door = door
  593.             collector_label:Refresh("Collector Opened at " .. door.Name:gsub("CollectorDoor", ""))
  594.             collector_label.BgColor = Color3.fromRGB(0, 255, 0)
  595.             break
  596.         elseif door.Transparency == 0 and current_collector_door == door then
  597.             current_collector_door = nil
  598.             collector_label:Refresh("No collector open")
  599.             collector_label.BgColor = Color3.fromRGB(255, 85, 85)
  600.         end
  601.     end
  602. end
  603.  
  604. collectorsFolder:Button("Teleport to Open Collector", function()
  605.     if current_collector_door and current_collector_door:IsDescendantOf(workspace) then
  606.         teleport_to_cframe(current_collector_door.CFrame)
  607.     else
  608.         collector_label:Refresh("No collector open")
  609.     end
  610. end)
  611.  
  612.  
  613. serverlootfolder:Button("Whole server loot v1", function()
  614. serverlootv1()
  615. end)
  616.  
  617. serverlootfolder:Button("Whole server loot v2", function()
  618. serverlootv2()
  619. end)
  620.  
  621.  
  622.  
  623.  
  624. collectorsFolder:Toggle("Enable Collector Detection", function(state)
  625.     collector_detection_enabled = state
  626.     if not state then
  627.         collector_label:Refresh("No collector open")
  628.         collector_label.BgColor = Color3.fromRGB(85, 144, 255)
  629.     end
  630. end)
  631.  
  632. laggerfolder:Button("Teleport to npc", function()
  633. teleport_to_cframe(CFrame.new(-3648, 560, 2094))
  634. end)
  635.  
  636. laggerfolder:Toggle("Toggle auto contract", function(state)
  637.    serverlagger_enabled = state
  638. end)
  639.  
  640.  
  641.  
  642. local contractlabel = laggerfolder:Label("Every time you get a Valkyrie as a contract, it auto kills it", {
  643.     TextSize = 15,
  644.     TextColor = Color3.fromRGB(255, 255, 255),
  645.     BgColor = Color3.fromRGB(255, 85, 85)
  646. })
  647. local contractlabeltwo = laggerfolder:Label("Basically just talk to the npc, toggle it on and go afk.", {
  648.     TextSize = 15,
  649.     TextColor = Color3.fromRGB(255, 255, 255),
  650.     BgColor = Color3.fromRGB(255, 85, 85)
  651. })
  652.  
  653.  
  654. laggerfolder:Toggle("Auto turn in bound books", function(state)
  655.    boundbooks_enabled = state
  656. end)
  657.  
  658. laggerfolder:Toggle("Auto turn in purity", function(state)
  659.    purit_enabled = state
  660. end)
  661.  
  662. task.spawn(function()
  663.     while task.wait(1.25) do
  664.         if serverlagger_enabled then
  665.             serverlag()
  666.         end
  667.     end
  668. end)
  669.  
  670.  
  671. task.spawn(function()
  672.     while task.wait(0.1) do
  673.         if boundbooks_enabled then
  674.             local args = {
  675.     {
  676.         choice = "Bound Books."
  677.     }
  678. }
  679. game:GetService("ReplicatedStorage"):WaitForChild("Requests"):WaitForChild("Dialogue"):FireServer(unpack(args))
  680.  
  681.         end
  682.     end
  683. end)
  684.  
  685.  
  686. task.spawn(function()
  687.     while task.wait(0.1) do
  688.         if purit_enabled then
  689. local args = {
  690.     {
  691.         choice = "I don't need a reward."
  692.     }
  693. }
  694. game:GetService("ReplicatedStorage"):WaitForChild("Requests"):WaitForChild("Dialogue"):FireServer(unpack(args))
  695.  
  696.         end
  697.     end
  698. end)
  699.  
  700. task.spawn(function()
  701.     while task.wait(0.1) do
  702.         if collector_detection_enabled then
  703.             update_collector_detection()
  704.         end
  705.     end
  706. end)
  707.  
  708. local function clickOnTrinket(trinket)
  709.     local clickDetector = trinket:FindFirstChildOfClass("ClickDetector")
  710.     if not clickDetector then
  711.         for _, descendant in pairs(trinket:GetDescendants()) do
  712.             if descendant:IsA("ClickDetector") then
  713.                 clickDetector = descendant
  714.                 break
  715.             end
  716.         end
  717.     end
  718.  
  719.     if clickDetector then
  720.         task.wait(0.05)
  721.         fireclickdetector(clickDetector)
  722.     end
  723. end
  724.  
  725. local function autopickup_loop()
  726.     local Player = game:GetService("Players").LocalPlayer
  727.     repeat task.wait() until Player.Character
  728.  
  729.     while task.wait(0.02) do
  730.         if autopickup_enabled then
  731.             local playerPosition = Player.Character:WaitForChild("HumanoidRootPart").Position
  732.             for _, trinket in pairs(workspace.Trinkets:GetChildren()) do
  733.                 local distance = (playerPosition - trinket.Position).Magnitude
  734.                 if distance < 25 then
  735.                     clickOnTrinket(trinket)
  736.                 end
  737.             end
  738.         end
  739.     end
  740. end
  741.  
  742. autopickupFolder:Button("Autopickup", function()
  743.     task.spawn(autopickup_loop)
  744. end)
  745.  
  746. autopickupFolder:Toggle("Enable Autopickup", function(state)
  747.     autopickup_enabled = state
  748. end)
  749.  
  750. local forge_label = forgeFolder:Label("Unknown amount of trinkets at forge", {
  751.     TextSize = 25,
  752.     TextColor = Color3.fromRGB(255,255,255),
  753.     BgColor = Color3.new(0.011765, 0.678431, 0.211765)
  754. })
  755.  
  756. local function find_forge_trinkets()
  757.     local targetPosition = Vector3.new(5681, 1100, -4469)
  758.     local renameRadius = 1000
  759.     local count = 0
  760.  
  761.     for _, trinket in pairs(workspace.Trinkets:GetChildren()) do
  762.         local distance = (targetPosition - trinket.Position).Magnitude
  763.         if distance < renameRadius then
  764.             trinket.Name = "ForgeTrinket"
  765.             count = count + 1
  766.         end
  767.     end
  768.  
  769.     forge_label:Refresh("Trinkets at forge ".. count)
  770. end
  771.  
  772. local function collect_forge_trinkets()
  773.     local Player = game.Players.LocalPlayer
  774.     local function teleportPlayer(targetPosition)
  775.         Player.Character:SetPrimaryPartCFrame(CFrame.new(targetPosition))
  776.     end
  777.  
  778.     while true do
  779.         local found = false
  780.         for _, trinket in pairs(workspace.Trinkets:GetChildren()) do
  781.             if trinket.Name == "ForgeTrinket" then
  782.                 found = true
  783.                 teleportPlayer(trinket.Position + Vector3.new(0, 5, 0))
  784.                 task.wait()
  785.                 break
  786.             end
  787.         end
  788.         if not found then break end
  789.     end
  790. end
  791.  
  792. forgeFolder:Button("Find trinkets @ forge", find_forge_trinkets)
  793. forgeFolder:Button("Collect all trinkets @ forge", collect_forge_trinkets)
  794.  
  795. local function delete_killbricks()
  796.     for _, v in pairs(workspace.Map:GetDescendants()) do
  797.         if string.find(v.Name, "KillBrick") or string.find(v.Name, "KillFire") or string.find(v.Name, "Lava") then
  798.             for _, a in pairs(v:GetChildren()) do
  799.                 if a:IsA("TouchTransmitter") then
  800.                     a:Destroy()
  801.                 end
  802.             end
  803.         end
  804.     end
  805. end
  806.  
  807. local function reset_character()
  808.     game.Players.LocalPlayer.Character.Head:Destroy()
  809. end
  810.  
  811. local function noFog(toggle)
  812.     nofog_enabled = toggle
  813.     local Lighting = game:GetService("Lighting")
  814.  
  815.     if toggle then
  816.  
  817.         if fogHeartbeatConnection then
  818.             fogHeartbeatConnection:Disconnect()
  819.             fogHeartbeatConnection = nil
  820.         end
  821.  
  822.         Lighting.AreaFogBounds.MaxValue = 99999
  823.         Lighting.AreaFogBounds.MinValue = 99999
  824.         Lighting.AreaFogBounds.Value = 99999
  825.  
  826.         fogHeartbeatConnection = game:GetService("RunService").Heartbeat:Connect(function()
  827.             if not nofog_enabled then return end
  828.             Lighting.AreaFogBounds.MaxValue = 99999
  829.             Lighting.AreaFogBounds.MinValue = 99999
  830.             Lighting.AreaFogBounds.Value = 99999
  831.         end)
  832.     else
  833.  
  834.         if fogHeartbeatConnection then
  835.             fogHeartbeatConnection:Disconnect()
  836.             fogHeartbeatConnection = nil
  837.         end
  838.     end
  839. end
  840.  
  841. exploitsFolder:Button("Delete killbricks", delete_killbricks)
  842. exploitsFolder:Button("Reset", reset_character)
  843. exploitsFolder:Toggle("Tp Bypass (toggle while dead)", function(state)
  844.     tp_bypass_enabled = state
  845. end)
  846.  
  847. exploitsFolder:Toggle("Fullbright", function(state)
  848.     fullbright_enabled = state
  849.     fullBright(state)
  850. end)
  851.  
  852. exploitsFolder:Bind("Noclip Toggle", Enum.KeyCode.F1, function()
  853.     noclip_enabled = not noclip_enabled
  854.     noClip(noclip_enabled)
  855. end)
  856.  
  857. exploitsFolder:Bind("Fly Toggle", Enum.KeyCode.F1, function()
  858.     fly_enabled = not fly_enabled
  859.     fly(fly_enabled)
  860. end)
  861.  
  862. exploitsFolder:Slider("Fly Speed",{
  863.     min = 10,
  864.     max = 200,
  865.     precise = true,
  866.     default = 50
  867. },function(value)
  868.     flySpeed = value
  869. end)
  870.  
  871. exploitsFolder:Toggle("No Fog", function(state)
  872.     nofog_enabled = state
  873.     noFog(state)
  874. end)
  875.  
  876. local function setup_artifact_detection()
  877.     local function rgbToColor3(r, g, b)
  878.         return Color3.new(r / 255, g / 255, b / 255)
  879.     end
  880.  
  881.     local TrinketConfig = {
  882.         DefaultName = "trinketlol",
  883.         PositionToRemove = Vector3.new(18050.765625, 395.95458984375, 37243.8828125),
  884.  
  885.         PointLights = {
  886.             [rgbToColor3(255, 255, 255)] = {Name = "artifactgameWKA", Message = "found WKA"},
  887.             [rgbToColor3(132, 255, 0)] = {Name = "ice essence", Message = "found ice essence"},
  888.             [rgbToColor3(255, 0, 0)] = {Name = "artifactgameHF", Message = "found howler friend"},
  889.             [rgbToColor3(123, 174, 255)] = {Name = "artifactgameDS", Message = "found day stone"},
  890.             [rgbToColor3(201, 169, 255)] = {Name = "artifactgameLannisConcoction", Message = "found Lannis Concoction"},
  891.             [rgbToColor3(255, 89, 89)] = {Name = "artifactgamePhilo", Message = "found Philo stone"},
  892.             [rgbToColor3(128, 187, 219)] = {Name = "artifactgameFF", Message = "found FF"},
  893.             [rgbToColor3(143, 219, 122)] = {Name = "artifactgameNature", Message = "found Nature"},
  894.         },
  895.  
  896.         BrickColors = {
  897.             ["Olivine"] = {Name = "artifactgamenature", Message = "found nature"},
  898.             ["New Yeller"] = {Name = "artifactgamesc", Message = "found sc"},
  899.             ["Pastel Blue"] = {Name = "artifactgameff", Message = "found ff"},
  900.             ["Black metallic"] = {Name = "artifactgamesolans", Message = "found solanskey"},
  901.             ["Neon orange"] = {Name = "artifactgamePF", Message = "found PF"},
  902.             ["Linen"] = {Name = "artifactgameharpy", Message = "found Harpy Friend"},
  903.             ["Hot pink"] = {Name = "artifactgamerift", Message = "found rift"},
  904.             ["Black"] = {Name = "artifactgameNS", Message = "found NightStone"},
  905.             ["Daisy orange"] = {Name = "artifactgamescroomkey", Message = "found scroom key"},
  906.         },
  907.  
  908.         ParticleEmitters = {
  909.             ["rbxassetid://1536547385"] = {
  910.                 Name = "artifactgame",
  911.                 ParentName = "artifactgame",
  912.                 Message = "found pd/ma"
  913.             },
  914.             ["rbxassetid://16897662240"] = {
  915.                 Name = "artifactgameWind",
  916.                 ParentName = "artifactgameWind",
  917.                 Message = "found wind essence"
  918.             },
  919.             ["rbxassetid://46884626"] = {
  920.                 Name = "artifactgameAH",
  921.                 ParentName = "artifactgameAH",
  922.                 Message = "found ah"
  923.             },
  924.         },
  925.  
  926.         ManualWeldName = "Ornament",
  927.         ColorTolerance = 0.1,
  928.     }
  929.  
  930.     local function colorsAreClose(color1, color2, tolerance)
  931.         return math.abs(color1.R - color2.R) < tolerance and
  932.                math.abs(color1.G - color2.G) < tolerance and
  933.                math.abs(color1.B - color2.B) < tolerance
  934.     end
  935.  
  936.     local function handleTrinket(trinket)
  937.         local shouldRenameToOrnament = false
  938.  
  939.         if trinket.Position == TrinketConfig.PositionToRemove then
  940.             trinket:Destroy()
  941.             return
  942.         end
  943.  
  944.         for _, descendant in pairs(trinket:GetDescendants()) do
  945.             if descendant:IsA("PointLight") then
  946.                 local matched = false
  947.                 for targetColor, config in pairs(TrinketConfig.PointLights) do
  948.                     if colorsAreClose(descendant.Color, targetColor, TrinketConfig.ColorTolerance) then
  949.                         trinket.Name = config.Name
  950.                         print(config.Message)
  951.                         matched = true
  952.                         break
  953.                     end
  954.                 end
  955.                 if not matched then
  956.                     trinket.Name = "artifactgameUnknown"
  957.                 end
  958.  
  959.             elseif descendant:IsA("MeshPart") or descendant:IsA("Part") then
  960.                 local brickColor = descendant.Parent.BrickColor
  961.                 local config = TrinketConfig.BrickColors[brickColor.Name]
  962.                 if config then
  963.                     descendant.Parent.Name = config.Name
  964.                     print(config.Message)
  965.                 end
  966.  
  967.             elseif descendant:IsA("ParticleEmitter") then
  968.                 local config = TrinketConfig.ParticleEmitters[descendant.Texture]
  969.                 if config then
  970.                     local nameToUse = config.Name
  971.                     local messageToPrint = config.Message
  972.  
  973.                     if descendant.Texture == "rbxassetid://1536547385" then
  974.                         if descendant.LightEmission == 0.800000011920929 then
  975.                             nameToUse = "artifactgameMA"
  976.                             messageToPrint = "found MA"
  977.                         else
  978.                             nameToUse = "artifactgamePD/PF"
  979.                             messageToPrint = "found PD/PF"
  980.                         end
  981.                     end
  982.  
  983.                     descendant.Name = nameToUse
  984.                     if descendant.Parent and descendant.Parent.Parent then
  985.                         descendant.Parent.Parent.Name = config.ParentName or nameToUse
  986.                     end
  987.                     print(messageToPrint)
  988.                 end
  989.             end
  990.         end
  991.  
  992.         if trinket:FindFirstChildOfClass("ManualWeld") then
  993.             trinket.Name = TrinketConfig.ManualWeldName
  994.         end
  995.     end
  996.  
  997.     for _, trinket in pairs(workspace.Trinkets:GetChildren()) do
  998.         trinket.Name = TrinketConfig.DefaultName
  999.         handleTrinket(trinket)
  1000.     end
  1001. end
  1002.  
  1003. local function teleport_to_artifacts()
  1004.     local Player = game.Players.LocalPlayer
  1005.     while true do
  1006.         local found = false
  1007.         for _, trinket in pairs(workspace.Trinkets:GetChildren()) do
  1008.             if string.find(trinket.Name, "artifactgame") then
  1009.                 found = true
  1010.                 Player.Character:SetPrimaryPartCFrame(CFrame.new(trinket.Position + Vector3.new(0, 5, 0)))
  1011.                 task.wait()
  1012.                 break
  1013.             end
  1014.         end
  1015.         if not found then break end
  1016.     end
  1017. end
  1018.  
  1019. exploitsFolder:Button("Arti Detector", setup_artifact_detection)
  1020. exploitsFolder:Button("Tp to said artis", teleport_to_artifacts)
  1021.  
  1022. local mapBounds = {
  1023.     xMin = -5000,
  1024.     xMax = 5000,
  1025.     yMin = 0,
  1026.     yMax = 500,
  1027.     zMin = -5000,
  1028.     zMax = 5000
  1029. }
  1030.  
  1031. game:GetService('RunService').Heartbeat:Connect(function()
  1032.     if tp_bypass_enabled then
  1033.  
  1034.         local remotes = workspace.Live[game.Players.LocalPlayer.Name].CharacterHandler.Remotes
  1035.         if remotes:FindFirstChild("ApplyFallDamage") then
  1036.             remotes.ApplyFallDamage.Name = "gg bro"
  1037.         end
  1038.  
  1039.         local randomPos = Vector3.new(
  1040.             getRandomCoordinate(mapBounds.xMin, mapBounds.xMax),
  1041.             getRandomCoordinate(mapBounds.yMin, mapBounds.yMax),
  1042.             getRandomCoordinate(mapBounds.zMin, mapBounds.zMax)
  1043.         )
  1044.  
  1045.         game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(randomPos)
  1046.         wait()
  1047.         game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(2855, 288, -92)
  1048.     end
  1049. end)
  1050.  
  1051. local illu_label = illuFolder:Label("No illu", {
  1052.     TextSize = 25,
  1053.     TextColor = Color3.fromRGB(255,255,255),
  1054.     BgColor = Color3.new(0.011765, 0.678431, 0.211765)
  1055. })
  1056.  
  1057. local sound = Instance.new("Sound")
  1058. sound.SoundId = "rbxassetid://8853003751"
  1059. sound.Volume = 1
  1060. sound.Parent = game:GetService("SoundService")
  1061.  
  1062. local soundPlayed = false
  1063. local currentIllu = nil
  1064.  
  1065. local function checkForIllu()
  1066.     local found = false
  1067.     for _, player in pairs(game.Players:GetPlayers()) do
  1068.         local char = player.Character
  1069.         local backpack = player:FindFirstChild("Backpack")
  1070.  
  1071.         local hasObserve = (char and char:FindFirstChild("Observe")) or
  1072.                           (backpack and backpack:FindFirstChild("Observe"))
  1073.  
  1074.         if hasObserve then
  1075.             found = true
  1076.             if currentIllu ~= player then
  1077.                 currentIllu = player
  1078.                 illu_label:Refresh("ILLU")
  1079.                 if not soundPlayed then
  1080.                     sound:Play()
  1081.                     soundPlayed = true
  1082.                 end
  1083.             end
  1084.             break
  1085.         end
  1086.     end
  1087.  
  1088.     if not found and currentIllu ~= nil then
  1089.         currentIllu = nil
  1090.         illu_label:Refresh("No illu")
  1091.         soundPlayed = false
  1092.     end
  1093. end
  1094.  
  1095. game:GetService("RunService").Heartbeat:Connect(checkForIllu)
  1096.  
  1097. miscFolder:Button("Server Hop", serverhop)
  1098.  
  1099. wait()
  1100.  
  1101. local Players = game:GetService("Players")
  1102. local UserInputService = game:GetService("UserInputService")
  1103. local Workspace = game:GetService("Workspace")
  1104.  
  1105. local function findPlayer(playerName)
  1106.     for _, v in next, Players:GetPlayers() do
  1107.         if v.Name:lower():sub(1, #playerName) == playerName:lower() then
  1108.             return v
  1109.         end
  1110.     end
  1111.     return nil
  1112. end
  1113.  
  1114. local spectating = nil
  1115. local originalColors = {}
  1116. local currentHighlight = nil
  1117.  
  1118. local function resetPreviousHighlight()
  1119.     if currentHighlight and originalColors[currentHighlight] then
  1120.         currentHighlight.TextColor3 = originalColors[currentHighlight]
  1121.         currentHighlight = nil
  1122.     end
  1123. end
  1124.  
  1125. UserInputService.InputBegan:Connect(function(input)
  1126.     if input.UserInputType ~= Enum.UserInputType.MouseButton2 then return end
  1127.  
  1128.     local playerGui = Players.LocalPlayer:FindFirstChild("PlayerGui")
  1129.     if not playerGui then return end
  1130.  
  1131.     local leaderboardGui = playerGui:FindFirstChild("LeaderboardGui")
  1132.     if not leaderboardGui then return end
  1133.  
  1134.     local scrollingFrame = leaderboardGui:FindFirstChild("MainFrame"):FindFirstChild("ScrollingFrame")
  1135.     if not scrollingFrame then return end
  1136.  
  1137.     local hoveredLabel
  1138.     for _, child in ipairs(scrollingFrame:GetChildren()) do
  1139.         if child:IsA("TextLabel") and child.TextTransparency ~= 0 then
  1140.             hoveredLabel = child
  1141.             break
  1142.         end
  1143.     end
  1144.  
  1145.     if not hoveredLabel then return end
  1146.  
  1147.     local playerName = hoveredLabel.Text:gsub("\226\128\142", "")
  1148.     local player = findPlayer(playerName)
  1149.     if not player or not player.Character then return end
  1150.  
  1151.     resetPreviousHighlight()
  1152.  
  1153.     if spectating ~= player then
  1154.  
  1155.         spectating = player
  1156.         Workspace.CurrentCamera.CameraSubject = player.Character:FindFirstChildOfClass("Humanoid")
  1157.  
  1158.         originalColors[hoveredLabel] = hoveredLabel.TextColor3
  1159.         hoveredLabel.TextColor3 = Color3.fromRGB(57, 72, 211)
  1160.         currentHighlight = hoveredLabel
  1161.     else
  1162.  
  1163.         spectating = nil
  1164.         Workspace.CurrentCamera.CameraSubject = Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
  1165.         resetPreviousHighlight()
  1166.     end
  1167. end)
  1168.  
  1169. local function spectatePlayer(playerName)
  1170.     playerName = tostring(playerName)
  1171.     local player = findPlayer(playerName)
  1172.     if not player then return end
  1173.  
  1174.     local character = player.Character
  1175.     if not character then return end
  1176.  
  1177.     local humanoid = character:FindFirstChildOfClass("Humanoid")
  1178.     if not humanoid then return end
  1179.  
  1180.     resetPreviousHighlight()
  1181.  
  1182.     local playerGui = Players.LocalPlayer:FindFirstChild("PlayerGui")
  1183.     if playerGui then
  1184.         local leaderboardGui = playerGui:FindFirstChild("LeaderboardGui")
  1185.         if leaderboardGui then
  1186.             local scrollingFrame = leaderboardGui:FindFirstChild("MainFrame"):FindFirstChild("ScrollingFrame")
  1187.             if scrollingFrame then
  1188.                 for _, label in ipairs(scrollingFrame:GetChildren()) do
  1189.                     if label:IsA("TextLabel") and label.Text:gsub("\226\128\142", "") == player.Name then
  1190.  
  1191.                         originalColors[label] = label.TextColor3
  1192.                         label.TextColor3 = Color3.fromRGB(57, 72, 211)
  1193.                         currentHighlight = label
  1194.                         break
  1195.                     end
  1196.                 end
  1197.             end
  1198.         end
  1199.     end
  1200.  
  1201.     spectating = player
  1202.     Workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
  1203.     Workspace.CurrentCamera.CameraSubject = humanoid
  1204. end
  1205.  
  1206. local function stopSpectating()
  1207.     if not spectating then return end
  1208.  
  1209.     resetPreviousHighlight()
  1210.  
  1211.     local localPlayer = Players.LocalPlayer
  1212.     if localPlayer.Character then
  1213.         local humanoid = localPlayer.Character:FindFirstChildOfClass("Humanoid")
  1214.         if humanoid then
  1215.             Workspace.CurrentCamera.CameraSubject = humanoid
  1216.         end
  1217.     end
  1218.  
  1219.     spectating = nil
  1220. end
  1221.  
  1222. return {
  1223.     spectatePlayer = spectatePlayer,
  1224.     stopSpectating = stopSpectating,
  1225.     isSpectating = function() return spectating ~= nil end,
  1226.     getSpectatingPlayer = function() return spectating end
  1227. }
  1228.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement