-- Old Version: https://raw.githubusercontent.com/Acrillis/SynapseX/master/Synapse%20Scripts/StreamSniper.lua local Screenguini = Instance.new("ScreenGui") local Frame = Instance.new("Frame") local TextLabel = Instance.new("TextLabel") local TextLabel_2 = Instance.new("TextLabel") local UsernameBox = Instance.new("TextBox") local TextLabel_3 = Instance.new("TextLabel") local PlaceIdBox = Instance.new("TextBox") local StartButton = Instance.new("TextButton") local TextLabel_4 = Instance.new("TextLabel") local UsernameLabel = Instance.new("TextLabel") local TextLabel_5 = Instance.new("TextLabel") local UserIdLabel = Instance.new("TextLabel") local GamerPicture = Instance.new("ImageLabel") local HttpService = game:GetService("HttpService") local Players = game:GetService("Players") local TeleportService = game:GetService("TeleportService") Screenguini.Name = HttpService:GenerateGUID(false) Screenguini.Parent = game:GetService("CoreGui") Frame.Parent = Screenguini Frame.Active = true Frame.BackgroundColor3 = Color3.fromRGB(31, 31, 31) Frame.BorderColor3 = Color3.fromRGB(31, 31, 31) Frame.Draggable = true Frame.Size = UDim2.new(0, 400, 0, 260) TextLabel.Parent = Frame TextLabel.Active = true TextLabel.BackgroundColor3 = Color3.fromRGB(255, 170, 0) TextLabel.BorderColor3 = Color3.fromRGB(31, 31, 40) TextLabel.Size = UDim2.new(0, 400, 0, 40) TextLabel.Font = Enum.Font.SourceSansLight TextLabel.Text = "Synapse X Stream Sniper" TextLabel.TextSize = 24.000 TextLabel_2.Parent = Frame TextLabel_2.Active = true TextLabel_2.BackgroundColor3 = Color3.fromRGB(31, 31, 31) TextLabel_2.BorderColor3 = Color3.fromRGB(31, 31, 31) TextLabel_2.Position = UDim2.new(0, 10, 0, 49) TextLabel_2.Size = UDim2.new(0, 150, 0, 20) TextLabel_2.Font = Enum.Font.SourceSansLight TextLabel_2.Text = "Username/UserId:" TextLabel_2.TextColor3 = Color3.fromRGB(255, 255, 255) TextLabel_2.TextSize = 16.000 UsernameBox.Name = "UsernameBox" UsernameBox.Parent = Frame UsernameBox.BackgroundColor3 = Color3.fromRGB(61, 61, 61) UsernameBox.BorderColor3 = Color3.fromRGB(31, 31, 31) UsernameBox.Position = UDim2.new(0, 10, 0, 80) UsernameBox.Size = UDim2.new(0, 150, 0, 35) UsernameBox.Font = Enum.Font.SourceSansLight UsernameBox.PlaceholderColor3 = Color3.fromRGB(255, 255, 255) UsernameBox.PlaceholderText = "Enter Username Here" UsernameBox.Text = "" UsernameBox.TextColor3 = Color3.fromRGB(255, 255, 255) UsernameBox.TextSize = 18.000 TextLabel_3.Parent = Frame TextLabel_3.Active = true TextLabel_3.BackgroundColor3 = Color3.fromRGB(31, 31, 31) TextLabel_3.BorderColor3 = Color3.fromRGB(31, 31, 31) TextLabel_3.Position = UDim2.new(0, 10, 0, 130) TextLabel_3.Size = UDim2.new(0, 150, 0, 20) TextLabel_3.Font = Enum.Font.SourceSansLight TextLabel_3.Text = "Place Id:" TextLabel_3.TextColor3 = Color3.fromRGB(255, 255, 255) TextLabel_3.TextSize = 16.000 PlaceIdBox.Name = "PlaceIdBox" PlaceIdBox.Parent = Frame PlaceIdBox.BackgroundColor3 = Color3.fromRGB(61, 61, 61) PlaceIdBox.BorderColor3 = Color3.fromRGB(31, 31, 31) PlaceIdBox.Position = UDim2.new(0, 10, 0, 157) PlaceIdBox.Size = UDim2.new(0, 150, 0, 35) PlaceIdBox.Font = Enum.Font.SourceSansLight PlaceIdBox.PlaceholderColor3 = Color3.fromRGB(255, 255, 255) PlaceIdBox.PlaceholderText = "Enter PlaceId Here" PlaceIdBox.Text = "" PlaceIdBox.TextColor3 = Color3.fromRGB(255, 255, 255) PlaceIdBox.TextSize = 18.000 StartButton.Name = "StartButton" StartButton.Parent = Frame StartButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40) StartButton.BorderColor3 = Color3.fromRGB(31, 31, 31) StartButton.Position = UDim2.new(0, 10, 0, 210) StartButton.Size = UDim2.new(0, 380, 0, 40) StartButton.Font = Enum.Font.SourceSansLight StartButton.Text = "Start" StartButton.TextColor3 = Color3.fromRGB(255, 255, 255) StartButton.TextSize = 24.000 TextLabel_4.Parent = Frame TextLabel_4.Active = true TextLabel_4.BackgroundColor3 = Color3.fromRGB(31, 31, 31) TextLabel_4.BackgroundTransparency = 1.000 TextLabel_4.BorderColor3 = Color3.fromRGB(31, 31, 31) TextLabel_4.Position = UDim2.new(0, 200, 0, 49) TextLabel_4.Size = UDim2.new(0, 0, 0, 20) TextLabel_4.AutomaticSize = Enum.AutomaticSize.X TextLabel_4.Font = Enum.Font.SourceSansBold TextLabel_4.Text = "Username:" TextLabel_4.TextColor3 = Color3.fromRGB(255, 255, 255) TextLabel_4.TextSize = 16.000 TextLabel_4.TextWrapped = true TextLabel_4.TextXAlignment = Enum.TextXAlignment.Left UsernameLabel.Name = "UsernameLabel" UsernameLabel.Parent = TextLabel_4 UsernameLabel.Active = true UsernameLabel.BackgroundColor3 = Color3.fromRGB(31, 31, 31) UsernameLabel.BackgroundTransparency = 1.000 UsernameLabel.BorderColor3 = Color3.fromRGB(31, 31, 31) UsernameLabel.Position = UDim2.new(0.5, 0, 0, 0) UsernameLabel.Size = UDim2.new(0, 150, 0, 20) UsernameLabel.Font = Enum.Font.SourceSansLight UsernameLabel.Text = "" UsernameLabel.TextColor3 = Color3.fromRGB(255, 255, 255) UsernameLabel.TextSize = 16.000 UsernameLabel.TextXAlignment = Enum.TextXAlignment.Left TextLabel_5.Parent = Frame TextLabel_5.Active = true TextLabel_5.BackgroundColor3 = Color3.fromRGB(31, 31, 31) TextLabel_5.BackgroundTransparency = 1.000 TextLabel_5.BorderColor3 = Color3.fromRGB(31, 31, 31) TextLabel_5.Position = UDim2.new(0, 200, 0, 69) TextLabel_5.Size = UDim2.new(0, 0, 0, 20) TextLabel_5.AutomaticSize = Enum.AutomaticSize.X TextLabel_5.Font = Enum.Font.SourceSansBold TextLabel_5.Text = "UserId:" TextLabel_5.TextColor3 = Color3.fromRGB(255, 255, 255) TextLabel_5.TextSize = 16.000 TextLabel_5.TextWrapped = true TextLabel_5.TextXAlignment = Enum.TextXAlignment.Left UserIdLabel.Name = "UserIdLabel" UserIdLabel.Parent = TextLabel_5 UserIdLabel.Active = true UserIdLabel.BackgroundColor3 = Color3.fromRGB(31, 31, 31) UserIdLabel.BackgroundTransparency = 1.000 UserIdLabel.BorderColor3 = Color3.fromRGB(31, 31, 31) UserIdLabel.Position = UDim2.new(0.5, 0, 0, 0) UserIdLabel.Size = UDim2.new(0, 150, 0, 20) UserIdLabel.Font = Enum.Font.SourceSansLight UserIdLabel.Text = "" UserIdLabel.TextColor3 = Color3.fromRGB(255, 255, 255) UserIdLabel.TextSize = 16.000 UserIdLabel.TextXAlignment = Enum.TextXAlignment.Left GamerPicture.Name = "GamerPicture" GamerPicture.Parent = Frame GamerPicture.BackgroundColor3 = Color3.fromRGB(255, 255, 255) GamerPicture.Position = UDim2.new(0, 200, 0, 95) GamerPicture.Size = UDim2.new(0, 97, 0, 97) GamerPicture.Image = "rbxasset://textures/ui/GuiImagePlaceholder.png" if shared.STREAM_SNIPER then shared.STREAM_SNIPER:Destroy() end shared.STREAM_SNIPER = Screenguini local searching = false local confirm = false local function HttpGet(url) return pcall(HttpService.JSONDecode, HttpService, game:HttpGet(url)) end local function Status(text, tout) StartButton.Text = text if tout then task.delay(tout, function() if StartButton.Text == text then searching = false StartButton.Text = "Start" end end) end end local function getServers(id, cursor) local fullurl = "https://games.roblox.com/v1/games/".. id .."/servers/Public?limit=100" if cursor then fullurl = "&cursor=".. cursor end return HttpGet(fullurl) end local function fetchThumbs(tokens) local payload = { Url = "https://thumbnails.roblox.com/v1/batch", Headers = { ["Content-Type"] = "application/json" }, Method = "POST", Body = {} } for _, token in ipairs(tokens) do table.insert(payload.Body, { requestId = "0:".. token ..":AvatarHeadshot:150x150:png:regular", type = "AvatarHeadShot", targetId = 0, token = token, format = "png", size = "150x150" }) end payload.Body = HttpService:JSONEncode(payload.Body) local result = syn.request(payload) local s, data = pcall(HttpService.JSONDecode, HttpService, result.Body) return s, data and data.data or data end local function teleport(placeId, guid) TeleportService:TeleportToPlaceInstance(placeId, guid) end local threads = 30 StartButton.MouseButton1Click:Connect(function() if confirm then confirm = false searching = false Status("Cancelled") return end if searching then confirm = true local old = StartButton.Text Status("Click again to confirm.") task.delay(5, function() if "Click again to confirm." == StartButton.Text then confirm = false StartButton.Text = old end end) return end searching = true -- User ID Status("Getting user id...") local s, Username, UserId = pcall(function() -- TODO FIX: fix for only numbers players local userId = tonumber(UsernameBox.Text) or Players:GetUserIdFromNameAsync(UsernameBox.Text) local username = Players:GetNameFromUserIdAsync(userId) return username, userId end) if not s then return Status("Username or UserId does not exist!", 3) end local s, thumbUrl = pcall(Players.GetUserThumbnailAsync, Players, UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size150x150) UsernameLabel.Text = Username UserIdLabel.Text = UserId GamerPicture.Image = s and thumbUrl or "" Status("Getting user's thumbnail...") local s, response = HttpGet("https://thumbnails.roblox.com/v1/users/avatar-headshot?userIds=" .. UserId .. "&format=Png&size=150x150&isCircular=false") --local s, response = HttpGet("https://www.roblox.com/headshot-thumbnail/json?userId=" .. UserId .. "&width=150&height=150") local thumbnail = s and response['data'][1].imageUrl Status("Searching for (".. UserId ..")") -- Place ID Status("Getting place id...") local placeId = tonumber(PlaceIdBox.Text) if PlaceIdBox.Text:gsub("%s", "") == "" then placeId = game.PlaceId elseif not placeId then Status("Invalid place id", 3) return end Status("Searching...") local cursor = nil local searched = 0 local maxSearchs = 0 local players = 0 -- Server search while searching do if not Screenguini or not Screenguini.Parent then break end local s, result = getServers(placeId, cursor) if s then local servers = result.data cursor = result.nextPageCursor if StartButton.Text:match("Searching") then maxSearchs = maxSearchs + #servers Status(searched .."/".. maxSearchs .." servers scanned, players found: ".. players) end -- Search all servers for index, server in ipairs(servers) do local function fetchServer() local s, thumbs = fetchThumbs(server.playerTokens) if s then players = players + #thumbs for _, playerThumb in ipairs(thumbs) do if playerThumb.imageUrl then if playerThumb.imageUrl == thumbnail then searching = false Status("Found player, teleporting...") teleport(placeId, server.id) local try = 0 Player.OnTeleport:Connect(function(teleportState) if teleportState == Enum.TeleportState.Failed then try = try + 1 Status("Teleport failed, try #".. try) teleport(placeId, server.id) end end) end else Status("token failed, id:", playerThumb.requestId, playerThumb.state, playerThumb.errorMessage) --print("token failed, id:", playerThumb.requestId, playerThumb.state, playerThumb.errorMessage) end end else Status("token failed", s, thumb) --print("token failed", s, thumbs) end end searched = searched + 1 if index % threads ~= 0 then task.spawn(fetchServer) task.wait() else fetchServer() end if searching then Status(searched .."/".. maxSearchs .." servers scanned, players found: ".. players) end end -- Player not found if not cursor then break end else return Status("Failed to find servers", 3) end task.wait() end if searching then Status("Failed to find ".. Username ..", maybe in a vip server", 3) end end)