AUTO JOINER
Key RequiredUniversal

AUTO JOINER

Universal Scriptzypto15zypto15 3.2K views 4.9K executesUpdated Apr 13, 2026
2.5/ 5(2 votes)
1150% Positive
Lua Script•114 lines (3232 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]

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 ")

Features & Information

--[[ WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]] 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 ")

Community Comments (4)

guyenjoyerguyenjoyerApr 13, 2026

dont work

diasarthur550diasarthur550Apr 13, 2026

It doesn't work. I'm sad about this because the script creators promise to deliver what's already in the script, but it doesn't. What they created was supposed to work, but it doesn't. I don't know why this is happening, I just want to know, that's all ;-;.

Replying to @diasarthur550
nikitakalitin2nikitakalitin2Apr 13, 2026

@diasarthur550 where are the creds?

Replying to @nikitakalitin2
diasarthur550diasarthur550Apr 13, 2026

@nikitakalitin2 I don't know what this "creds" is, but the script doesn't work. I don't know why, and it would be really OP if it worked, that's all ;-;

More Scripts for Universal Scripts