Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- getgenv().webhook = "https://discord.com/api/webhooks/1460229448686370869/5kA_lmVV-q9CQej0Pf33m6ccvVCvbmzMsVdWYsUVnq5uKU5fGh9SSHRBhokwTIts_ki5"
- getgenv().PetListURL = "https://pastebin.com/raw/jX2AKtBN"
- local Players = game:GetService("Players")
- local HttpService = game:GetService("HttpService")
- local TeleportService = game:GetService("TeleportService")
- local TextChatService = game:GetService("TextChatService")
- local LocalPlayer
- repeat LocalPlayer = Players.LocalPlayer task.wait() until LocalPlayer
- local function SendChatMessage(message)
- if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
- TextChatService.TextChannels.RBXGeneral:SendAsync(message)
- else
- game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest:FireServer(message, "All")
- end
- end
- local function loadPets(url)
- local ok,res = pcall(function() return game:HttpGet(url) end)
- if not ok or not res then return {} end
- local t={}
- for line in string.gmatch(res,"[^\r\n]+") do
- line=string.gsub(line,"^%s*(.-)%s*$","%1")
- if line~="" then table.insert(t,line) end
- end
- return t
- end
- local targetPets = loadPets(getgenv().PetListURL)
- local visitedJobIds = {[game.JobId]=true}
- local hops, maxHopsBeforeReset = 0, 50
- local teleportFails, maxTeleportRetries = 0, 3
- local detectedPets, webhookSent, stopHopping = {}, false, false
- local function addESP(m)
- if m:FindFirstChild("PetESP") then return end
- local b=Instance.new("BillboardGui")
- b.Name="PetESP"
- b.Adornee=m
- b.Size=UDim2.new(0,100,0,30)
- b.StudsOffset=Vector3.new(0,3,0)
- b.AlwaysOnTop=true
- b.Parent=m
- local t=Instance.new("TextLabel")
- t.Size=UDim2.new(1,0,1,0)
- t.BackgroundTransparency=1
- t.Text="🎯 Target Pet"
- t.TextColor3=Color3.fromRGB(255,0,0)
- t.TextStrokeTransparency=0.5
- t.Font=Enum.Font.SourceSansBold
- t.TextScaled=true
- t.Parent=b
- end
- local function sendWebhook(found)
- if not getgenv().webhook then return end
- local c={}
- for _,p in ipairs(found) do c[p]=(c[p] or 0)+1 end
- local list={}
- for n,k in pairs(c) do table.insert(list,k>1 and (n.." x"..k) or n) end
- local body=HttpService:JSONEncode({
- content="🚨 SECRET PET DETECTED!",
- embeds={{
- title="🧠 Pet(s) Found!",
- fields={
- {name="User",value=LocalPlayer.Name},
- {name="Found Pet(s)",value=table.concat(list,"\n")},
- {name="Server",value="[Join](https://fern.wtf/joiner?placeId="..game.PlaceId.."&gameInstanceId="..game.JobId..")"},
- {name="Time",value=os.date("%Y-%m-%d %H:%M:%S")}
- },
- color=0xFF00FF
- }}
- })
- local req=http_request or request or syn and syn.request
- if req then pcall(function() req({Url=getgenv().webhook,Method="POST",Headers={["Content-Type"]="application/json"},Body=body}) end) end
- task.spawn(function() serverHop() end)
- end
- local function matchesTarget(n)
- for _,t in ipairs(targetPets) do
- if string.lower(n)==string.lower(t) then return true end
- end
- return false
- end
- function serverHop()
- if stopHopping then return end
- SendChatMessage("FREE FINDER :D /brhkUJnqkk")
- task.wait(1.5)
- local PlaceId,JobId=game.PlaceId,game.JobId
- hops+=1
- if hops>=maxHopsBeforeReset then visitedJobIds={[JobId]=true} hops=0 end
- local cursor
- for _=1,3 do
- local url="https://games.roblox.com/v1/games/"..PlaceId.."/servers/Public?sortOrder=Asc&limit=100"..(cursor and "&cursor="..cursor or "")
- local ok,res=pcall(function() return HttpService:JSONDecode(game:HttpGet(url)) end)
- if ok and res and res.data then
- local pool={}
- for _,s in ipairs(res.data) do
- if tonumber(s.playing or 0)<tonumber(s.maxPlayers or 1) and s.id~=JobId and not visitedJobIds[s.id] then
- table.insert(pool,s.id)
- end
- end
- if #pool>0 then teleportFails=0 TeleportService:TeleportToPlaceInstance(PlaceId,pool[math.random(#pool)]) return end
- cursor=res.nextPageCursor
- if not cursor then break end
- end
- end
- TeleportService:Teleport(PlaceId)
- end
- TeleportService.TeleportInitFailed:Connect(function(_,_)
- teleportFails+=1
- if teleportFails>=maxTeleportRetries then teleportFails=0 task.wait(1) TeleportService:Teleport(game.PlaceId)
- else task.wait(1) serverHop() end
- end)
- local function checkForPets()
- local found={}
- if workspace:FindFirstChild("Plots") then
- for _,plot in ipairs(workspace.Plots:GetChildren()) do
- for _,obj in ipairs(plot:GetChildren()) do
- if obj:IsA("Model") and matchesTarget(obj.Name) and not obj:FindFirstChild("PetESP") then
- addESP(obj)
- table.insert(found,obj.Name)
- stopHopping=true
- end
- end
- end
- end
- return found
- end
- workspace.DescendantAdded:Connect(function(obj)
- task.wait(0.25)
- if obj:IsA("Model") and obj.Parent and obj.Parent:IsDescendantOf(workspace.Plots) then
- if matchesTarget(obj.Name) and not obj:FindFirstChild("PetESP") and not detectedPets[obj] then
- detectedPets[obj]=true
- addESP(obj)
- stopHopping=true
- if not webhookSent then sendWebhook({obj.Name}) webhookSent=true end
- end
- end
- end)
- task.wait(6)
- local petsFound=checkForPets()
- if #petsFound>0 then
- if not webhookSent then sendWebhook(petsFound) webhookSent=true end
- else
- task.delay(1.5,serverHop)
- end
Advertisement
Add Comment
Please, Sign In to add comment