Le chat vocal est une fonctionnalité permettant une communication verbale en temps réel entre vous et d'autres joueurs. Il n'est disponible que pour les lieux qui supportent un maximum de 100 joueurs.

Activer le chat vocal
Le chat vocal est activé par défaut pour les utilisateurs vérifiés de 13 ans et plus dans tous les nouveaux jeux avec un maximum de 100 joueurs. L'activation du chat vocal est nécessaire pour utiliser l'API de conversion de la parole en texte.
Pour activer la voix pour les jeux existants ou la désactiver pour les nouveaux :
- Ouvrez votre jeu dans Studio.
- Ouvrez Fichier ⟩ Paramètres de l'expérience.
- Accédez à l'onglet Communication sur le côté gauche de la fenêtre.
- Basculez Activer le chat vocal sur le paramètre souhaité.
- OPTIONNELPour une meilleure communication entre les joueurs dans votre jeu, activez Activer la caméra pour permettre aux joueurs éligibles d'animer leur avatar avec leurs mouvements.
- Publiez le lieu pour enregistrer les modifications.
Définir le nombre maximum de joueurs
Si vous avez précédemment défini le nombre maximum de joueurs dans un lieu à plus de 100, vous devrez le réduire pour prendre en charge le chat vocal.
- Sélectionnez le lieu souhaité puis accédez à Accès dans la colonne de gauche.
- Pour Nombre maximum de visiteurs, entrez un nombre inférieur ou égal à 100.
- Cliquez sur le bouton Enregistrer les modifications.
Lorsque vous mettez à jour le nombre maximum de joueurs dans un lieu à moins de 100, il peut y avoir des serveurs déjà configurés à un nombre différent et plus élevé. Comme ces serveurs ne prendront pas en charge le chat vocal, il est recommandé de redémarrer les serveurs.
Personnaliser le comportement vocal
Le chat vocal est basé sur la proximité par défaut, ajustant le volume des participants en fonction de leur proximité les uns par rapport aux autres. Cependant, vous pouvez définir UseAudioApi sur Enabled pour prendre le contrôle de la façon dont les voix sont configurées et utilisées dans votre jeu.
Si VoiceChatService n'apparaît pas déjà :
Cliquez avec le bouton droit dans la fenêtre Explorateur et sélectionnez Afficher les services… dans le menu contextuel.
Sélectionnez VoiceChatService dans la fenêtre contextuelle et cliquez sur Insérer. Le service apparaît dans la hiérarchie de l'Explorateur.

Avec VoiceChatService sélectionné, assurez-vous que UseAudioApi est défini sur Enabled dans la fenêtre Propriétés. Cela peut déjà être fait pour vous.
Basé sur l'équipe
Pour mettre en œuvre un chat basé sur Team où seuls les coéquipiers peuvent s'entendre, vous pouvez utiliser le Script suivant dans ServerScriptService :
local Teams = game:GetService("Teams")
local function findAudioInput(forPlayer : Player) : AudioDeviceInput?
-- Supposons qu'il n'y ait qu'un seul AudioDeviceInput par joueur, parenté à l'objet Player
-- Cela est fourni pour vous si VoiceChatService.EnableDefaultVoice est vrai
-- Peut devoir être retravaillé pour la généralité si votre lieu place des objets AudioDeviceInput ailleurs
return forPlayer:FindFirstChildWhichIsA("AudioDeviceInput")
end
local function onTeamChanged(player : Player)
local team = player.Team
if not team then return end
local device = findAudioInput(player)
if not device then return end
-- Permettre uniquement aux coéquipiers de s'entendre
device.AccessType = Enum.AccessModifierType.Allow
local allowed = {}
for _, player : Player in team:GetPlayers() do
table.insert(allowed, player.UserId)
end
device:SetUserIdAccessList(allowed)
end
local function onTeamAdded(team : Team)
team.PlayerAdded:Connect(onTeamChanged)
team.PlayerRemoved:Connect(onTeamChanged)
end
for _, team : Team in Teams:GetTeams() do
onTeamAdded(team)
end
Teams.ChildAdded:Connect(function(child : Instance)
if child:IsA("Team") then
onTeamAdded(child)
end
end)Non-spatial
Selon les besoins de votre jeu, il peut être plus logique d'entendre les autres avec un volume égal, peu importe leur emplacement géographique. Si vous désactivez le chat vocal par défaut, vous pouvez alors mettre en œuvre un chat vocal non spatial à travers le Script suivant dans ServerScriptService :
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function wireUp(source : Instance, target : Instance)
local wire = Instance.new("Wire")
wire.SourceInstance = source
wire.TargetInstance = target
wire.Parent = source
end
-- Configurer un curseur de volume global pour la voix de tout le monde
local volumeSlider = Instance.new("AudioFader", Workspace)
local output = Instance.new("AudioDeviceOutput", Workspace)
wireUp(volumeSlider, output)
local function onPlayerAdded(player : Player)
local device = Instance.new("AudioDeviceInput", player)
device.Player = player
-- Diriger l'entrée du microphone de chaque nouveau joueur vers le curseur de volume global
wireUp(device, volumeSlider)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onDescendantAdded(descendant : Instance)
if descendant:IsA("Wire") then
descendant:Destroy()
end
end
for _, descendant in player:GetDescendants() do
onDescendantAdded(descendant)
end
player.DescendantAdded:Connect(onDescendantAdded)Désactiver par lieu
Si vous ne souhaitez pas activer le chat vocal pour chaque lieu de votre jeu, vous pouvez le désactiver dans des lieux spécifiques qui seraient autrement éligibles pour le chat vocal.
Pour désactiver le chat vocal pour un lieu spécifique dans un jeu :
Cliquez avec le bouton droit dans la fenêtre Explorateur et sélectionnez Afficher les services… dans le menu contextuel.
Sélectionnez VoiceChatService dans la fenêtre contextuelle et cliquez sur Insérer. Le service apparaît dans la hiérarchie de l'Explorateur.

Avec VoiceChatService sélectionné, désactivez EnableDefaultVoice dans la fenêtre Propriétés.
Publiez le lieu pour enregistrer les modifications et redémarrez les serveurs pour vous assurer que le changement prend effet pour tous les serveurs actuellement en cours d'exécution de votre jeu.
Vérifier l'état
Vous pouvez vérifier si un joueur a activé le chat vocal en appelant IsVoiceEnabledForUserIdAsync() dans un LocalScript, ou dans un Script avec RunContext défini sur Enum.RunContext.Client.
local Players = game:GetService("Players")
local VoiceChatService = game:GetService("VoiceChatService")
local localPlayer = Players.LocalPlayer
local success, enabled = pcall(function()
return VoiceChatService:IsVoiceEnabledForUserIdAsync(localPlayer.UserId)
end)
if success and enabled then
print("Chat vocal activé !")
end