¿Qué es VCMC?
VCMC es una aplicación de chat de voz de proximidad para Minecraft. Fue creada originalmente para Minecraft Bedrock y actualmente es compatible también con servidores Java a través del plugin oficial.
La app nació porque en Minecraft Bedrock no se pueden instalar mods, y una gran parte de la comunidad quería un chat de voz que funcionara directamente en el juego. El flujo depende del modo:
- Modo Mundo: el creador toca CREADOR DEL MUNDO para obtener su comando y cada invitado entra por INVITADO DEL MUNDO. Ya no se guardan tarjetas manuales por Gamertag.
- Servidor Bedrock o Java: el servidor crea su sala automáticamente y el jugador toca UNIRSE A UN SERVIDOR. VCMC detecta la sala compatible y solicita
/vcmc:verifysolo cuando hace falta. En Java, Simple Voice Chat puede instalarse como cliente de voz opcional sin quitar la alternativa de la app. - Realms BETA: en Android, iOS o Windows, cada jugador selecciona el Realm en VCMC y entra desde Minecraft mediante la conexión proxy que prepara la app. El proxy se ejecuta localmente y conecta directamente con Mojang; Android e iOS pueden anunciarlo a otros dispositivos de la misma red.
- Después de vincularse, VCMC conecta y desconecta las voces automáticamente según la distancia, dimensión, grupo y configuración.
VCMC usa conexiones P2P (punto a punto) para conversaciones normales y puede usar SFU cuando una función necesita distribuir voz a más jugadores. Al acercarte a alguien por primera vez puede haber un pequeño retraso mientras se establece la conexión. El proyecto incluye despliegues propios de señalización y medios (SFU/TURN), pero su distribución pública y el primer enlace automático permanecen sujetos a activación y a un directorio autorizado.
No necesitas configurar ningún túnel ni servidor por tu cuenta. La infraestructura de VCMC maneja todo eso automáticamente.
Descargar VCMC
App VCMC
Descarga la app en tu dispositivo para crear salas, unirte al chat de voz y obtener los archivos del Addon cuando los necesites.
Addon para Mundo y Realms
La app descarga automáticamente VCMC-WORLD-REALMS.zip, que incluye VCMC - WORLD, VCMC - REALMS y VCMC - RP, y lo deja listo para importarlo en Minecraft.
Addon para servidores Bedrock
Para un servidor Bedrock, descarga manualmente VCMC-SERVER.zip. Incluye VCMC - SERVER y VCMC - RP.
→ Descargar addons Bedrock en GitHub
Plugin para Minecraft Java (Geyser)
El plugin Java está disponible en GitHub Releases y CurseForge. Los detalles de instalación están en la sección Servidor Java.
Modo Mundo
Usa este modo si tú vas a crear el mundo de Minecraft desde tu celular o PC y tus amigos se van a unir a tu partida. Este modo es exclusivo de Minecraft Bedrock.
Paso 1 — Cada jugador elige su rol
En la pestaña Mundos ya no tienes que agregar ni guardar salas manualmente.
- CREADOR DEL MUNDO: tócala si tú crearás y abrirás el mundo. La app prepara tu sala y te da el comando
/wsserver. - INVITADO DEL MUNDO: tócala si entrarás al mundo de otra persona. VCMC espera el mundo compatible y prepara tu verificación automáticamente.
Paso 2 — Instalar el paquete en Minecraft
Importa VCMC-WORLD-REALMS.zip desde la app o GitHub. Para el modo Mundo activa el paquete de comportamiento VCMC - WORLD y el paquete de recursos VCMC - RP. No actives VCMC - SERVER ni VCMC - REALMS en ese mundo.
- ACTIVA los Websockets.
- DESACTIVA "Permitir solo websockets encriptados".
Paso 3 — El host conecta el mundo
El host abre la burbuja flotante de VCMC, copia el comando de conexión del mundo y lo pega en el chat de Minecraft. El comando comienza con /wsserver; no debes escribir ni modificar la dirección manualmente.
Paso 4 — Cada invitado se verifica
Después de que el host conectó el mundo, cada invitado abre la burbuja o la pantalla de la sala, copia su propio comando /vcmc:verify "<código>" y lo pega en el chat de Minecraft.
Host: instala World + RP → activa WebSockets → toca CREADOR DEL MUNDO → pega el comando
/wsserver de la app.Invitados: tocan INVITADO DEL MUNDO → entran al mundo en Minecraft → pegan su propio
/vcmc:verify si la app lo solicita.
Servidor Bedrock
Usa este modo si administras un servidor Bedrock (Aternos, FalixNodes, hosting propio, etc.) que siempre está abierto. En servidores, VCMC ya no te pide IP ni puerto en la app: el servidor crea su propia sala y cada jugador se vincula con una verificación dentro de Minecraft.
Paquetes que debes usar
VCMC-SERVER.zip. Usa únicamente el paquete de comportamiento VCMC - SERVER y el paquete de recursos VCMC - RP. No descargues VCMC-WORLD-REALMS.zip ni uses VCMC - WORLD o VCMC - REALMS en el servidor.
Instalación
La app incluye un tutorial para Aternos y otro para hostings con acceso a archivos. Como cada proveedor cambia su panel, consulta además su guía oficial para instalar addons de Bedrock si las carpetas tienen otro nombre.
- En VCMC abre IR AL GITHUB RELEASE y descarga el
VCMC-SERVER.zipde la versión compatible. - Descomprime el ZIP y comprueba que
manifest.jsonesté directamente dentro de las carpetas VCMC - SERVER y VCMC - RP antes de subirlas; no subas una carpeta contenedora duplicada. - Sube VCMC - SERVER a
behavior_packs. - Sube VCMC - RP a
resource_packs. - Activa ambos paquetes y la opción Beta APIs en el mundo que ejecutará el servidor.
- Tip: Algunos paneles permiten subir ambas carpetas dentro de una carpeta llamada
packs.
Cómo se conectan los jugadores
Después de instalar el addon, el servidor genera una sala VCMC automáticamente. El jugador abre la pestaña Servidor y toca UNIRSE A UN SERVIDOR; no tiene que agregar una tarjeta, elegir un nombre, escribir una IP ni conocer el ID de la sala.
- Configura en VCMC el mismo Gamertag que usarás en Minecraft.
- En la pestaña Servidor, toca UNIRSE A UN SERVIDOR.
- Mientras todavía no haya reconocido una vinculación activa, la app muestra el botón de
/vcmc:verify. Puede aparecer inicialmente aunque ese dispositivo ya se hubiera verificado. - Entra en Minecraft a un servidor que tenga el addon o plugin de VCMC.
- Si VCMC reconoce la sesión y la sala, el botón desaparece y la interfaz cambia automáticamente al estado conectado.
- Si el botón sigue visible, tócalo para copiar el comando actual y pégalo en el chat del servidor de Minecraft.
Después de vincularse, los jugadores reciben la misma experiencia base de proximidad, grupos, efectos y menús que en World y Realms. Las herramientas administrativas y de integración no son idénticas en Bedrock y Java; la tabla de comandos marca esas diferencias.
Permisos de red — solo si NO usas Aternos
Si tu servidor no es de Aternos, necesitas dar permiso al Addon para conectarse a internet. En Aternos esto ya está configurado automáticamente.
- Ve a la carpeta
config/defaultde tu servidor. - Abre el
permissions.jsonde esa carpeta (no el de la raíz). - Agrega
"@minecraft/server-net"a los módulos permitidos:
{
"allowed_modules": [
"@minecraft/server",
"@minecraft/server-ui",
"@minecraft/server-admin",
"@minecraft/server-gametest",
"@minecraft/server-net"
]
}
¿No aparecen los comandos?
- API experimental desactivada. Activa la API experimental en la configuración del servidor para que el addon VCMC Server pueda funcionar.
- Versión desactualizada. El servidor debe correr la versión más reciente.
- Instalación incorrecta. Busca un tutorial para tu hosting específico.
- Falta permissions.json. Si no usas Aternos, revisa el paso de permisos de arriba.
Si se queda en “Verificando”
Addon SERVER no deja la verificación esperando sin explicación. Después de unos segundos muestra en el chat un diagnóstico localizado y vuelve a intentar automáticamente:
- Gamertag distinto: el mensaje indica que en VCMC debes usar el Gamertag con el que entraste a Minecraft. Por privacidad no revela el nombre anterior configurado en la app.
- Relay inaccesible: el hosting puede estar bloqueando el puerto de salida, DNS/TLS puede estar fallando o VCMC puede estar temporalmente fuera de servicio.
- Error HTTP: un error temporal del servicio se distingue de una respuesta que puede requerir actualizar el addon o la sala.
- Conexión recuperada: el addon avisa y vuelve a procesar las verificaciones pendientes.
Los errores repetidos se limitan para no llenar el chat; el primer aviso aparece tras unos ocho segundos y un mismo problema no se repite continuamente.
Servidor Java (Plugin con Geyser)
Geyser permite que jugadores de Minecraft Bedrock entren a un servidor Java. El plugin oficial de VCMC ofrece voz para jugadores Java y Bedrock en el mismo servidor y usa el mismo flujo de verificación. Si el administrador instala y configura Simple Voice Chat, los jugadores Java pueden usarlo como cliente de voz opcional; la app VCMC sigue disponible como alternativa. El administrador también puede alojar su propio nodo de audio; la sección de Audio Nodes explica su alcance y la activación controlada.
Instalación
Descarga el .jar desde el repositorio oficial, cópialo a la carpeta plugins y reinicia el servidor. La sala y su token se generan solos; las funciones opcionales sí requieren abrir sus puertos.
Lo que verás en la consola al iniciar
Cuando el servidor arranca, el plugin crea o carga la sala VCMC del servidor y la guarda en plugins/VCMC/config.yml. En consola verás que el plugin está listo y puede mostrar el ID de sala interno. Ese ID no es algo que los jugadores tengan que escribir para conectarse.
║ VCMC Voice Chat ready! ║
║ Room ID: AB1C2D7 ║
╚══════════════════════════════════════╝
¿Cómo se conectan los jugadores?
Los jugadores que usarán la app abren la pestaña Servidor y tocan UNIRSE A UN SERVIDOR. No crean salas manuales ni escriben IP, puerto o ID: al entrar en Minecraft, VCMC descubre la sala que publicó el plugin.
- Configura en VCMC el mismo nombre con el que entrarás a Minecraft.
- Toca UNIRSE A UN SERVIDOR en VCMC.
- Mientras no haya reconocido una vinculación activa, la app muestra el comando
/vcmc:verify "código"; puede aparecer inicialmente aunque el dispositivo ya estuviera verificado. - Entra al servidor Java/Geyser en Minecraft.
- Si VCMC reconoce la sesión y la sala, oculta el comando y cambia automáticamente al estado conectado.
- Si el comando sigue visible, cópialo y pégalo en el chat de Minecraft. Cuando el nombre coincide, VCMC guarda la vinculación y te conecta.
Configuración manual del plugin (opcional)
Normalmente no tienes que tocar nada. El plugin guarda una sala segura en el config.yml usando vcmc-room-id y vcmc-room-token. No compartas el token ni lo edites a mano.
vcmc-room-id: "" # Se genera automáticamente
vcmc-room-token: "" # Secreto del servidor, no se comparte
server-ip: "" # Vacío = detección automática
bedrock-port: 19132
rp-port: 25580 # Puerto para servir el resource pack a jugadores Java
rp-host: "" # Dominio o IP pública opcional
VCMC 2.2 añade bloques opcionales para el transporte directo, los nodos de audio y las políticas que la app oficial recibe mientras el jugador está vinculado:
direct-voice:
enabled: true
port: 24455
bind-address: "0.0.0.0"
advertised-host: ""
audio-node:
enabled: false
id: ""
name: "VCMC Audio Node"
gateway-url: ""
settings:
force-global-audio-settings: false
global-audio-radius: 15.0
global-spatial-intensity: 0.70
global-mono-audio: false
speech-to-text-mode: off # off | on | chat | actionbar | title
allow-recording: true
simple-voice-chat:
enabled: true
sync-groups: true
server-side-effects: true
direct-voice transporta el audio directo de la app cuando el servidor lo admite; audio-node permanece desactivado hasta configurar un gateway válido. simple-voice-chat solo se activa si el plugin SVC está instalado. Las preferencias globales forzadas no reemplazan los ajustes guardados del jugador.
| Puerto | Cuándo se necesita |
|---|---|
24455/UDP | VCMC Direct del plugin. El servidor autentica y reenvía audio Opus; este tráfico y ancho de banda pasan por la máquina del administrador. |
24454/UDP | Simple Voice Chat, solo si instalaste SVC y conservaste su puerto predeterminado. |
25580/TCP | Resource pack con iconos para clientes Java, salvo que cambies rp-port. |
Cómo funciona VCMC Direct
VCMC Direct evita transcodificar la voz dentro de Paper: la app envía frames Opus y el plugin calcula quién debe recibirlos según proximidad, dimensión, grupo, megáfono, mute, deafen y políticas forzadas. Después reenvía los frames autorizados con volumen, paneo y efectos aplicables. Esto reduce CPU frente a decodificar y volver a codificar cada voz, aunque el ancho de banda sí pasa por el servidor Minecraft.
El protocolo usa datagramas autenticados y cifrados por sesión, keepalive, límites de tamaño y fan-out, y puede agrupar dos frames de 20 ms cuando caben en un solo datagrama. La ruta normal de la app P2P/SFU permanece disponible: Direct Voice es un transporte del plugin, no un reemplazo obligatorio para todos los modos.
rp-port esté abierto o configura rp-host con la IP/dominio correcto.
PlaceholderAPI (opcional)
Si tienes PlaceholderAPI, VCMC registra su expansión automáticamente; no necesitas descargar una expansión adicional desde eCloud. Puedes usar estos valores en TAB, NametagEdit u otros plugins compatibles:
| Placeholder | Valor |
|---|---|
%vcmc_mic_icon% / %vcmc_icon% | Icono actual del micrófono. |
%vcmc_tab_icon% / %vcmc_tab_mic_icon% | Variante del icono preparada para la lista de jugadores (TAB). |
%vcmc_mic_state% / %vcmc_state% | idle, speaking, muted, deafened o disconnected. |
%vcmc_connected% | true si el jugador está conectado a VCMC. |
%vcmc_muted% | true si su micrófono está silenciado. |
%vcmc_speaking% | true mientras está hablando. |
%vcmc_voice_level% | Nivel de voz actual como número entero. |
%vcmc_megaphone% / %vcmc_megaphone_active% | true si tiene megáfono activo. |
%vcmc_megaphone_icon% | Icono de megáfono cuando corresponde. |
%vcmc_disconnected% | true si no está conectado a VCMC. |
%vcmc_disconnected_icon% | Icono de desconexión para jugadores en línea sin voz. |
settings.native-name-icons a false y conserva settings.show-icons: true. Por ejemplo: %vcmc_mic_icon% %player%.
Comandos y menús
El plugin, Addon Server y Addon World comparten el conjunto base de comandos para jugadores. Algunas herramientas administrativas y de integración nuevas son exclusivas de los addons Bedrock o de SERVER; la tabla indica su disponibilidad. En Java los menús se muestran como inventarios y los jugadores Bedrock que entran mediante Geyser reciben formularios nativos.
Simple Voice Chat (opcional)
El administrador puede instalar el plugin Bukkit/Paper de Simple Voice Chat junto a VCMC y abrir el puerto UDP configurado por SVC, normalmente 24454/UDP. Solo los jugadores Java que prefieran ese cliente instalan el mod SVC; los demás pueden seguir usando la app VCMC en Java o Bedrock.
Qué funciona
- Audio en ambos sentidos: usuarios de SVC y de la app VCMC pueden hablar entre sí. VCMC aplica dimensión, proximidad, espectador, megáfono, grupos y límites de distancia al decidir quién recibe cada voz.
- Habla y conexión: VCMC detecta los paquetes de micrófono y la conexión de SVC. La app, el scoreboard
vcmc_voicey PlaceholderAPI pueden mostrar a un usuario SVC como conectado, hablando o en silencio. - Mute y deafen administrados:
/vcmc:mutey/vcmc:deafenbloquean en el servidor el audio de los jugadores seleccionados, incluidos los clientes SVC./vcmc:mtambién puede silenciar la salida de voz propia de un usuario SVC desde VCMC. - Ensordecimiento visible: SVC sí publica su estado de ensordecimiento; VCMC lo respeta y lo refleja. En la dirección contraria, cuando un usuario de la app VCMC se ensordece, su emisor virtual actualiza ese estado para que los clientes SVC puedan verlo.
- Grupos: VCMC conserva la autoridad sobre membresías y reglas. Los grupos globales públicos, privados y administrativos se reflejan en SVC; las demás reglas de proximidad o aislamiento se aplican en el servidor aunque no aparezcan como un grupo propio en el HUD de SVC.
- SFX y volumen: los efectos integrados o personalizados y las políticas de volumen global o por jugador se procesan por oyente.
server-side-effects: falsedesactiva el DSP de SFX para SVC, pero no las políticas de volumen forzado.
Limitaciones conocidas
- Mute local de SVC: la API pública no informa si el usuario pulsó el mute privado de su mod. VCMC deja de recibir voz y lo muestra en silencio, pero no puede distinguir “muteado” de “no está hablando” ni encender con certeza el icono de mute. Los mutes aplicados con comandos de VCMC sí se conocen y se respetan.
- Controles privados: el cliente SVC sigue siendo autoritativo para su propio HUD, deafen local y sliders de volumen. VCMC no puede reescribir esos controles; un slider de SVC todavía puede reducir el resultado después del volumen aplicado por el servidor.
- Iconos: el cliente SVC usa el HUD de su mod y recibe una variante del resource pack de VCMC sin iconos propios para evitar duplicados. Otros clientes e integraciones pueden seguir viendo los estados que VCMC sí conoce.
- STT: quien usa exclusivamente SVC no genera transcripciones de VCMC, porque el reconocimiento de voz se ejecuta en la app.
- Distancia en SVC antiguo: si la versión instalada no expone el ajuste dinámico de distancia,
max_voice_distancede SVC sigue siendo el límite superior. Configúralo en50si usarás todo el rango de/vcmc:force-distance.
Comandos
VCMC 2.2 mantiene un conjunto base común en Addon World, Addon Server, Addon Realms y plugin Java. Los comandos administrativos por jugador y las APIs de extensión todavía varían por plataforma; se indican de forma explícita. Usa siempre el namespace /vcmc: para evitar conflictos.
En Bedrock los menús se abren como formularios. En Java se abren como inventarios; si el jugador entra por Geyser, verá los formularios Bedrock.
Comandos de jugadores
| Comando | Permiso | Descripción |
|---|---|---|
/vcmc:verify "<código>" |
Todos | Vincula el jugador de Minecraft con el código personal que muestra la app. Pégalo exactamente como lo copia VCMC. |
/vcmc:menu |
Todos | Abre el menú personal: ajustes de voz, grupos y volumen individual de otros jugadores. |
/vcmc:m [true|false] |
Todos | Silencia o activa tu propio micrófono. Sin argumento alterna el estado actual. Si no hay conflicto con otro comando, también puedes usar el atajo /m. |
/vcmc:d [true|false] |
Todos | Ensordece o vuelve a activar tu chat de voz. Al ensordecerte dejas de escuchar y también de transmitir. No puede retirar un bloqueo impuesto por un administrador. |
/vcmc:groups |
Todos | Abre el menú de grupos o muestra la ayuda correspondiente a tu plataforma. |
/vcmc:groups create "nombre" ["clave"] |
Todos | Crea un grupo de voz. La contraseña es opcional. |
/vcmc:groups join <#|nombre> ["clave"] |
Todos | Entra a un grupo por número o nombre. En los formularios Bedrock, los administradores pueden omitir la clave después de confirmar una advertencia. |
/vcmc:groups leave |
Todos | Sale del grupo actual y vuelve al audio normal de proximidad. |
/vcmc:groups list |
Todos | Muestra los grupos públicos activos y su número. |
/vcmc:groups delete [#|nombre] |
Propietario u operador | Elimina un grupo que administras. |
/vcmc:groups-settings <grupo> <global|external|environmental> <true|false> |
Propietario u operador | Cambia si el grupo se escucha globalmente, conserva proximidad externa o recibe efectos ambientales. |
Comandos de administración
| Comando | Descripción |
|---|---|
/vcmc:admin |
Abre el panel de administración. Requiere operador o permiso vcmc.admin. |
/vcmc:stt <on|chat|actionbar|title|off|status> |
Configura la política de voz a texto de la sala. En Java también existe el alias /stt. Consulta Voz a texto. |
/vcmc:mute <jugador|selector> <true|false> |
Fuerza el mute de uno o varios jugadores. El mute administrativo tiene prioridad sobre /vcmc:m. |
/vcmc:deafen <jugador|selector> <true|false> |
Fuerza el ensordecimiento o retira el bloqueo administrativo. Es independiente del mute y tiene prioridad sobre /vcmc:d. |
/vcmc:force-volume <oyentes> <0..200|clear> [fuentes] |
Fuerza el volumen general de los oyentes seleccionados o, si se indican fuentes, el volumen de esos jugadores concretos. clear retira la política sin modificar las preferencias guardadas. |
/vcmc:force-distance <oyentes> <1..50|clear> |
Fuerza individualmente la distancia máxima de escucha. La política se calcula por oyente y puede producir rutas de escucha distintas en cada dirección. |
/vcmc:groups-admin create <1-255> |
Crea un grupo administrado y oculto con el número indicado. |
/vcmc:groups-admin move <grupo> <jugador|selector> |
Mueve uno o varios jugadores al grupo indicado. |
/vcmc:groups-admin leave <jugador|selector> |
Saca a los jugadores seleccionados de su grupo. |
/vcmc:groups-admin list |
Lista los grupos disponibles para administración. |
/vcmc:groups-admin delete <grupo> |
Elimina un grupo administrado. |
/vcmc:megaphone <jugador|selector> <true|false> |
Activa o desactiva voz global para jugadores conectados. Hay un máximo de 10 megáfonos activos. |
Bedrock:/vcmc:sfx add <nombre> "<String con JSON escapado>"Java: /vcmc:sfx add <nombre> <json>/vcmc:sfx delete <nombre>/vcmc:sfx list
|
Administra el catálogo de efectos personalizados. En el addon Bedrock, definition es de tipo String: debe contener el JSON completo entre comillas y sus comillas internas deben escribirse como \". El plugin Java reconstruye el JSON desde el resto de la línea, así que allí se escribe directamente, sin esas comillas exteriores. |
/vcmc:sfx-player set <objetivo> <normal|cave|water|echo|radio|nether|custom> [efecto]/vcmc:sfx-player clear <objetivo> |
Asigna o quita un efecto de voz a uno o varios jugadores. |
Detalles técnicos de argumentos en Bedrock
force-volume y force-distance registran su valor como String, no como Integer o Float, porque el mismo argumento acepta un número o clear. Escribe, por ejemplo, 150 o clear sin comillas; el addon convierte y valida el número.
Las referencias de /groups que admiten número o nombre y el parámetro value compartido por las acciones de /groups-admin también son String; en cambio, /groups-settings <grupo> sí registra un Integer.
Estos son tipos de la API de comandos de Bedrock; no crean variantes adicionales de los comandos.
Comandos para integradores
| Comando | Disponibilidad | Uso |
|---|---|---|
/vcmc:capabilities |
WORLD y SERVER | Devuelve una línea estable con la versión de capacidades del paquete. No revela jugadores, sala, coordenadas ni secretos. |
/vcmc:extensions grant <proveedor>/vcmc:extensions stt <proveedor>/vcmc:extensions voice <proveedor> <endpoint HTTPS>/vcmc:extensions list/vcmc:extensions revoke <grantId> |
SERVER · operador | Crea, consulta o revoca credenciales separadas. voice y stt conceden permisos sensibles de forma explícita; el token maestro nunca se entrega al integrador. |
/vcmc:audio-node set <gateway HTTPS>/vcmc:audio-node clear/vcmc:audio-node status |
SERVER · operador | Configura, retira o consulta el nodo comunitario que transporta el SFU de la sala. No mueve identidad ni verificaciones fuera del control oficial. |
bridge-pull, bridge-sync, world-sync, radar-sync, realm-sync y realm-version pertenecen a los puentes de VCMC y se ejecutan automáticamente.
/vcmc:join, /vcmc:room y /vcmc:reconnect. No son necesarios en el flujo actual de VCMC 2.2.
Configuración
Desde la app de VCMC puedes ajustar cómo escuchas a los demás jugadores. En Mundo, SERVER, REALMS y Java/Geyser, esos mismos ajustes también se abren desde Minecraft con /vcmc:menu. Los cambios viajan en ambos sentidos: si modificas algo en Minecraft se actualiza en la app, y si lo cambias en la app se actualiza en Minecraft.
Se sincronizan el volumen global, volumen individual, límite de conexiones simultáneas, radio, supresión de ruido, salida de audio, audio espacial, idioma, mute, ensordecimiento y tipo de dispositivo, además de los ajustes de grupos y efectos que envía el servidor.
clear, vuelve a aparecer tu control personal con el valor que ya tenías guardado.
Volumen general e individual
El volumen general y el de cada jugador se pueden ajustar entre 0% y 200%. Los valores por encima de 100% amplifican la voz y pueden hacer más audible el ruido o provocar saturación si la señal original ya es fuerte.
Radio de escucha
El radio de escucha es la distancia máxima (en bloques de Minecraft) a la que puedes escuchar a otro jugador. Por defecto son 15 bloques.
- Si estás dentro del radio de alguien, se establece la conexión de voz y pueden escucharse.
- Si te alejas más del radio configurado, la conexión se corta automáticamente y dejan de escucharse.
- Puedes ajustar este valor desde los ajustes de la app según tu preferencia.
Límite de jugadores que escuchas
Este ajuste controla cuántas personas puedes escuchar al mismo tiempo. El valor predeterminado es 10 y puedes elegir hasta 40.
¿Por qué importa esto? Porque VCMC usa P2P: cada persona que escuchas es una conexión directa entre tu dispositivo y el de ellos. Si hay 20 personas a tu alrededor, tu teléfono tiene que mantener 20 conexiones simultáneas. Eso consume batería, CPU y puede hacer que la app se ponga lenta o que el audio se corte.
Audio espacial y modo mono
Además de reducir el volumen por distancia, VCMC coloca la voz a la izquierda o derecha según la posición y dirección del jugador. La intensidad espacial predeterminada es 70% y se puede ajustar entre audio centrado y separación completa.
El modo mono centra todas las voces por igual en ambos canales y desactiva el paneo espacial. Es útil para accesibilidad, una sola bocina o dispositivos donde la separación izquierda/derecha resulte incómoda.
Mute y ensordecimiento
Mutear detiene tu transmisión, pero sigues escuchando. Ensordecer corta tanto la entrada como la salida del chat de voz. Puedes cambiarlo desde la sala, con /vcmc:d o con un atajo configurable en escritorio.
Los bloqueos administrativos son independientes: /vcmc:mute impide transmitir y /vcmc:deafen impide transmitir y escuchar. Un jugador no puede retirar por sí mismo un bloqueo administrativo.
La escucha puede ser distinta por jugador
VCMC calcula proximidad, límite de conexiones y políticas administrativas para cada oyente. Normalmente dos jugadores con los mismos ajustes se escucharán en ambos sentidos, pero una distancia o volumen forzado, el modo espectador o límites distintos pueden producir audio en una sola dirección.
Si tienes el límite en 10 jugadores y hay 20 personas cerca, VCMC prioriza a las 10 más cercanas para proteger el rendimiento. El megáfono funciona como transmisión global; los grupos globales y el megáfono también pueden usar SFU cuando el relay lo decide.
Grupos de voz
El admin controla desde /vcmc:admin cuántos grupos puede crear cada jugador, entre 1 y 20. Para impedir la creación de grupos se desactiva el ajuste general de grupos. Un grupo es una subsala dentro de la misma partida y puede tener contraseña. En Bedrock se maneja con formularios; en Java se puede usar el menú o /vcmc:groups.
- global: los miembros se escuchan sin importar la distancia.
- external: además del grupo, conserva la proximidad con jugadores externos. Requiere
global. - environmental: permite que el grupo reciba los efectos ambientales habilitados por el servidor.
Los grupos normales se pueden buscar por nombre o creador. El propietario puede salir sin borrar el grupo y volver a unirse después; eliminarlo es una acción separada. Las listas grandes se paginan y permiten buscar en todo el catálogo para no cargar decenas de botones a la vez.
/vcmc:groups-admin son secretos: no aparecen en la búsqueda normal. Los jugadores movidos a uno de estos grupos no pueden salir por sí mismos; un administrador debe moverlos o retirarlos.
Efectos, ambiente y megáfono
Los administradores pueden asignar efectos integrados (cave, water, echo, radio y nether) o crear efectos personalizados mediante JSON. También pueden activar efectos automáticos: agua y lava usan sonido amortiguado, Nether aplica su filtro propio, The End usa eco y las cuevas aplican reverberación.
El megáfono transmite la voz globalmente y usa la ruta P2P o SFU que determine la configuración del servidor. Para evitar abuso y sobrecarga, se permiten hasta 10 jugadores con megáfono activo.
Dimensiones personalizadas
VCMC 2.2 envía el identificador completo de la dimensión. Dos jugadores solo se consideran cercanos cuando están en la misma dimensión, incluyendo dimensiones personalizadas de otros addons o plugins. A la vez conserva el identificador numérico antiguo para mantener compatibilidad con versiones anteriores.
Ajustes según la plataforma
El menú solo muestra opciones que existen en tu dispositivo. En Windows puedes elegir micrófono y salida de audio, además de activar pulsar para hablar y asignar su tecla (V por defecto). En móviles puedes elegir entre altavoz y auricular cuando el sistema lo permite.
En iOS, el modo CallKit hace que el sistema trate la sala como una llamada para mejorar la continuidad en segundo plano. Si interfiere con el audio del juego, puedes desactivarlo; VCMC mantendrá el micrófono preparado mientras permanezcas en la sala.
Prueba de micrófono
Desde Configuración puedes iniciar una prueba que muestra el nivel de entrada en tiempo real antes de entrar a una sala. Usa audífonos para evitar realimentación y comprueba permisos o el dispositivo seleccionado si no aparece señal.
Grabaciones
En Android, iOS y Windows, una sesión nueva guarda cuatro vistas alineadas del mismo momento: todos juntos, mi micrófono, lo que escuché sin tu micrófono y una pista separada por cada persona que llegaste a escuchar.
Las pistas individuales conservan el volumen, paneo y efecto con los que realmente escuchaste a cada jugador. Si alguien entra tarde o se reconecta, su desfase queda registrado para poder alinear todo en un editor. En Android y Windows se guarda WAV PCM; iOS usa M4A/AAC.
La sección Pistas separadas solo aparece cuando durante la grabación llegó audio remoto de al menos otra persona. Si grabaste estando solo o nadie llegó a enviarte una pista, es correcto que veas únicamente las mezclas generales y no una carpeta de participantes vacía.
Tu voz local continúa grabándose aunque estés muteado dentro de VCMC; el mute evita que los demás te escuchen, no que aparezcas en tu propia grabación. Al colgar, la app finaliza los archivos antes de salir. Las sesiones anteriores de dos pistas siguen siendo compatibles.
Diagnóstico de voz
El botón de diagnóstico de la sala mide cada dos segundos bitrate, pérdida de paquetes, RTT, jitter, búfer, tipo de candidato, reconexiones y ruta P2P/SFU/Audio Node. Conserva únicamente una ventana local de dos minutos.
El reporte copiable sustituye la sala y los jugadores por identificadores anónimos y excluye IP, puertos, URLs, tokens, SDP, candidatos completos e IDs de dispositivos. No se envía automáticamente a ningún servidor.
Ajustes del administrador
Desde /vcmc:admin se pueden configurar iconos, títulos, grupos, audio de espectadores, audio espacial, intervalo de coordenadas, máximo de grupos por jugador, efectos ambientales, voz a texto, modo del megáfono y si se muestran los mensajes no esenciales de VCMC. Los avisos de conexión, desconexión y reinicio permanecen activos.
En los addons Bedrock el servidor también puede forzar por jugador un volumen de 0 a 200% y un radio de 1 a 50 bloques, sin sobrescribir sus preferencias guardadas. En Java puedes decidir si VCMC escribe los iconos directamente o deja el formato a PlaceholderAPI.
allow-recording se conserva como opción del plugin Java, pero la app 2.2 todavía no la aplica al grabador local. No debe utilizarse como control de privacidad ni como garantía contra capturas externas.
Voz a texto (STT)
VCMC 2.2 puede convertir la voz del jugador en texto final usando el reconocedor del dispositivo. La función solo se activa cuando coinciden tres permisos: el jugador la habilitó en su app, el administrador la habilitó para la sala y existe una sesión de Minecraft vinculada.
Plataformas
- Android 13 o posterior: comparte con el reconocedor del sistema una copia del mismo PCM que ya usa WebRTC; no abre un segundo micrófono.
- iOS: utiliza Speech.framework y solicita el permiso de reconocimiento de voz.
- Windows: utiliza reconocimiento continuo de Windows mediante SAPI.
- Web, macOS y Linux: la app no anuncia STT integrado en esta versión.
Modos del administrador
| Comando | Reconoce | Salida integrada |
|---|---|---|
/vcmc:stt on | Sí | Ninguna; solo publica la API. |
/vcmc:stt chat | Sí | Chat global con la etiqueta [STT]. |
/vcmc:stt actionbar | Sí | Action bar de los jugadores conectados. |
/vcmc:stt title | Sí | Título y subtítulo. |
/vcmc:stt off | No | Desactiva reconocimiento y API. |
/vcmc:stt status | No cambia | Muestra el modo actual al administrador. |
La sintaxis es la misma en WORLD, SERVER, REALMS y Java. En Java también funciona el alias /stt. Una configuración antigua con STT activado se migra al modo chat.
Behavior packs Bedrock
Otro behavior pack puede escuchar el evento público vcmc:stt_final. Comprueba siempre v === 1, final === true y usa id para deduplicar entregas:
system.afterEvents.scriptEventReceive.subscribe((event) => {
if (event.id !== "vcmc:stt_final") return;
const message = JSON.parse(event.message);
if (message.v !== 1 || message.final !== true) return;
// message.id, message.player.id, message.player.name,
// message.text y message.language
});
Plugins Bukkit/Paper
El plugin Java publica el evento cancelable com.naru.vcmc.VcmcSpeechToTextEvent. Un plugin puede leer el jugador, texto final, ID e idioma; también puede cancelar la salida visual o modificar el texto antes de que VCMC vuelva a sanearlo.
@EventHandler
public void onVcmcSpeech(VcmcSpeechToTextEvent event) {
Player player = event.getPlayer();
String text = event.getText();
String messageId = event.getMessageId();
}
Integraciones avanzadas
VCMC 2.2 expone estados de voz, grupos, transcripciones finales y reproducción de audio autorizada para que mapas, command blocks, addons, plugins y servicios externos reaccionen a lo que ocurre en el chat de voz.
Scoreboard vcmc_voice
Este objetivo se crea y actualiza automáticamente en Addon Server, Addon World, Addon Realms y plugin Java. El valor representa el estado o la intensidad de voz del jugador:
| Valor | Significado |
|---|---|
-3 | Ensordecido; no escucha el chat de voz. |
-2 | Desconectado de VCMC. |
-1 | Micrófono silenciado. |
0 | Conectado, pero en silencio. |
1–100 | Está hablando; cuanto mayor sea el número, mayor es el nivel de voz detectado. |
Después de dejar de hablar, el score vuelve a 0. Para verlo en el action bar de cada jugador usa:
/execute as @a at @s run titleraw @s actionbar {"rawtext":[{"score":{"name":"@s","objective":"vcmc_voice"}}]}
Esto permite crear mecánicas activadas por voz. Por ejemplo, un command block Bedrock puede seleccionar a quienes estén hablando fuerte con @a[scores={vcmc_voice=50..100}] y aplicarles un efecto, activar redstone o iniciar un minijuego.
Scoreboard vcmc_group
Representa el grupo de voz actual: 0 significa que el jugador no tiene grupo y 1–255 corresponde al número del grupo. También funciona como entrada para command blocks y plugins: cambiar el score mueve al jugador al grupo existente con ese número.
0; VCMC restaura el grupo. El administrador debe retirarlo con /vcmc:groups-admin leave o moverlo desde las herramientas administrativas.
Iconos y nivel de voz
El icono del micrófono cambia cuando el jugador habla y su brillo responde al nivel de vcmc_voice. Los administradores pueden reemplazar las texturas del paquete de recursos por un diseño propio, conservando las mismas rutas y caracteres. En Java, los mismos estados están disponibles mediante PlaceholderAPI.
SFX personalizados con JSON
Se pueden guardar hasta 11 efectos personalizados. El nombre se convierte a minúsculas, admite letras, números, guion y guion bajo, y se limita a 24 caracteres. Los valores fuera de rango se ajustan automáticamente.
| Campo | Rango | Función |
|---|---|---|
base | normal|cave|water|echo|radio o 0–4 | Preset inicial. Los campos omitidos conservan los valores de esta base. |
pitch | -6 a 6 | Cambia el tono en semitonos; negativo hace la voz más grave. |
gain | -12 a 6 | Ganancia de salida en decibelios. |
lowpass | 0–20000 | Filtro paso bajo en Hz; reduce frecuencias superiores. 0 lo desactiva. |
highpass | 0–10000 | Filtro paso alto en Hz; reduce frecuencias inferiores. 0 lo desactiva. |
q | 0.1–10 | Resonancia de los filtros. |
distortion | 0–30 | Cantidad de distorsión. |
delay | 0–500 | Retardo del eco en milisegundos. |
feedback | 0–0.85 | Porción del eco que vuelve a entrar al retardo. |
wet | 0–1 | Volumen de la señal procesada. |
dry | 0–1 | Volumen de la voz original. |
El formato de /vcmc:sfx add cambia según la plataforma porque la API de comandos de Bedrock no ofrece un parámetro JSON nativo. Elige tu plataforma para copiar la variante correcta:
JSON como string
En Addon World y Addon Server, encierra todo el JSON entre comillas y escapa cada comilla interna con \":
/vcmc:sfx add grave "{\"base\":\"normal\",\"pitch\":-4,\"gain\":2,\"lowpass\":4200,\"highpass\":80,\"q\":0.8,\"distortion\":1.5,\"dry\":1}"
JSON directo
El plugin Java acepta el objeto JSON directamente, sin comillas exteriores ni caracteres de escape:
/vcmc:sfx add grave {"base":"normal","pitch":-4,"gain":2,"lowpass":4200,"highpass":80,"q":0.8,"distortion":1.5,"dry":1}
Después puedes asignarla, retirarla o borrar su definición:
/vcmc:sfx-player set <jugador|selector> custom grave
/vcmc:sfx-player clear <jugador|selector>
/vcmc:sfx delete grave
normal, cave, water, echo, radio y nether se asignan directamente; por ejemplo, /vcmc:sfx-player set @a cave. Para retirarlo usa /vcmc:sfx-player clear @a. No necesitas recrearlos como JSON.
Detección de capacidades
WORLD y SERVER incluyen /vcmc:capabilities para que un integrador detecte de forma segura qué superficie existe. La respuesta empieza con VCMCC:1, identifica WORLD o SERVER y enumera capacidades sin exponer jugadores, room ID, world ID, configuración ni secretos. REALMS no registra este comando en 2.2.
Extensiones de servidor y permisos
En SERVER, un operador crea un grant separado con /vcmc:extensions grant <proveedor>. Por defecto puede reproducir, detener y dirigir audio y consultar jugadores verificados; stt.read y voice.stream requieren permisos explícitos.
- Jugadores: la API solo devuelve Gamertags con una sesión VCMC abierta y verificada en esa sala.
- Audio externo: la app descarga el archivo directamente desde la URL HTTPS del proveedor; el relay transporta autorización y metadatos pequeños, no el archivo.
- Audio posicional: una extensión puede fijar una fuente en X/Y/Z, dimensión y distancia máxima; el cliente aplica paneo y atenuación.
- Consentimiento: micrófono y STT son opt-in. VCMC no solicita
voice.streamnistt.readsi el integrador no registró esos consumidores. - Revocación: cada grant pertenece a una sala y proveedor; puede expirar o revocarse sin revelar el token maestro del servidor.
Micrófono en vivo para una extensión
El permiso opcional voice.stream reutiliza el mismo micrófono que ya capturó VCMC; no abre una segunda grabación. La app crea una publicación WebRTC send-only directamente hacia un endpoint WHIP HTTPS alojado por el proveedor. El mute, pulsar para hablar, la revocación del grant y la salida de la sala también detienen esa publicación.
El relay solo entrega la autorización efímera y los metadatos necesarios. El audio no atraviesa el relay oficial ni una sala LiveKit adicional. En el SDK, onVoice expone bloques PCM de aproximadamente 100 ms con timestampUnixMs, timecodeMs, streamId, sequence y startFrame, de modo que un proveedor autorizado puede hacer VAD, STT propio, procesamiento o grabación sincronizada.
voice.stream nunca se concede al enlace automático básico de SERVER. El administrador debe autorizarlo explícitamente y Minecraft muestra al jugador que su audio se utilizará en un servidor externo.
SDK Node unificado para WORLD y SERVER
El proyecto incluye la vista previa @vcmc/sdk 0.1.0 para Node 22.13 o posterior. Se ejecuta en la infraestructura del creador y ofrece una API compartida para consultar jugadores e inyectar audio externo o posicional. WORLD se conecta mediante /script o /wsserver; SERVER usa un enlace automático entre behavior packs mediante server-net.
sdk/ y los ejemplos del repositorio; el paquete todavía no está publicado en el registro npm. WORLD se probó en vivo y SERVER cuenta con pruebas automatizadas.
Es un solo SDK: el integrador conserva su lógica de audio y eventos y cambia únicamente el conector. En WORLD, el creador del mundo abre la conexión externa con Script Debugger o /wsserver; en SERVER, el addon externo declara @minecraft/server-net y el enlace ocurre entre behavior packs y el backend del proveedor, sin pedir comandos ni configuración a los jugadores.
Clases principales
| API | Función |
|---|---|
VcmcWorldServer | Orquesta autorización, enlace WORLD, endpoint WHIP, archivos temporales, STT y reconexión. |
VcmcWorldBridge | Adaptador de bajo nivel para reutilizar el único enlace de comandos de Minecraft y reenviar el puente VCMC. |
VcmcServerLinkHost | Recibe de forma segura el enlace automático de un addon SERVER y entrega un cliente limitado al proveedor registrado. |
VcmcServerClient | Usa un grant manual de SERVER para consultar jugadores, categorías e inyectar o detener audio. |
createVcmcExtension | Crea el conector WORLD o SERVER desde la misma entrada pública. |
VcmcVoicePeer | Expone el peer-link WebRTC de bajo nivel para recibir PCM autorizado y devolver PCM continuo cuando el grant incluye voice.duplex. |
ScriptDebuggerServer / ScriptMinecraftSocket | Implementan el transporte de Script Debugger usado por WORLD. |
nativeWorldRoomId | Normaliza el identificador de sala utilizado por el puente WORLD. |
Métodos y eventos públicos
- Los clientes de WORLD y SERVER comparten
players/listPlayers,setAudioCategories,playAudioystopAudio. - WORLD añade
start,stop,sendAudio,sendPcm,sendVoicePcmy listeners paraready, mundo, reconexión, STT, voz, mensajes de script y errores. - El host SERVER emite
linkyready, permite restaurar un enlace vigente y entrega unVcmcServerClient. Este cliente también expone estado del mundo, STT y sesión/contexto de voz cuando el grant lo autoriza.
La misma lógica en ambos modos
const { createVcmcExtension } = require('@vcmc/sdk');
const vcmc = createVcmcExtension({
mode: process.env.VCMC_MODE, // world o server
providerId: 'quests-addon',
...(process.env.VCMC_MODE === 'server'
? { endpoint: 'https://quests.example/vcmc/server-link' }
: {
providerKey: process.env.VCMC_PROVIDER_KEY,
publicUrl: 'https://quests.example',
transport: 'script',
}),
});
vcmc.on('ready', async ({ client }) => {
await client.setAudioCategories([{ id: 'quests', name: 'Misiones' }]);
console.log((await client.players()).players);
await client.playAudio({
url: 'https://media.example/quest.ogg',
categoryId: 'quests',
targets: ['Jugador01'],
});
});
En WORLD, después de registrar los listeners se ejecuta await vcmc.start(). En SERVER se monta vcmc.handle(req, res) dentro del endpoint HTTPS del proveedor. La lógica que recibe client puede ser la misma; solo cambia el conector.
Enlace automático de SERVER
El addon externo incluye el adaptador vcmc-server-extension.js y apunta a su propio endpoint HTTPS. Al iniciar Bedrock Dedicated Server obtiene un desafío de un solo uso, registra su providerId y entrega el grant directamente al backend del proveedor; el ScriptEvent nunca contiene el token. Varios addons pueden usar el SDK en el mismo servidor sin compartir estado.
El enlace automático solo concede players.read, audio.play, audio.stop y audio.target. voice.stream y stt.read requieren los comandos administrativos explícitos /vcmc:extensions voice y /vcmc:extensions stt.
Elegir el transporte de Minecraft
transport: 'script': usa Script Debugger; el jugador ejecuta/script debugger connect 127.0.0.1 19144. Es la opción recomendada si el integrador ya necesita depuración de scripts.transport: 'wsserver': conserva el flujo clásico con/wsserver.transport: 'both': escucha ambos, aunque cada jugador debe utilizar solo uno. Minecraft admite una sesión de depuración y un servidor de comandos a la vez.
El SDK puede ejecutar comandos con runMinecraftCommand y recibir mensajes del behavior pack mediante onScriptMessage, sin exigir @minecraft/server-net para ese intercambio.
Audio, timecode y límites
sendAudioacepta ruta local, URL o Buffer. Los archivos se sirven con streaming, soporte Range y URL temporal única.sendPcmconvierteInt16Arraya un clip WAV reproducible. Para audio continuo de baja latencia se usasendVoicePcmdentro del peer-linkvoice.duplex.onVoicerecibe PCM en bloques aproximados de 100 ms con UTC, timecode, stream ID, secuencia, frame inicial, identidad y posición autorizada reciente.- El máximo predeterminado es 256 sesiones de micrófono por proceso y cada clip conserva el límite de 25 MiB.
- En producción,
iceServersdebe incluir el TURN del proveedor; VCMC no transporta esos paquetes ni presta su TURN al SDK.
VCMC Admin Toolkit
El repositorio público reúne el SDK, los contratos, el Audio Server y ejemplos para administradores y desarrolladores. La versión 0.1.0 está disponible como vista previa, con instrucciones y pruebas para cada componente.
→ Descargar VCMC Admin Toolkit 0.1.0
→ Consultar el estado de cada herramienta
El código se distribuye bajo PolyForm Noncommercial 1.0.0. Consulta la licencia antes de usarlo en un proyecto comercial.
| Componente | Para qué sirve | Estado |
|---|---|---|
@vcmc/sdk | Extensiones WORLD/SERVER, audio externo, STT opt-in y peer-link Opus/PCM bidireccional. | WORLD probado en vivo; SERVER con pruebas automatizadas |
| Contratos v1 | Esquemas públicos de transporte, peer sessions y mensajes entre Minecraft, proveedores y VCMC. | Implementados |
| VCMC Audio Server | LiveKit/SFU, gateway reducido, Caddy, Docker Compose, failover y métricas Prometheus. | Vista previa publicada; activación oficial pendiente |
| Observabilidad | Dashboard Grafana, alertas Prometheus y endpoints /health, /ready y /metrics. | Incluida |
| VCMC Standalone | Control y datos alojados por el administrador mediante una imagen compilada, reducida y firmable. | Vista previa interna; no distribuida |
Qué no contiene
- Llaves privadas, tokens, bases de datos, dominios internos ni configuración de producción.
- El código fuente del control oficial, verificaciones, directorio o lógica propietaria.
- Una copia del relay oficial ni permisos para emitir grants válidos de otras salas.
El SDK y los contratos permiten crear transportes, bots, traducción, moderación, efectos y puentes sin copiar el backend. Las funciones sensibles voice.stream, voice.duplex y stt.read continúan requiriendo permisos explícitos.
Sugiere mejoras o participa
Si tienes ideas para mejorar las herramientas, puedes proponer una mejora o reportar un error. También se aceptan contribuciones mediante pull requests. Puedes escribir en español o inglés; no necesitas tener una solución programada para sugerir una idea.
VCMC Audio Server (Audio Node)
Un Audio Node permite que un servidor aloje su propio LiveKit/SFU y gateway de medios sin recibir el backend completo de VCMC. Identidad, verificaciones, directorio, ajustes y reglas siguen bajo el control VCMC; el nodo solo mueve audio autorizado.
El paquete y las instrucciones están en Audio Server dentro de VCMC Admin Toolkit. Esta ruta es para clientes VCMC; no incluye un puente LiveKit–Simple Voice Chat.
- El plugin anuncia el nodo dentro de su actualización autenticada de coordenadas; el jugador no configura una URL ni elige una ruta manualmente.
- VCMC firma permisos breves para publicar y políticas de suscripción de quién puede oír a quién.
- Si el nodo deja de renovar su anuncio o la política caduca, la app cierra esa ruta y recupera el servicio oficial cuando la política lo permite.
- El cifrado E2EE opcional mantiene la clave fuera del gateway comunitario. Si hay un cliente incompatible, la sala conserva la ruta oficial para evitar una mezcla insegura.
- El operador del nodo puede observar metadatos y temporalidad; sin E2EE también forma parte del límite de confianza del audio.
audio-node en el plugin no lo habilita por sí solo. Consulta el estado del proyecto antes de instalarlo para tus jugadores.
Qué aloja el administrador
La distribución reducida contiene LiveKit en modo SFU, un gateway de permisos, Caddy para HTTPS/WSS y métricas. Requiere Linux x86-64 o ARM64 con Docker Compose v2, una IPv4 pública, un dominio con registro A y los puertos 80/tcp, 443/tcp+udp, 7881/tcp y 7882/udp abiertos. No se exponen los puertos internos 7880, 8090 ni 6789.
El gateway publica /health y /ready para supervisión. /metrics entrega métricas Prometheus protegidas por token: intercambios de sesión, grants rechazados, fallos de políticas, renovaciones del control, cambios de suscripción, solicitudes HTTP y tiempos de respuesta. LiveKit conserva además sus métricas nativas en 127.0.0.1:6789; no deben exponerse directamente a Internet.
El instalador incluido genera las credenciales del Audio Server y muestra la configuración que debes copiar al plugin. El paquete de descarga no incluye node_modules, un archivo .env de una instalación real ni código del relay oficial.
Federación y recuperación
Un Audio Server puede anunciar hasta cuatro gateways firmados. Las réplicas comparten el mismo ID, claves LiveKit y Redis; la app rota tanto ante errores del gateway como cuando la sesión multimedia no logra conectarse. Redis permite distribuir salas entre SFU y reconstruir una sesión en otro nodo tras una caída.
La federación es de salas, no de paquetes dentro de una sala: una sala activa reside en un SFU. Si ese proceso falla, los clientes se reconectan brevemente a otro; Redis también necesita su propia alta disponibilidad para no convertirse en un punto único de fallo.
Vincularlo con Minecraft
En el plugin Java, la configuración usa audio-node.enabled, id, name y una gateway-url HTTPS. En Addon SERVER, el operador registra el descriptor publicado por el gateway con /vcmc:audio-node set <gateway HTTPS> y puede consultar o retirar la ruta con status y clear.
El jugador no ve un modo avanzado ni escribe una URL. Después de verificar la sala, VCMC detecta el nodo autorizado y cambia la ruta automáticamente. Si el anuncio, TLS o las políticas caducan, la app deja de usar ese SFU y recupera la ruta oficial cuando está disponible.
La Burbuja Flotante y Errores
Colores de la burbuja
- 🟢 Verde: Todo bien. Conectado con micrófono activo.
- 🔴 Rojo: Silenciado (Mute).
- ⚪ Transparente: Estado normal de fondo.
No me escuchan / la app falla
Los teléfonos a veces restringen permisos o procesos en segundo plano. Solución rápida: cierra la aplicación por completo, vuelve a abrirla y comprueba que el micrófono y la burbuja sigan autorizados.
Tarda en escucharse al acercarse
La primera conexión P2P con un jugador puede tardar un momento mientras WebRTC negocia la ruta. Un retraso largo en cada acercamiento, tarjetas que parpadean o desconexiones repetidas no son normales: abre el diagnóstico de voz y revisa pérdida, RTT, reconexiones y la ruta elegida.
Versión Web
Si tu dispositivo no soporta la app nativa (Mac, Linux, teléfonos antiguos, Chromebooks, etc.), existe una versión web de VCMC que funciona directamente desde el navegador, sin instalar nada.
¿Cómo funciona?
La versión web comparte el sistema de salas, verificación y chat de voz de proximidad de la app nativa. También incluye las funciones de audio base de VCMC 2.2: grupos globales, megáfono P2P/SFU, SFX integrados y personalizados, audio espacial con intensidad ajustable, modo mono, volumen individual y grabaciones con biblioteca propia.
El comando depende del modo: el host de un mundo copia su comando /wsserver, mientras que los jugadores de un servidor o invitados de un mundo usan su /vcmc:verify. Las grabaciones se guardan en el almacenamiento del navegador y pueden descargarse desde la biblioteca web.
Requisitos
- Navegador moderno (Chrome o Edge recomendados; Safari y Firefox tienen limitaciones de audio en segundo plano)
- Poder mantener la pestaña del navegador abierta mientras juegas (en segundo plano o en otra ventana)
- Micrófono (igual que la app)
Limitaciones frente a la app nativa
- No tiene burbuja flotante en dispositivos móviles (solo escritorio via Picture-in-Picture)
- En móvil, si el navegador pasa a segundo plano el audio puede interrumpirse según el sistema operativo
- No detecta automáticamente si el micrófono está silenciado a nivel del sistema
- No incluye la conexión proxy del modo Realms, STT nativo ni grabaciones multipista por jugador
Modo Realms BETA
El modo Realms añade chat de voz de proximidad para Minecraft Realms mediante un proxy integrado. VCMC prepara una dirección de servidor Bedrock para Minecraft, transporta la sesión hacia el Realm seleccionado y obtiene la posición necesaria para calcular proximidad.
Requisitos
- Una app nativa compatible de VCMC para Android, iOS o Windows con el modo Realms BETA incluido.
- Minecraft Bedrock para la misma plataforma y una cuenta Microsoft que posea el juego.
- Acceso al Realm: puede ser el propietario o un jugador invitado.
- El paquete de comportamiento VCMC Realms y el paquete de recursos VCMC RP activos dentro del Realm.
- El Gamertag de la app debe coincidir con el de la cuenta que entra en Minecraft.
Una vez: el propietario prepara el Realm
- Obtén desde VCMC la descarga que contiene los paquetes actuales.
- Activa REALMS como paquete de comportamiento. No uses WORLD ni SERVER en ese Realm.
- Confirma que el paquete de recursos RP también esté activo y sube o reemplaza el mundo del Realm siguiendo el flujo normal de Minecraft.
El paquete REALMS no abre conexiones de red. Se comunica con la conexión proxy que ya transporta la sesión de cada jugador.
Cada jugador: conectar su cuenta y proxy
- Abre la pestaña REALMS de VCMC y elige Conectar cuenta Microsoft.
- Abre el enlace de Microsoft, escribe el código que muestra VCMC e inicia sesión con la cuenta que tiene acceso al Realm.
- Selecciona el Realm correcto. VCMC preparará la conexión y mostrará una IP y un puerto.
- En Minecraft abre Servidores → Añadir servidor, copia exactamente la IP y el puerto mostrados por VCMC en sus campos correspondientes y guarda esa tarjeta.
- Entra mediante esa tarjeta de Servidores, no mediante la pestaña Realms de Minecraft. Mantén VCMC y el proxy abiertos.
- En VCMC pulsa Entrar al chat de voz. Si aparece un comando
/vcmc:verify, cópialo y pégalo dentro de Minecraft.
La sala de voz se deriva del ID estable del Realm, no de su nombre. Renombrar el Realm no crea otra sala. Cuando se apaga el proxy, VCMC sale del chat para no dejar una sesión que parezca activa.
Cuenta y privacidad
La sesión de Microsoft permanece dentro del componente de Realms y nunca se entrega al relay de voz. En Windows, el motor local usa %APPDATA%\VCMC\realms-auth. Android e iOS guardan la caché en el almacenamiento privado de la app; en iOS se excluye de iCloud. Cerrar sesión elimina únicamente ese perfil.
En móviles, la sesión de juego completa viaja directamente desde el dispositivo que ejecuta VCMC hacia Mojang. Si Minecraft está en otra PC o consola, el primer tramo permanece dentro de la red local. VCMC no consume ancho de banda de mundo en sus servidores.
Solución de problemas
- Puerto 19132 ocupado: cierra otro servidor o proxy Bedrock en el dispositivo que ejecuta VCMC y vuelve a iniciar el modo.
- No se encuentra el proxy móvil: permite el acceso de VCMC a la red local, mantén la app activa durante la sesión de voz y comprueba que Minecraft use la IP LAN mostrada y esté en la misma red.
- La burbuja avisa que el proxy se cerró: vuelve a VCMC, abre la tarjeta del Realm e inicia otra vez la conexión. No sigas usando una tarjeta de Minecraft cuyo proxy ya no está activo.
- Cuenta rechazada: confirma que esa cuenta posea Bedrock y tenga acceso al Realm, después cierra sesión y autoriza de nuevo.
- Realm no aparece: acepta primero la invitación o revisa que la suscripción no esté vencida; después pulsa actualizar.
- Minecraft se actualizó: el proxy falla de forma segura si todavía no puede interpretar la nueva versión. Actualiza VCMC; no se modifican tus mundos.
- No hay proximidad: confirma que el Realm usa REALMS + RP, que entraste por la tarjeta de Servidores y que VCMC muestra “Conectado al Realm”.