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. Para activar la voz en juegos existentes o deshabilitarla para nuevos:
- Abre tu juego en Studio.
- Abre Archivo ⟩ Configuración de Experiencia.
- Navega a la pestaña de Comunicación en el lado izquierdo de la ventana.
- Cambia el ajuste de Habilitar Chat de Voz a lo que desees.
- 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.
Al habilitar esta configuración, los usuarios elegibles de 13 años o más pueden optar por Chat de Voz dentro de tu juego. Habilitar Chat de Voz es necesario para usar la API de texto a voz.
Establecer número máximo de jugadores
Si previamente estableciste el número máximo de jugadores en un lugar a más de 100, necesitarás reducirlo para soportar Chat de Voz.
- En la navegación de la izquierda de la ventana de Configuración de Experiencia, selecciona Lugares. Se mostrarán todos los lugares dentro de tu juego.
- Haz clic en el botón ⋯ junto al lugar con más de 100 jugadores, luego selecciona Configurar Lugar.
- En el campo de Máx. Jugadores, ingresa cualquier número menor o igual a 100.
- Haz clic en el botón Guardar y luego en publicar para guardar los cambios.
Cuando actualizas el número máximo de jugadores en un lugar a menos de 100, puede que haya servidores ya configurados a un número diferente y más alto. Dado que esos servidores no soportarán Chat de Voz, se recomienda reiniciar servidores.
Personalizar comportamiento de voz
El Chat de Voz es basado en proximidad por defecto, ajustando el volumen de los participantes según qué tan cerca estén entre sí. Sin embargo, puedes establecer UseAudioApi en Enabled para tener 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 Explorer y selecciona Mostrar Servicios… del menú contextual.
Selecciona VoiceChatService en la ventana emergente y haz clic en Insertar. El servicio aparecerá en la jerarquía de Explorer.

Con VoiceChatService seleccionado, asegúrate de que UseAudioApi esté en Enabled en la ventana de Propiedades. Esto puede que ya se haya hecho por ti.
Basado en equipos
Para implementar un chat basado en Team donde solo los compañeros de equipo puedan escucharse entre sí, puedes usar el siguiente Script dentro de ServerScriptService:
Chat de Equipo
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 true
-- Puede que necesite 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
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 un volumen igual, sin importar 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:
Chat No-Proximidad
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
-- Dirige 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)
LocalScript
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 Explorer y selecciona Mostrar Servicios… del menú contextual.
Selecciona VoiceChatService en la ventana emergente y haz clic en Insertar. El servicio aparecerá en la jerarquía de Explorer.

Con VoiceChatService seleccionado, deshabilita EnableDefaultVoice en la ventana de Propiedades.
Publica el lugar para guardar los cambios y reinicia los 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 establecido en Enum.RunContext.Client.
Script del Cliente - Comprobar Estado del Chat de Voz
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