iOSdeveloper

Untitled

Jun 23rd, 2025
10
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.38 KB | None | 0 0
  1. if not game:IsLoaded() then game.Loaded:Wait() end
  2.  
  3. local HttpService = game:GetService("HttpService")
  4. local TeleportService = game:GetService("TeleportService")
  5. local Players = game:GetService("Players")
  6. local lp = Players.LocalPlayer
  7. local placeId = game.PlaceId
  8. local jobId = game.JobId
  9.  
  10. local secrets = {
  11. "La Vacca Saturno Saturnita",
  12. "Los Tralaleritos",
  13. "Graipuss Medussi"
  14. }
  15.  
  16. local webhook = "urlimk"
  17. local EXCLUSION_RADIUS = 20
  18. local MAX_PLAYERS_FOR_TP = 8
  19.  
  20. local webhookMessages = {
  21. "✅ {secret} has been caught lacking in {owner}'s base, get it while you can.",
  22. "{secret} really thought they could hide in {owner}'s base...",
  23. "We found {secret} sleeping in {owner}'s base!",
  24. "🚨 {secret} spotted in {owner}'s server!",
  25. "Free {secret} in {owner}'s base right now!",
  26. "A wild {secret} has been found in {owner}'s base!"
  27. }
  28.  
  29. local function getPlotOwner(plot)
  30. local sign = plot and plot:FindFirstChild("PlotSign")
  31. local gui = sign and sign:FindFirstChildWhichIsA("SurfaceGui")
  32. local frame = gui and gui:FindFirstChildWhichIsA("Frame")
  33. local label = frame and frame:FindFirstChildWhichIsA("TextLabel")
  34. local txt = label and label.Text
  35. if not txt then return "Unknown" end
  36.  
  37. local cleaned = txt:gsub("\n", " "):gsub("%s+", " "):gsub("'s [Pp]lot", ""):gsub("'s [Bb]ase", ""):match("^%s*(.-)%s*$")
  38. return cleaned ~= "" and cleaned or "Unknown"
  39. end
  40.  
  41. local myBase
  42. for _, plot in pairs(workspace.Plots:GetChildren()) do
  43. local sign = plot:FindFirstChild("PlotSign")
  44. if sign then
  45. local gui = sign:FindFirstChildWhichIsA("SurfaceGui")
  46. local frame = gui and gui:FindFirstChild("Frame")
  47. local label = frame and frame:FindFirstChild("TextLabel")
  48. local txt = label and label.Text or ""
  49. if txt:find(lp.DisplayName) or txt:find(lp.Name) then
  50. myBase = plot
  51. break
  52. end
  53. end
  54. end
  55.  
  56. local function getClosestPlot(pos)
  57. local min, closest = math.huge, nil
  58. for _, plot in pairs(workspace.Plots:GetChildren()) do
  59. local hitbox = plot:FindFirstChild("DeliveryHitbox")
  60. if hitbox then
  61. local dist = (pos - hitbox.Position).Magnitude
  62. if dist < min then
  63. closest, min = plot, dist
  64. end
  65. end
  66. end
  67. return closest
  68. end
  69.  
  70. local function getDistance(pos)
  71. local char = lp.Character
  72. local hrp = char and char:FindFirstChild("HumanoidRootPart")
  73. return hrp and math.floor((hrp.Position - pos).Magnitude) or "N/A"
  74. end
  75.  
  76. local sentSecrets = {}
  77.  
  78. local function sendWebhook(secret, pos)
  79. if sentSecrets[secret] then return end
  80. sentSecrets[secret] = true
  81.  
  82. local plot = getClosestPlot(pos)
  83. local owner = getPlotOwner(plot)
  84. local distance = getDistance(pos)
  85.  
  86. local msg = webhookMessages[math.random(#webhookMessages)]:gsub("{secret}", secret):gsub("{owner}", owner)
  87.  
  88. local payload = {
  89. ["embeds"] = {{
  90. ["title"] = "🎯 Secret Found!",
  91. ["description"] = msg,
  92. ["color"] = 65280,
  93. ["fields"] = {
  94. {["name"] = "Owner", ["value"] = owner, ["inline"] = true},
  95. {["name"] = "Distance", ["value"] = tostring(distance).." studs", ["inline"] = true}
  96. },
  97. ["footer"] = {["text"] = "Secret Sniffer"}
  98. }}
  99. }
  100.  
  101. pcall(function()
  102. (syn and syn.request or request)({
  103. Url = webhook,
  104. Method = "POST",
  105. Headers = {["Content-Type"] = "application/json"},
  106. Body = HttpService:JSONEncode(payload)
  107. })
  108. end)
  109. end
  110.  
  111. local function findSecrets()
  112. local results = {}
  113. for _, obj in pairs(workspace:GetDescendants()) do
  114. for _, sName in pairs(secrets) do
  115. if obj.Name == sName then
  116. local part = obj:FindFirstChild("HumanoidRootPart") or obj.PrimaryPart
  117. if part then
  118. local isNear = myBase and (part.Position - myBase.DeliveryHitbox.Position).Magnitude <= EXCLUSION_RADIUS
  119. if not isNear then
  120. table.insert(results, {name = sName, position = part.Position})
  121. end
  122. end
  123. end
  124. end
  125. end
  126. return results
  127. end
  128.  
  129. local function hopServer()
  130. local success, response = pcall(function()
  131. return HttpService:JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/"..placeId.."/servers/Public?sortOrder=Asc&limit=100"))
  132. end)
  133.  
  134. if not success or not response then return false end
  135.  
  136. local candidates = {}
  137. for _, server in ipairs(response.data) do
  138. if server.id ~= jobId and server.playing < MAX_PLAYERS_FOR_TP then
  139. table.insert(candidates, server.id)
  140. end
  141. end
  142.  
  143. if #candidates > 0 then
  144. local target = candidates[math.random(#candidates)]
  145. TeleportService:TeleportToPlaceInstance(placeId, target, lp)
  146. return true
  147. end
  148. return false
  149. end
  150.  
  151. while true do
  152. local found = findSecrets()
  153. if #found > 0 then
  154. for _, s in ipairs(found) do
  155. sendWebhook(s.name, s.position)
  156. end
  157. break
  158. else
  159. local hopped = hopServer()
  160. if not hopped then
  161. task.wait(5 + math.random())
  162. else
  163. task.wait(10 + math.random())
  164. end
  165. end
  166. end
  167.  
Advertisement
Add Comment
Please, Sign In to add comment