Apprendre
Classe de moteur
Team

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.


Résumé
Méthodes
Membres hérités
Échantillons de code
Rééquilibrage d'équipe simple
local Teams = game:GetService("Teams")
-- créer deux équipes
local redTeam = Instance.new("Team")
redTeam.TeamColor = BrickColor.new("Rouge vif")
redTeam.AutoAssignable = true
redTeam.Name = "Équipe Rouge"
redTeam.Parent = Teams
local blueTeam = Instance.new("Team")
blueTeam.TeamColor = BrickColor.new("Bleu vif")
blueTeam.AutoAssignable = true
blueTeam.Name = "Équipe Bleue"
blueTeam.Parent = Teams
-- commencer à compter le nombre de joueurs dans chaque équipe
local numberRed, numberBlue = 0, 0
local function playerAdded(team)
-- augmenter le nombre de l'équipe de 1
if team == redTeam then
numberRed = numberRed + 1
elseif team == blueTeam then
numberBlue = numberBlue + 1
end
end
local function playerRemoved(team)
-- diminuer le nombre de l'équipe de 1
if team == redTeam then
numberRed = numberRed - 1
elseif team == blueTeam then
numberBlue = numberBlue - 1
end
-- vérifier si les équipes sont déséquilibrées
local bigTeam, smallTeam = nil, nil
if (numberRed - numberBlue) > 2 then
bigTeam = redTeam
smallTeam = blueTeam
elseif (numberBlue - numberRed) > 2 then
bigTeam = blueTeam
smallTeam = redTeam
end
if bigTeam then
-- choisir un joueur au hasard
local playerList = bigTeam:GetPlayers()
local player = playerList[math.random(1, #playerList)]
-- vérifier que le joueur existe
if player then
-- changer l'équipe du joueur
player.TeamColor = smallTeam.TeamColor
-- faire réapparaître le joueur
player:LoadCharacterAsync()
end
end
end
-- écouter les joueurs ajoutés / retirés
blueTeam.PlayerAdded:Connect(function(_player)
playerAdded(blueTeam)
end)
blueTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(blueTeam)
end)
redTeam.PlayerAdded:Connect(function(_player)
playerAdded(redTeam)
end)
redTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(redTeam)
end)
Contrôle de Tirs Amicaux
local Players = game:GetService("Players")
function checkTeamKill(playerAttack, playerVictim)
if playerAttack.Team ~= playerVictim.Team or playerAttack.Neutral or playerVictim.Neutral then
return false
end
return true
end
local players = Players:GetPlayers()
checkTeamKill(players[1], players[2])
Porte Équipe Seulement
local Players = game:GetService("Players")
local door = Instance.new("Part")
door.Anchored = true
door.Size = Vector3.new(7, 10, 1)
door.Position = Vector3.new(0, 5, 0)
door.Parent = workspace
local debounce = false
door.Touched:Connect(function(hit)
if not debounce then
debounce = true
if hit then
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player and player.TeamColor == BrickColor.new("Bright red") then
door.Transparency = 0.5
door.CanCollide = false
task.wait(3)
door.Transparency = 0
door.CanCollide = true
end
end
task.wait(0.5)
debounce = false
end
end)
Rééquilibrage d'équipe avec intégration de groupe
local Teams = game:GetService("Teams")
local Players = game:GetService("Players")
local SocialService = game:GetService("SocialService")
local redTeam = Instance.new("Team")
redTeam.Name = "Équipe Rouge"
redTeam.TeamColor = BrickColor.Red()
redTeam.AutoAssignable = false
redTeam.Parent = Teams
local blueTeam = Instance.new("Team")
blueTeam.Name = "Équipe Bleue"
blueTeam.TeamColor = BrickColor.Blue()
blueTeam.AutoAssignable = false
blueTeam.Parent = Teams
local function assignPlayerToTeam(player)
local partyId = player.PartyId
if partyId == "" then
assignBalancedTeam(player)
return
end
local teams = { redTeam, blueTeam }
local matchingTeam = nil
local partyPlayers = SocialService:GetPlayersByPartyId(partyId)
for _, partyPlayer in partyPlayers do
if partyPlayer ~= player and table.find(teams, partyPlayer.Team) then
matchingTeam = partyPlayer.Team
break
end
end
if matchingTeam then
player.Team = matchingTeam
player.TeamColor = matchingTeam.TeamColor
else
assignBalancedTeam(player)
end
end
function assignBalancedTeam(player)
local redCount = #redTeam:GetPlayers()
local blueCount = #blueTeam:GetPlayers()
local chosenTeam = redCount <= blueCount and redTeam or blueTeam
player.Team = chosenTeam
player.TeamColor = chosenTeam.TeamColor
end
local function groupPlayersByParty()
local seenPartyIds = {}
local groupedPlayers = {}
for _, player in Players:GetPlayers() do
if player.PartyId == "" then
table.insert(groupedPlayers, { player })
elseif not table.find(seenPartyIds, player.PartyId) then
table.insert(seenPartyIds, player.PartyId)
local partyPlayers = SocialService:GetPlayersByPartyId(player.PartyId)
table.insert(groupedPlayers, partyPlayers)
end
end
return groupedPlayers
end
-- Appelez cette fonction pour rééquilibrer les équipes
local function rebalanceTeams()
local groups = groupPlayersByParty()
table.sort(groups, function(a, b)
return #a > #b
end)
for _, player in Players:GetPlayers() do
player.Team = nil
end
for _, group in groups do
local redCount = #redTeam:GetPlayers()
local blueCount = #blueTeam:GetPlayers()
local bestTeam
if redCount <= blueCount then
bestTeam = redTeam
else
bestTeam = blueTeam
end
for _, player in group do
player.Team = bestTeam
player.TeamColor = bestTeam.TeamColor
end
end
for _, player in Players:GetPlayers() do
player:LoadCharacterAsync()
end
end
Players.PlayerAdded:Connect(function(player)
assignPlayerToTeam(player)
player:LoadCharacterAsync()
player:GetPropertyChangedSignal("PartyId"):Connect(function()
if player.PartyId ~= "" then
assignPlayerToTeam(player)
end
end)
end)

Référence API
Propriétés
AutoAssignable
Lecture parallèle
Capacités : Players
Team.AutoAssignable:boolean
Échantillons de code
Rééquilibrage d'équipe simple
local Teams = game:GetService("Teams")
-- créer deux équipes
local redTeam = Instance.new("Team")
redTeam.TeamColor = BrickColor.new("Rouge vif")
redTeam.AutoAssignable = true
redTeam.Name = "Équipe Rouge"
redTeam.Parent = Teams
local blueTeam = Instance.new("Team")
blueTeam.TeamColor = BrickColor.new("Bleu vif")
blueTeam.AutoAssignable = true
blueTeam.Name = "Équipe Bleue"
blueTeam.Parent = Teams
-- commencer à compter le nombre de joueurs dans chaque équipe
local numberRed, numberBlue = 0, 0
local function playerAdded(team)
-- augmenter le nombre de l'équipe de 1
if team == redTeam then
numberRed = numberRed + 1
elseif team == blueTeam then
numberBlue = numberBlue + 1
end
end
local function playerRemoved(team)
-- diminuer le nombre de l'équipe de 1
if team == redTeam then
numberRed = numberRed - 1
elseif team == blueTeam then
numberBlue = numberBlue - 1
end
-- vérifier si les équipes sont déséquilibrées
local bigTeam, smallTeam = nil, nil
if (numberRed - numberBlue) > 2 then
bigTeam = redTeam
smallTeam = blueTeam
elseif (numberBlue - numberRed) > 2 then
bigTeam = blueTeam
smallTeam = redTeam
end
if bigTeam then
-- choisir un joueur au hasard
local playerList = bigTeam:GetPlayers()
local player = playerList[math.random(1, #playerList)]
-- vérifier que le joueur existe
if player then
-- changer l'équipe du joueur
player.TeamColor = smallTeam.TeamColor
-- faire réapparaître le joueur
player:LoadCharacterAsync()
end
end
end
-- écouter les joueurs ajoutés / retirés
blueTeam.PlayerAdded:Connect(function(_player)
playerAdded(blueTeam)
end)
blueTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(blueTeam)
end)
redTeam.PlayerAdded:Connect(function(_player)
playerAdded(redTeam)
end)
redTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(redTeam)
end)

AutoColorCharacters
Déprécié

Score
Déprécié

TeamColor
Lecture parallèle
Capacités : Players
Team.TeamColor:BrickColor
Échantillons de code
Porte Équipe Seulement
local Players = game:GetService("Players")
local door = Instance.new("Part")
door.Anchored = true
door.Size = Vector3.new(7, 10, 1)
door.Position = Vector3.new(0, 5, 0)
door.Parent = workspace
local debounce = false
door.Touched:Connect(function(hit)
if not debounce then
debounce = true
if hit then
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player and player.TeamColor == BrickColor.new("Bright red") then
door.Transparency = 0.5
door.CanCollide = false
task.wait(3)
door.Transparency = 0
door.CanCollide = true
end
end
task.wait(0.5)
debounce = false
end
end)

Méthodes
GetPlayers
Écrire en parallèle
Capacités : Players
Team:GetPlayers():{Player}
Retours
Échantillons de code
Équipes ObtenirÉquipes
local Teams = game:GetService("Teams")
local teams = Teams:GetTeams()
for _, team in pairs(teams) do
local players = team:GetPlayers()
print("Équipe", team.Name, "a", #players, "joueurs")
end

Événements
PlayerAdded
Capacités : Players
Team.PlayerAdded(player:Player):RBXScriptSignal
Paramètres
player:Player
Échantillons de code
Rééquilibrage d'équipe simple
local Teams = game:GetService("Teams")
-- créer deux équipes
local redTeam = Instance.new("Team")
redTeam.TeamColor = BrickColor.new("Rouge vif")
redTeam.AutoAssignable = true
redTeam.Name = "Équipe Rouge"
redTeam.Parent = Teams
local blueTeam = Instance.new("Team")
blueTeam.TeamColor = BrickColor.new("Bleu vif")
blueTeam.AutoAssignable = true
blueTeam.Name = "Équipe Bleue"
blueTeam.Parent = Teams
-- commencer à compter le nombre de joueurs dans chaque équipe
local numberRed, numberBlue = 0, 0
local function playerAdded(team)
-- augmenter le nombre de l'équipe de 1
if team == redTeam then
numberRed = numberRed + 1
elseif team == blueTeam then
numberBlue = numberBlue + 1
end
end
local function playerRemoved(team)
-- diminuer le nombre de l'équipe de 1
if team == redTeam then
numberRed = numberRed - 1
elseif team == blueTeam then
numberBlue = numberBlue - 1
end
-- vérifier si les équipes sont déséquilibrées
local bigTeam, smallTeam = nil, nil
if (numberRed - numberBlue) > 2 then
bigTeam = redTeam
smallTeam = blueTeam
elseif (numberBlue - numberRed) > 2 then
bigTeam = blueTeam
smallTeam = redTeam
end
if bigTeam then
-- choisir un joueur au hasard
local playerList = bigTeam:GetPlayers()
local player = playerList[math.random(1, #playerList)]
-- vérifier que le joueur existe
if player then
-- changer l'équipe du joueur
player.TeamColor = smallTeam.TeamColor
-- faire réapparaître le joueur
player:LoadCharacterAsync()
end
end
end
-- écouter les joueurs ajoutés / retirés
blueTeam.PlayerAdded:Connect(function(_player)
playerAdded(blueTeam)
end)
blueTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(blueTeam)
end)
redTeam.PlayerAdded:Connect(function(_player)
playerAdded(redTeam)
end)
redTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(redTeam)
end)

PlayerRemoved
Capacités : Players
Team.PlayerRemoved(player:Player):RBXScriptSignal
Paramètres
player:Player
Échantillons de code
Rééquilibrage d'équipe simple
local Teams = game:GetService("Teams")
-- créer deux équipes
local redTeam = Instance.new("Team")
redTeam.TeamColor = BrickColor.new("Rouge vif")
redTeam.AutoAssignable = true
redTeam.Name = "Équipe Rouge"
redTeam.Parent = Teams
local blueTeam = Instance.new("Team")
blueTeam.TeamColor = BrickColor.new("Bleu vif")
blueTeam.AutoAssignable = true
blueTeam.Name = "Équipe Bleue"
blueTeam.Parent = Teams
-- commencer à compter le nombre de joueurs dans chaque équipe
local numberRed, numberBlue = 0, 0
local function playerAdded(team)
-- augmenter le nombre de l'équipe de 1
if team == redTeam then
numberRed = numberRed + 1
elseif team == blueTeam then
numberBlue = numberBlue + 1
end
end
local function playerRemoved(team)
-- diminuer le nombre de l'équipe de 1
if team == redTeam then
numberRed = numberRed - 1
elseif team == blueTeam then
numberBlue = numberBlue - 1
end
-- vérifier si les équipes sont déséquilibrées
local bigTeam, smallTeam = nil, nil
if (numberRed - numberBlue) > 2 then
bigTeam = redTeam
smallTeam = blueTeam
elseif (numberBlue - numberRed) > 2 then
bigTeam = blueTeam
smallTeam = redTeam
end
if bigTeam then
-- choisir un joueur au hasard
local playerList = bigTeam:GetPlayers()
local player = playerList[math.random(1, #playerList)]
-- vérifier que le joueur existe
if player then
-- changer l'équipe du joueur
player.TeamColor = smallTeam.TeamColor
-- faire réapparaître le joueur
player:LoadCharacterAsync()
end
end
end
-- écouter les joueurs ajoutés / retirés
blueTeam.PlayerAdded:Connect(function(_player)
playerAdded(blueTeam)
end)
blueTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(blueTeam)
end)
redTeam.PlayerAdded:Connect(function(_player)
playerAdded(redTeam)
end)
redTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(redTeam)
end)

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.