Configuração
Todas as configurações ficam em config/config.lua. O arquivo está fora do Asset Escrow — totalmente modificável.
Config = {}
Config.Locale = 'en' -- 14 idiomas disponíveis
Config.Debug = false -- Logs no console F8
Config.OpenKey = 'F7' -- Tecla padrão (modificável no menu de pausa)
Config.OpenCommand = 'audiomixer' -- Comando no chat
Config.KVPPrefix = 'hz_amix_v2_' -- Prefixo de armazenamento (não altere depois de colocar em produção)
Config.DefaultVolume = 100 -- 0-100, 100 = volume máximo (precisão de 1%)
Config.Categories = {
weapons = true,
vehicles = true,
ambience = true,
weather = true,
speech = true,
peds = true,
scripted = true,
music = true,
radio = true,
}
Referência dos parâmetros
Config.Locale
Idioma da interface. Valores válidos:
en fr de es it pt nl pl ru tr ja ko zh ar
Coloque um novo arquivo em locales/<codigo>.lua para adicionar traduções personalizadas. Use qualquer locale existente como modelo.
Config.OpenKey
Tecla padrão para abrir o mixer. Os jogadores podem modificá-la no menu de pausa do FiveM (Configurações → Atalhos). Os valores válidos seguem o formato RegisterKeyMapping do FiveM — os mais comuns: F1–F12, letras, teclado numérico, etc.
Config.OpenCommand
Alias do comando no chat. Com o valor padrão audiomixer, os jogadores podem digitar /audiomixer para abrir o mixer.
Config.KVPPrefix
Prefixo das chaves em que os volumes de cada jogador são salvos (uma chave KVP no cliente por canal: prefixo + ID do canal). Alterá-lo faz todos os jogadores recomeçarem a partir de Config.DefaultVolume, então não mexa nele depois que os jogadores já tiverem salvo as suas configurações.
Config.DefaultVolume
Volume aplicado a todas as categorias na primeira conexão (quando não existe nenhum valor salvo). Faixa 0–100 (precisão de 1%). É também o valor para o qual voltam a tecla de redefinição (R) e o export resetAll.
100= volume máximo — recomendado0= mudo no primeiro uso (não recomendado, a menos que você queira um silêncio padrão)
Config.Categories
Defina qualquer entrada como false para ocultar essa categoria da interface do mixer. O controle não aparece, o patch de cena de áudio correspondente não é aplicado e os exports a ignoram (setVolume retorna false).
Exemplo — ocultar o controle do rádio:
Config.Categories = {
weapons = true,
vehicles = true,
ambience = true,
weather = true,
speech = true,
peds = true,
scripted = true,
music = true,
radio = false, -- oculto
}
Config.Debug
Ativa as mensagens de debug no console F8 do cliente:
[HZ-AudioMixer] Scene active
Útil para a solução de problemas. Deixe false em produção.
Personalização da interface
O painel do mixer é construído com o kit de UI do hz_lib, como as outras telas HZ. Os arquivos de html/ estão fora do Asset Escrow: index.html (estrutura), style.css (layout do painel) e app.js (linhas, grupos, teclado).
Cores e fontes
Não há nenhuma cor nem fonte para definir neste recurso. O painel usa o seu tema hz_lib: altere o destaque, as superfícies e as fontes no /hzpanel (aba Appearance), veja o painel de administração do hz_lib. Todas as telas HZ acompanham a mudança.
Onde alterar o quê
| O quê | Onde |
|---|---|
| Textos: título, nomes dos grupos, nomes e descrições dos canais, dicas de teclas, pergunta de redefinição | locales/<codigo>.lua (chaves ui_* e cat_*) |
| Ocultar um canal | Config.Categories |
| Grupos e ordem dos canais | GROUPS em html/app.js |
Passo das setas (5%, Shift para 1%) | STEP em html/app.js |
| Ícones dos canais | ICONS em html/app.js (SVG inline) |
| Largura e espaçamento do painel, sombra escura atrás do painel | .amx-panel e .amx-shade em html/style.css |
hz-* vêm do kit do hz_lib e são compartilhadas por todas as telas HZ. Reestilize as classes amx-* em style.css em vez das classes do kit.Layout e seções
As categorias são agrupadas em 4 seções lógicas (Ação, Ambiente, Pessoas, Áudio). Edite o array GROUPS no topo 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'] },
];
Adicione, remova e reordene à vontade. Um canal que não está em nenhum grupo não é exibido. Os nomes das quatro seções vêm do arquivo de locale, nas chaves ui_section_*; um grupo que você adicionar mostra o texto do seu fallback.
Adicionar um idioma personalizado
- Copie
locales/en.lua→locales/<seu_codigo>.lua - Traduza os valores (as chaves devem continuar as mesmas)
- Defina
Config.Locale = '<seu_codigo>' - Reinicie o recurso
-- locales/myloc.lua
return {
['ui_title'] = 'Mon Mixeur',
['ui_section_action'] = 'Action',
-- ... (veja en.lua para a lista completa)
['cat_weapons'] = 'Armes',
['cat_weapons_desc'] = 'Armes à feu, explosions',
-- ...
}
Próxima etapa
- Exports & Eventos — integrar o mixer no seu próprio menu de pausa / NUI
- FAQ
