Chat de Voz é um recurso que permite comunicação falada em tempo real entre você e outros jogadores. Ele está disponível apenas para lugares que suportam um máximo de 100 jogadores.

Habilitar Chat de Voz
O Chat de Voz é habilitado por padrão para usuários verificados com mais de 13 anos em todos os novos jogos com um máximo de 100 jogadores. Habilitar o Chat de Voz é necessário para usar a API de fala para texto.
Para ativar a voz em jogos existentes ou desabilitá-la para novos:
- Abra seu jogo no Studio.
- Abra Arquivo ⟩ Configurações da Experiência.
- Navegue até a aba Comunicação no lado esquerdo da janela.
- Ative Habilitar Chat de Voz para a configuração desejada.
- OPCIONALPara uma melhor comunicação entre os jogadores dentro do seu jogo, ative Habilitar Câmera para permitir que jogadores elegíveis animem seu avatar com seus movimentos.
- Publique o lugar para salvar as alterações.
Definir número máximo de jogadores
Se você definiu anteriormente o número máximo de jogadores em um lugar para mais de 100, precisará reduzi-lo para suportar o Chat de Voz.
- Selecione o lugar desejado e, em seguida, navegue até Acesso na coluna da esquerda.
- Para Contagem Máxima de Visitantes, insira um número menor ou igual a 100.
- Clique no botão Salvar Alterações.
Quando você atualiza o número máximo de jogadores em um lugar para menos de 100, pode haver servidores já configurados para um número diferente e maior. Como esses servidores não suportarão o Chat de Voz, é recomendável reiniciar servidores.
Personalizar comportamento da voz
O Chat de Voz é baseado em proximidade por padrão, ajustando o volume dos participantes com base em quão próximos eles estão uns dos outros. No entanto, você pode definir UseAudioApi para Enabled para ter controle sobre como as vozes são configuradas e usadas em seu jogo.
Se VoiceChatService não aparecer já:
Clique com o botão direito na janela Explorer e selecione Mostrar Serviços… no menu de contexto.
Selecione VoiceChatService na janela pop-up e clique em Inserir. O serviço aparecerá na hierarquia do Explorer.

Com VoiceChatService selecionado, certifique-se de que UseAudioApi esteja definido como Enabled na janela Propriedades. Isso pode já ter sido feito para você.
Baseado em equipe
Para implementar um chat baseado em Team onde apenas os membros da equipe podem ouvir uns aos outros, você pode usar o seguinte Script dentro de ServerScriptService:
local Teams = game:GetService("Teams")
local function findAudioInput(forPlayer : Player) : AudioDeviceInput?
-- Assume que há apenas um AudioDeviceInput por jogador, parentado ao objeto Player
-- Isso é fornecido para você se VoiceChatService.EnableDefaultVoice for verdadeiro
-- Pode precisar ser reestruturado para generalidade se seu lugar colocar objetos AudioDeviceInput em outro lugar
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
-- Permitir que apenas os membros da equipe se ouçam
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)Não espacial
Dependendo das necessidades do seu jogo, pode fazer mais sentido ouvir outros com volume igual, independentemente de sua localização geográfica. Se você desabilitar o Chat de Voz padrão, pode então implementar o Chat de Voz não espacial através do seguinte Script dentro de 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
-- Configurar um controle deslizante de volume global para a voz de todos
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
-- Roteia a entrada do microfone de cada novo jogador para o controle deslizante 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)Desabilitar por lugar
Se você não quiser habilitar o Chat de Voz para todos os lugares dentro do seu jogo, pode desabilitá-lo em lugares específicos que, de outra forma, seriam elegíveis para voz.
Para desabilitar o Chat de Voz para um lugar específico dentro de um jogo:
Clique com o botão direito na janela Explorer e selecione Mostrar Serviços… no menu de contexto.
Selecione VoiceChatService na janela pop-up e clique em Inserir. O serviço aparecerá na hierarquia do Explorer.

Com VoiceChatService selecionado, desabilite EnableDefaultVoice na janela Propriedades.
Publique o lugar para salvar as alterações e reinicie os servidores para garantir que a mudança tenha efeito para todos os servidores que estão atualmente executando seu jogo.
Verificar status
Você pode verificar se um jogador habilitou o Chat de Voz chamando IsVoiceEnabledForUserIdAsync() em um LocalScript, ou em um Script com RunContext definido como 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 de Voz habilitado!")
end