Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if not game:IsLoaded() then game.Loaded:Wait() end
- local HttpService = game:GetService("HttpService")
- local TeleportService = game:GetService("TeleportService")
- local Players = game:GetService("Players")
- local lp = Players.LocalPlayer
- local placeId = game.PlaceId
- local jobId = game.JobId
- local secrets = {
- "La Vacca Saturno Saturnita",
- "Los Tralaleritos",
- "Graipuss Medussi"
- }
- local webhook = "urlimk"
- local EXCLUSION_RADIUS = 20
- local MAX_PLAYERS_FOR_TP = 8
- local webhookMessages = {
- "✅ {secret} has been caught lacking in {owner}'s base, get it while you can.",
- "{secret} really thought they could hide in {owner}'s base...",
- "We found {secret} sleeping in {owner}'s base!",
- "🚨 {secret} spotted in {owner}'s server!",
- "Free {secret} in {owner}'s base right now!",
- "A wild {secret} has been found in {owner}'s base!"
- }
- local function getPlotOwner(plot)
- local sign = plot and plot:FindFirstChild("PlotSign")
- local gui = sign and sign:FindFirstChildWhichIsA("SurfaceGui")
- local frame = gui and gui:FindFirstChildWhichIsA("Frame")
- local label = frame and frame:FindFirstChildWhichIsA("TextLabel")
- local txt = label and label.Text
- if not txt then return "Unknown" end
- local cleaned = txt:gsub("\n", " "):gsub("%s+", " "):gsub("'s [Pp]lot", ""):gsub("'s [Bb]ase", ""):match("^%s*(.-)%s*$")
- return cleaned ~= "" and cleaned or "Unknown"
- end
- local myBase
- for _, plot in pairs(workspace.Plots:GetChildren()) do
- local sign = plot:FindFirstChild("PlotSign")
- if sign then
- local gui = sign:FindFirstChildWhichIsA("SurfaceGui")
- local frame = gui and gui:FindFirstChild("Frame")
- local label = frame and frame:FindFirstChild("TextLabel")
- local txt = label and label.Text or ""
- if txt:find(lp.DisplayName) or txt:find(lp.Name) then
- myBase = plot
- break
- end
- end
- end
- local function getClosestPlot(pos)
- local min, closest = math.huge, nil
- for _, plot in pairs(workspace.Plots:GetChildren()) do
- local hitbox = plot:FindFirstChild("DeliveryHitbox")
- if hitbox then
- local dist = (pos - hitbox.Position).Magnitude
- if dist < min then
- closest, min = plot, dist
- end
- end
- end
- return closest
- end
- local function getDistance(pos)
- local char = lp.Character
- local hrp = char and char:FindFirstChild("HumanoidRootPart")
- return hrp and math.floor((hrp.Position - pos).Magnitude) or "N/A"
- end
- local sentSecrets = {}
- local function sendWebhook(secret, pos)
- if sentSecrets[secret] then return end
- sentSecrets[secret] = true
- local plot = getClosestPlot(pos)
- local owner = getPlotOwner(plot)
- local distance = getDistance(pos)
- local msg = webhookMessages[math.random(#webhookMessages)]:gsub("{secret}", secret):gsub("{owner}", owner)
- local payload = {
- ["embeds"] = {{
- ["title"] = "🎯 Secret Found!",
- ["description"] = msg,
- ["color"] = 65280,
- ["fields"] = {
- {["name"] = "Owner", ["value"] = owner, ["inline"] = true},
- {["name"] = "Distance", ["value"] = tostring(distance).." studs", ["inline"] = true}
- },
- ["footer"] = {["text"] = "Secret Sniffer"}
- }}
- }
- pcall(function()
- (syn and syn.request or request)({
- Url = webhook,
- Method = "POST",
- Headers = {["Content-Type"] = "application/json"},
- Body = HttpService:JSONEncode(payload)
- })
- end)
- end
- local function findSecrets()
- local results = {}
- for _, obj in pairs(workspace:GetDescendants()) do
- for _, sName in pairs(secrets) do
- if obj.Name == sName then
- local part = obj:FindFirstChild("HumanoidRootPart") or obj.PrimaryPart
- if part then
- local isNear = myBase and (part.Position - myBase.DeliveryHitbox.Position).Magnitude <= EXCLUSION_RADIUS
- if not isNear then
- table.insert(results, {name = sName, position = part.Position})
- end
- end
- end
- end
- end
- return results
- end
- local function hopServer()
- local success, response = pcall(function()
- return HttpService:JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/"..placeId.."/servers/Public?sortOrder=Asc&limit=100"))
- end)
- if not success or not response then return false end
- local candidates = {}
- for _, server in ipairs(response.data) do
- if server.id ~= jobId and server.playing < MAX_PLAYERS_FOR_TP then
- table.insert(candidates, server.id)
- end
- end
- if #candidates > 0 then
- local target = candidates[math.random(#candidates)]
- TeleportService:TeleportToPlaceInstance(placeId, target, lp)
- return true
- end
- return false
- end
- while true do
- local found = findSecrets()
- if #found > 0 then
- for _, s in ipairs(found) do
- sendWebhook(s.name, s.position)
- end
- break
- else
- local hopped = hopServer()
- if not hopped then
- task.wait(5 + math.random())
- else
- task.wait(10 + math.random())
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment