local Rayfield = loadstring(game:HttpGet("https://sirius.menu/rayfield"))() local HttpService = game:GetService("HttpService") local TeleportService = game:GetService("TeleportService") local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local IsMobile = UserInputService.TouchEnabled and not UserInputService.MouseEnabled local requestFunc = syn and syn.request or http and http.request or http_request or fluxus and fluxus.request or request or function() error("No supported HTTP request function found!") end local Window = Rayfield:CreateWindow({ Name = "Low Server Finder", LoadingTitle = "Searching for Servers...", LoadingSubtitle = "Please wait...", ConfigurationSaving = { Enabled = false }, }) local MainTab = Window:CreateTab("Main") local InfoTab = Window:CreateTab("Info") local ServerButtons = {} InfoTab:CreateSection("Script Information") InfoTab:CreateLabel("Remade By: ChatGPT") InfoTab:CreateLabel("UI: docs.sirius.menu/rayfield") InfoTab:CreateLabel("OriginalScript: https://scriptblox.com/script/Universal-Script-Low-Server-Finder-GUI-30660") local function fetchServers(cursor) local success, data = pcall(function() local url = string.format("https://games.roblox.com/v1/games/%d/servers/Public?sortOrder=Asc&limit=100", game.PlaceId) if cursor then url = url .. "&cursor=" .. cursor end local response = requestFunc({ Url = url, Method = "GET" }) return response and response.Body and HttpService:JSONDecode(response.Body) or nil end) return success and data or nil end local function createServerButton(server) if ServerButtons[server.id] then return end local button = MainTab:CreateButton({ Name = string.format("👥 %d/%d | Server ID: %s", server.playing, server.maxPlayers, server.id), Callback = function() TeleportService:TeleportToPlaceInstance(game.PlaceId, server.id, LocalPlayer) end }) ServerButtons[server.id] = button end local function loadServers() task.spawn(function() local cursor, servers = nil, {} repeat local data = fetchServers(cursor) if data and data.data then for _, server in ipairs(data.data) do if server.playing < server.maxPlayers then table.insert(servers, server) end end cursor = data.nextPageCursor else break end until not cursor table.sort(servers, function(a, b) return a.playing < b.playing end) for _, server in ipairs(servers) do createServerButton(server) end end) end MainTab:CreateButton({ Name = "🔄 Refresh Servers", Callback = function() task.spawn(function() for _, button in pairs(ServerButtons) do button:Destroy() end ServerButtons = {} loadServers() end) end }) if IsMobile then Window:Toggle() end loadServers()