local TeleportService = game:GetService("TeleportService") local HttpService = game:GetService("HttpService") local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer -- --- UI CREATION --- local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "DeltaServerPanelUltimate" ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") ScreenGui.ResetOnSpawn = false local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 250, 0, 360) MainFrame.Position = UDim2.new(0.5, -125, 0.5, -180) MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Parent = ScreenGui local TopBar = Instance.new("Frame") TopBar.Size = UDim2.new(1, 0, 0, 40) TopBar.BackgroundColor3 = Color3.fromRGB(0, 85, 255) TopBar.BorderSizePixel = 0 TopBar.Parent = MainFrame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -40, 1, 0) Title.Position = UDim2.new(0, 10, 0, 0) Title.BackgroundTransparency = 1 Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 16 Title.Font = Enum.Font.GothamBold Title.Text = "Server Panel" Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = TopBar local MinimizeBtn = Instance.new("TextButton") MinimizeBtn.Size = UDim2.new(0, 40, 0, 40) MinimizeBtn.Position = UDim2.new(1, -40, 0, 0) MinimizeBtn.BackgroundTransparency = 1 MinimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) MinimizeBtn.TextSize = 20 MinimizeBtn.Font = Enum.Font.GothamBold MinimizeBtn.Text = "-" MinimizeBtn.Parent = TopBar local ContentFrame = Instance.new("Frame") ContentFrame.Size = UDim2.new(1, 0, 1, -40) ContentFrame.Position = UDim2.new(0, 0, 0, 40) ContentFrame.BackgroundTransparency = 1 ContentFrame.Parent = MainFrame local StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.new(1, -20, 0, 40) StatusLabel.Position = UDim2.new(0, 10, 0, 5) StatusLabel.BackgroundTransparency = 1 StatusLabel.TextColor3 = Color3.fromRGB(200, 200, 200) StatusLabel.TextSize = 12 StatusLabel.Font = Enum.Font.Gotham StatusLabel.TextWrapped = true StatusLabel.Text = "Ready to search..." StatusLabel.Parent = ContentFrame -- Function to create uniform buttons local function createButton(text, posY) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -20, 0, 40) btn.Position = UDim2.new(0, 10, 0, posY) btn.BackgroundColor3 = Color3.fromRGB(40, 40, 55) btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextSize = 13 btn.Font = Enum.Font.GothamSemibold btn.Text = text btn.Parent = ContentFrame return btn end -- Button Creation local BtnReconnect = createButton("Reconnect", 50) local BtnServerHop = createButton("Random Hop", 100) local BtnEmptyServer = createButton("Empty Server", 150) local BtnBestPing = createButton("Best Ping (Closest)", 200) local BtnNoobStats = createButton("Noob Server (Stats)", 250) -- --- FUNCTION LOGIC --- -- 1. Reconnect BtnReconnect.MouseButton1Click:Connect(function() StatusLabel.Text = "Reconnecting..." TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, LocalPlayer) end) -- 2. Random Hop BtnServerHop.MouseButton1Click:Connect(function() StatusLabel.Text = "Server hopping..." local success, res = pcall(function() local url = "https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Desc&limit=100" return HttpService:JSONDecode(game:HttpGet(url)) end) if success and res and res.data then for _, s in ipairs(res.data) do if s.id ~= game.JobId and s.playing < s.maxPlayers then TeleportService:TeleportToPlaceInstance(game.PlaceId, s.id, LocalPlayer) return end end end StatusLabel.Text = "Server not found." end) -- 3. Empty Server BtnEmptyServer.MouseButton1Click:Connect(function() StatusLabel.Text = "Searching for empty server..." local success, res = pcall(function() local url = "https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100" return HttpService:JSONDecode(game:HttpGet(url)) end) if success and res and res.data then for _, s in ipairs(res.data) do if s.id ~= game.JobId then TeleportService:TeleportToPlaceInstance(game.PlaceId, s.id, LocalPlayer) return end end end StatusLabel.Text = "No empty servers found." end) -- 4. Best Ping BtnBestPing.MouseButton1Click:Connect(function() StatusLabel.Text = "Searching for best ping..." local success, res = pcall(function() local url = "https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100" return HttpService:JSONDecode(game:HttpGet(url)) end) if success and res and res.data then local bestSrv = nil local minPing = 999 for _, s in ipairs(res.data) do if s.id ~= game.JobId and type(s.ping) == "number" and s.ping < minPing then minPing = s.ping bestSrv = s end end if bestSrv then TeleportService:TeleportToPlaceInstance(game.PlaceId, bestSrv.id, LocalPlayer) return end end StatusLabel.Text = "Error measuring pings." end) -- 5. Noob Server analyzing the Leaderboard BtnNoobStats.MouseButton1Click:Connect(function() StatusLabel.Text = "Evaluating server stats..." -- Calculates the average leaderboard stats in the current server local sumStats = 0 local totalPlayers = 0 for _, player in ipairs(Players:GetPlayers()) do local leaderstats = player:FindFirstChild("leaderstats") if leaderstats then for _, stat in ipairs(leaderstats:GetChildren()) do if stat:IsA("IntValue") or stat:IsA("NumberValue") then sumStats = sumStats + stat.Value totalPlayers = totalPlayers + 1 end end end end local average = totalPlayers > 0 and (sumStats / totalPlayers) or 0 -- If the average stats are low, this is already a noob server. If high, hops to find another. if average < 500 and totalPlayers > 0 then StatusLabel.Text = "You are in a noob server! (Average: " .. math.floor(average) .. ")" else StatusLabel.Text = "High stats. Searching for a new server..." local success, res = pcall(function() local url = "https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=50" return HttpService:JSONDecode(game:HttpGet(url)) end) if success and res and res.data then for _, s in ipairs(res.data) do if s.id ~= game.JobId and s.playing > 0 and s.playing <= 4 then TeleportService:TeleportToPlaceInstance(game.PlaceId, s.id, LocalPlayer) return end end end StatusLabel.Text = "Switching to fallback server..." -- Fallback hop if it doesn't find a very small one for _, s in ipairs(res.data) do if s.id ~= game.JobId then TeleportService:TeleportToPlaceInstance(game.PlaceId, s.id, LocalPlayer) return end end end end) -- --- UI UTILITIES --- MinimizeBtn.MouseButton1Click:Connect(function() ContentFrame.Visible = not ContentFrame.Visible MainFrame.Size = ContentFrame.Visible and UDim2.new(0, 250, 0, 360) or UDim2.new(0, 250, 0, 40) MinimizeBtn.Text = ContentFrame.Visible and "-" or "+" end) -- Draggable System (Touch and Mouse) local drag, dragStart, startPos TopBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then drag = true dragStart = input.Position startPos = MainFrame.Position end end) UserInputService.InputChanged:Connect(function(input) if drag and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then drag = false end end)