Configuración
Todos los ajustes están en config/config.lua. El archivo está fuera de Asset Escrow — totalmente modificable.
Config = {}
Config.Locale = 'en' -- 14 idiomas disponibles
Config.Debug = false -- Logs en la consola F8
Config.OpenKey = 'F7' -- Tecla por defecto (modificable en el menú de pausa)
Config.OpenCommand = 'audiomixer' -- Comando de chat
Config.KVPPrefix = 'hz_amix_v2_' -- Prefijo de almacenamiento (no cambiar tras la puesta en producción)
Config.DefaultVolume = 100 -- 0-100, 100 = volumen máximo (precisión 1%)
Config.Categories = {
weapons = true,
vehicles = true,
ambience = true,
weather = true,
speech = true,
peds = true,
scripted = true,
music = true,
radio = true,
}
Referencia de parámetros
Config.Locale
Idioma de la interfaz. Valores válidos:
en fr de es it pt nl pl ru tr ja ko zh ar
Coloca un archivo nuevo en locales/<code>.lua para añadir traducciones personalizadas. Usa cualquier locale existente como plantilla.
Config.OpenKey
Tecla por defecto para abrir el mezclador. Los jugadores pueden reasignarla en el menú de pausa de FiveM (Ajustes → Atajos). Los valores válidos siguen el formato RegisterKeyMapping de FiveM — habituales: F1–F12, letras, teclado numérico, etc.
Config.OpenCommand
Alias del comando de chat. Con el valor por defecto audiomixer, los jugadores pueden escribir /audiomixer para abrir el mezclador.
Config.KVPPrefix
Prefijo de las claves en las que se guardan los volúmenes de cada jugador (una clave KVP de cliente por canal: prefijo + ID del canal). Cambiarlo hace que todos los jugadores vuelvan a empezar desde Config.DefaultVolume, así que déjalo como está una vez que los jugadores hayan guardado sus ajustes.
Config.DefaultVolume
Volumen aplicado a todas las categorías en la primera conexión (cuando no existe ningún valor guardado). Rango 0–100 (precisión 1%). También es el valor al que vuelven la tecla de restablecer (R) y el export resetAll.
100= volumen máximo — recomendado0= silenciado en el primer inicio (no recomendado salvo que quieras un silencio por defecto)
Config.Categories
Pon cualquier entrada en false para ocultar esa categoría de la interfaz del mezclador. El control deslizante no aparecerá, el parche de escena de audio correspondiente no se aplicará y los exports la ignoran (setVolume devuelve false).
Ejemplo — ocultar el control deslizante de la radio:
Config.Categories = {
weapons = true,
vehicles = true,
ambience = true,
weather = true,
speech = true,
peds = true,
scripted = true,
music = true,
radio = false, -- oculto
}
Config.Debug
Activa los mensajes de depuración en la consola F8 del cliente:
[HZ-AudioMixer] Scene active
Útil para la solución de problemas. Deja false en producción.
Personalizar la interfaz
El panel del mezclador está construido con el kit UI de hz_lib, como las demás pantallas HZ. Los archivos de html/ están fuera de Asset Escrow: index.html (estructura), style.css (disposición del panel) y app.js (filas, grupos, teclado).
Colores y fuentes
En este recurso no hay ningún color ni fuente que configurar. El panel usa tu tema hz_lib: cambia el acento, las superficies y las fuentes en /hzpanel (pestaña Appearance), consulta el panel de administración de hz_lib. Todas las pantallas HZ siguen el cambio.
Dónde cambiar qué
| Qué | Dónde |
|---|---|
| Textos: título, nombres de los grupos, nombres y descripciones de los canales, indicaciones de teclas, pregunta de restablecimiento | locales/<code>.lua (claves ui_* y cat_*) |
| Ocultar un canal | Config.Categories |
| Grupos y orden de los canales | GROUPS en html/app.js |
Paso de las teclas de flecha (5%, Shift para 1%) | STEP en html/app.js |
| Iconos de los canales | ICONS en html/app.js (SVG en línea) |
| Ancho y relleno del panel, fondo oscuro detrás del panel | .amx-panel y .amx-shade en html/style.css |
hz-* vienen del kit de hz_lib y las comparten todas las pantallas HZ. Cambia el estilo de las clases amx-* en style.css en lugar de las del kit.Disposición y secciones
Las categorías se agrupan en 4 secciones lógicas (Acción, Entorno, Personas, Audio). Edita el array GROUPS al principio de html/app.js:
const GROUPS = [
{ key: 'sectionAction', fallback: 'Action', ids: ['weapons', 'vehicles'] },
{ key: 'sectionEnv', fallback: 'Environment', ids: ['ambience', 'weather'] },
{ key: 'sectionPeople', fallback: 'People', ids: ['speech', 'peds'] },
{ key: 'sectionAudio', fallback: 'Audio', ids: ['scripted', 'music', 'radio'] },
];
Añade, quita o reordena los grupos libremente. Un canal que no está en ningún grupo no se muestra. Los nombres de las cuatro secciones vienen del archivo de locale, en las claves ui_section_*; un grupo que añadas muestra su texto fallback.
Añadir un idioma personalizado
- Copia
locales/en.lua→locales/<tu_codigo>.lua - Traduce los valores (las claves deben seguir siendo las mismas)
- Define
Config.Locale = '<tu_codigo>' - Reinicia el recurso
-- locales/myloc.lua
return {
['ui_title'] = 'Mon Mixeur',
['ui_section_action'] = 'Action',
-- ... (consulta en.lua para la lista completa)
['cat_weapons'] = 'Armes',
['cat_weapons_desc'] = 'Armes à feu, explosions',
-- ...
}
Paso siguiente
- Exports y Eventos — integrar el mezclador en tu propio menú de pausa / NUI
- FAQ
