Teaming assigning+team order script not working

I have been trying so long but the script just won’t work. its a script placed in ServerScriptService

local groupId = 5901406 -- Replace with your actual group ID

local function assignPlayerToTeam(player, teamName)
    local teamToAssign = game:GetService("Teams"):FindFirstChild(teamName)
    if teamToAssign then
        player.Team = teamToAssign
        print(player.Name, "assigned to team:", teamName)
    else
        print("Team not found:", teamName)
    end
end

game.Players.PlayerAdded:Connect(function(player)
    local groupRank = player:GetRoleInGroup(groupId)
    print(player.Name, "Group Rank:", groupRank)

    if groupRank >= 0 and groupRank <= 9 or groupRank == 249 then
        assignPlayerToTeam(player, "[-] Customer")
    elseif groupRank >= 10 and groupRank <= 20 then
        assignPlayerToTeam(player, "[LR] Staff Barista")
    elseif groupRank >= 119 and groupRank <= 123 then
        assignPlayerToTeam(player, "[MR] Manager")
    elseif groupRank == 248 or groupRank == 253 then
        assignPlayerToTeam(player, "[HR] Supervisor")
    elseif groupRank == 252 then
        assignPlayerToTeam(player, "[DEV] Game Developer")
    elseif groupRank >= 247 and groupRank <= 255 then
        assignPlayerToTeam(player, "[SHR] Executive")
    end
end)

-- Set custom order for teams
local teamOrder = {
    ["[-] Customer"] = 1,
    "[LR] Staff Barista"] = 2,
    "[MR] Manager"] = 3,
    "[HR] Supervisor"] = 4,
    "[DEV] Game Developer"] = 5,
    "[SHR] Executive"] = 6,
}

local teams = game:GetService("Teams"):GetChildren()
table.sort(teams, function(a, b)
    local orderA = teamOrder[a.Name] or 0
    local orderB = teamOrder[b.Name] or 0
    return orderA < orderB
end)

-- Update the TeamNumber property based on the sorted order
for index, team in ipairs(teams) do
    team.TeamNumber = index
end

1 Like

Any error outputs from the console? Check for proper naming of tems in the teams folder. You can also try to debug it with prints, heres one I made:

local groupId = 5901406 -- Replace with your actual group ID

local function assignPlayerToTeam(player, teamName)
    local teamToAssign = game:GetService("Teams"):FindFirstChild(teamName)
    if teamToAssign then
        player.Team = teamToAssign
        print(player.Name .. " assigned to team " .. teamName)
    else
        print("Team not found: " .. teamName)
    end
end

game.Players.PlayerAdded:Connect(function(player)
    local groupRank = player:GetRoleInGroup(groupId)
    print(player.Name .. " Rank: " .. groupRank)

    if groupRank >= 0 and groupRank <= 9 or groupRank == 249 then
        assignPlayerToTeam(player, "[-] Customer")
    elseif groupRank >= 10 and groupRank <= 20 then
        assignPlayerToTeam(player, "[LR] Staff Barista")
    elseif groupRank >= 119 and groupRank <= 123 then
        assignPlayerToTeam(player, "[MR] Manager")
    elseif groupRank == 248 or groupRank == 253 then
        assignPlayerToTeam(player, "[HR] Supervisor")
    elseif groupRank == 252 then
        assignPlayerToTeam(player, "[DEV] Game Developer")
    elseif groupRank >= 247 and groupRank <= 255 then
        assignPlayerToTeam(player, "[SHR] Executive")
    else
        print(player.Name .. " did not meet rank conditions")
    end
end)

-- Set custom order for teams
local teamOrder = {
    ["[-] Customer"] = 1,
    ["[LR] Staff Barista"] = 2,
    ["[MR] Manager"] = 3,
    ["[HR] Supervisor"] = 4,
    ["[DEV] Game Developer"] = 5,
    ["[SHR] Executive"] = 6,
}

local teams = game:GetService("Teams"):GetChildren()
table.sort(teams, function(a, b)
    local orderA = teamOrder[a.Name] or 0
    local orderB = teamOrder[b.Name] or 0
    return orderA < orderB
end)

-- Update the TeamNumber property based on the sorted order
for index, team in ipairs(teams) do
    team.TeamNumber = index
    print("Team " .. team.Name .. " Order: " .. index)
end
1 Like