local g = Instance.new("ScreenGui", game.CoreGui) local f = Instance.new("Frame", g) f.Size = UDim2.new(0, 260, 0, 150) f.Position = UDim2.new(0.5, -130, 0.4, 0) f.Active = true f.Draggable = true f.BackgroundColor3 = Color3.fromRGB(30,30,30) local t = Instance.new("TextLabel", f) t.Size = UDim2.new(1,0,0,30) t.BackgroundTransparency = 1 t.Text = "Join Player (Username)" t.Font = Enum.Font.GothamBold t.TextScaled = true t.TextColor3 = Color3.fromRGB(255,255,255) local box = Instance.new("TextBox", f) box.Size = UDim2.new(1,-20,0,35) box.Position = UDim2.new(0,10,0,40) box.PlaceholderText = "Enter Username..." box.Font = Enum.Font.Gotham box.Text = "" box.TextScaled = true box.BackgroundColor3 = Color3.fromRGB(50,50,50) box.TextColor3 = Color3.fromRGB(255,255,255) local btn = Instance.new("TextButton", f) btn.Size = UDim2.new(1,-20,0,40) btn.Position = UDim2.new(0,10,0,90) btn.Text = "JOIN" btn.Font = Enum.Font.GothamBold btn.TextScaled = true btn.BackgroundColor3 = Color3.fromRGB(0,170,255) btn.TextColor3 = Color3.fromRGB(255,255,255) -- SERVICES local HttpService = game:GetService("HttpService") local TeleportService = game:GetService("TeleportService") local Players = game:GetService("Players") local placeId = game.PlaceId -- Convert Username → UserId local function UsernameToID(name) local r = game:HttpGet("https://api.roblox.com/users/get-by-username?username="..name) local data = HttpService:JSONDecode(r) if data and data.Id then return data.Id end return nil end local function GetPublicServers() local servers = {} local cursor = "" repeat local url = "https://games.roblox.com/v1/games/"..placeId.."/servers/Public?limit=100&cursor="..cursor local response = game:HttpGet(url) local data = HttpService:JSONDecode(response) for _,sv in pairs(data.data) do table.insert(servers, sv) end cursor = data.nextPageCursor or "" until cursor == "" or cursor == nil return servers end local function Join(username) btn.Text = "Checking..." btn.BackgroundColor3 = Color3.fromRGB(200,150,0) local userId = UsernameToID(username) if not userId then btn.Text = "Invalid Username" btn.BackgroundColor3 = Color3.fromRGB(255,60,60) task.wait(2) btn.Text = "JOIN" btn.BackgroundColor3 = Color3.fromRGB(0,170,255) return end local servers = GetPublicServers() for _,sv in pairs(servers) do for _,plr in pairs(sv.playerIds) do if plr == userId then btn.Text = "Joining..." btn.BackgroundColor3 = Color3.fromRGB(0,200,50) TeleportService:TeleportToPlaceInstance(placeId, sv.id, Players.LocalPlayer) return end end end btn.Text = "Not Found/Public" btn.BackgroundColor3 = Color3.fromRGB(255,60,60) task.wait(2) btn.Text = "JOIN" btn.BackgroundColor3 = Color3.fromRGB(0,170,255) end btn.MouseButton1Click:Connect(function() if box.Text ~= "" then Join(box.Text) end end) print("working ")