Chat de Voz es una función que permite la comunicación hablada en tiempo real entre tú y otros jugadores. Solo está disponible para lugares que soportan un máximo de 100 jugadores.

Habilitar Chat de Voz
El Chat de Voz está habilitado por defecto para los usuarios verificados de 13 años o más en todos los nuevos juegos con un máximo de 100 jugadores. Habilitar el Chat de Voz es necesario para usar la API de conversión de voz a texto.
Para activar la voz en juegos existentes o deshabilitarla para nuevos:
- Abre tu juego en Studio.
- Abre Archivo ⟩ Configuración de la Experiencia.
- Navega a la pestaña Comunicación en el lado izquierdo de la ventana.
- Cambia Habilitar Chat de Voz a tu configuración deseada.
- OPCIONALPara una mejor comunicación entre los jugadores dentro de tu juego, activa Habilitar Cámara para permitir que los jugadores elegibles animen su avatar con su movimiento.
- Publica el lugar para guardar los cambios.
Establecer el número máximo de jugadores
Si anteriormente estableciste el número máximo de jugadores en un lugar a más de 100, necesitarás reducirlo para soportar el Chat de Voz.
- Selecciona el lugar deseado y luego navega a Acceso en la columna izquierda.
- Para Número Máximo de Visitantes, ingresa un número menor o igual a 100.
- Haz clic en el botón Guardar Cambios.
Cuando actualizas el número máximo de jugadores en un lugar a menos de 100, puede haber servidores ya configurados a un número diferente y más alto. Dado que esos servidores no soportarán el Chat de Voz, se recomienda reiniciar servidores.
Personalizar el comportamiento de la voz
El Chat de Voz es basado en proximidad por defecto, ajustando el volumen de los participantes según cuán cerca estén unos de otros. Sin embargo, puedes establecer UseAudioApi a Enabled para tomar control sobre cómo se configuran y utilizan las voces en tu juego.
Si VoiceChatService no aparece ya:
Haz clic derecho en la ventana de Explorador y selecciona Mostrar Servicios… en el menú contextual.
Selecciona VoiceChatService en la ventana emergente y haz clic en Insertar. El servicio aparecerá en la jerarquía de Explorador.

Con VoiceChatService seleccionado, asegúrate de que UseAudioApi esté configurado a Enabled en la ventana de Propiedades. Esto puede que ya esté hecho por ti.
Basado en equipos
Para implementar un chat basado en Team donde solo los compañeros de equipo pueden escucharse entre sí, puedes usar el siguiente Script dentro de ServerScriptService:
local Teams = game:GetService("Teams")
local function findAudioInput(forPlayer : Player) : AudioDeviceInput?
-- Asume que hay solo un AudioDeviceInput por jugador, parentado al objeto Player
-- Esto se proporciona para ti si VoiceChatService.EnableDefaultVoice es verdadero
-- Puede necesitar ser reestructurado para generalidad si tu lugar coloca objetos AudioDeviceInput en otro 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
-- Solo permitir que los compañeros de equipo se escuchen entre sí
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)No espacial
Dependiendo de las necesidades de tu juego, podría tener más sentido escuchar a otros con el mismo volumen, independientemente de su ubicación geográfica. Si deshabilitas el Chat de Voz por defecto, puedes implementar un Chat de Voz no espacial a través del siguiente 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
-- Configura un control deslizante de volumen global para la 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
-- Rutea la entrada del micrófono de cada nuevo jugador al control deslizante de volumen 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)Deshabilitar por lugar
Si no deseas habilitar el Chat de Voz para cada lugar dentro de tu juego, puedes deshabilitarlo dentro de lugares específicos que de otro modo serían elegibles para voz.
Para deshabilitar el Chat de Voz para un lugar específico dentro de un juego:
Haz clic derecho en la ventana de Explorador y selecciona Mostrar Servicios… en el menú contextual.
Selecciona VoiceChatService en la ventana emergente y haz clic en Insertar. El servicio aparecerá en la jerarquía de Explorador.

Con VoiceChatService seleccionado, desactiva EnableDefaultVoice en la ventana de Propiedades.
Publica el lugar para guardar los cambios y reinicia servidores para asegurar que el cambio tenga efecto en todos los servidores que actualmente están ejecutando tu juego.
Comprobar estado
Puedes comprobar si un jugador ha habilitado el Chat de Voz llamando a IsVoiceEnabledForUserIdAsync() en un LocalScript, o en un Script con RunContext configurado a 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