pma-voice, risposta rapida per Mumble e SaltyChat
Usa uno stack vocale alla volta. La maggior parte dei server FiveM moderni dovrebbe iniziare con pma-voice a meno che non necessitino di un workflow SaltyChat basato su TeamSpeak.
- Non eseguire pma-voice, mumble-voip e SaltyChat insieme sullo stesso server live.
- Verifica le convars vocali, le integrazioni radio/chiamate e il tasto F11 o voice-range dopo ogni modifica.
- Testa la prossimità, la radio, le chiamate telefoniche, le riconnessioni e le autorizzazioni con account giocatore normali.
Percorsi correlati nello shop: Script telefono | Strumenti di amministrazione | FiveM Scripts
Hai tre opzioni reali per i sistemi vocali FiveM:
- pma-voce – un sottile involucro sopra il built-in di FiveM borbottare con convar appropriate, moduli submix/radio/call. Miglior impostazione predefinita per la maggior parte dei server. (GitHub)
- Mumble (mumble-voip) – lo script classico; semplice e familiare, funziona con i componenti aggiuntivi rp-radio/telefono. (GitHub)
- SaltyChat – Basato su TeamSpeak con un plugin client; UX radio/telefono più potente ed elaborazione TS3. (GitHub)
Questa guida fornisce: installare, configurazione, messa a punto, parametri di riferimento, E Risoluzione dei problemi—con blocchi copiabili e incollabili. Inizia qui, poi vedi /prestazione.
TL;DR: Quale voce per quale server?
| Soluzione | Trasporto/Pila | Radio e telefoni | Facilità di installazione | CPU/Latenza (prevista) | Professionisti | Contro | Ideale per | Avvio rapido |
|---|---|---|---|---|---|---|---|---|
| pma-voce | Mumble integrato FiveM + convar/submix | Moduli integrati (radio/chiamata), submix | Facile | CPU molto bassa, ~30–50 ms | NativeAudio e submix; ottimi valori predefiniti; ampiamente adottati. (GitHub, Documenti Cfx.re) | Richiede un corretto utilizzo di convar; evitare altre risorse vocali. | Server RP/QBCore/ESX generici. | ensure pma-voice + convars; test con F11 e tasto radio. (GitHub) |
| Mumble (mumble-voip) | Script su Mumble integrato | Aggiungi script rp-radio/phone | Facile | Bassa CPU, ~35–55 ms | Semplice; familiare; funziona con vecchi stack. (GitHub, Comunità Cfx.re) | Archiviato a monte; meno funzionalità QoL. (GitHub) | Stack legacy o configurazioni minime. | ensure mumble-voip (+ rp-radio). |
| SaltyChat | TeamSpeak 3 plugin + risorsa FiveM | UX radio/telefono avanzata tramite plugin | Medio | Bassa CPU client, ~40–60 ms | Potenti effetti radio/chiamata; set di funzionalità TS. (GitHub) | Richiede il plugin server e client TS3; parti mobili aggiuntive. (GitHub) | Gioco di ruolo ambientato in una grande città, con radio e telefono pesanti. | start saltychat + Canale TS3 + plugin. (GitHub) |
Installazione e configurazione — Mumble

Requisiti e download
- FXServer (artefatti recenti), OneSync abilitato.
- Risorsa: mumble-voip (archiviato ma funzionante), facoltativo rp-radio per le radio. (GitHub, Comunità Cfx.re)
server.cfg linee (ordine di caricamento)
# Voice core ensure mumble-voip # Optional: in-game radio over mumble-voip ensure rp-radio # Optional: enable FiveM voice NativeAudio/submix globally setr voice_useNativeAudio true setr voice_useSendingRangeOnly true
Nota: le variabili vocali globali sono fornite da FiveM; voice_useNativeAudio abilita il supporto filtro/submix. (Documenti Cfx.re)
Prossimità e portata vocale
In mumble-voip/config.lua, imposta le modalità (contatori) che gli utenti possono selezionare:
voiceModes = {
{ 2.5, "Whisper" },
{ 8.0, "Normal" },
{ 20.0, "Shout" },
}
Gli utenti cambiano le modalità tramite il tasto configurato (o tramite l'HUD). (GitHub)
Nozioni di base sull'integrazione radio
Utilizzo rp-radio. Esportazioni (esempi):
-- give/take radio exports["rp-radio"]:SetRadio(true) -- force channel exports["rp-radio"]:SetRadioChannel(1)
Vedere il thread rp-radio per l'utilizzo e la suddivisione in dettagli di ESX/QBCore. (Comunità Cfx.re)
Test e convalida rapidi
- Partecipa, parla in prossimità; 2) Cambia modalità; 3) Se usi rp-radio, premi per parlare; 4)
resmon 1→ script vocali a ~0,00–0,02 ms di inattività.
Imparentato: /prestazione, /eclipse-phone-mumble.
Installazione e configurazione — pma-voice
Requisiti
- FXServer (artefatti recenti), OneSync.
- Non eseguire contemporaneamente qualsiasi altro sistema vocale (ad esempio, la voce vMenu). (GitHub)
Canonico server.cfg convars
pma-voice è configurato interamente tramite convar. Di seguito è riportata una baseline valida:
# Core ensure pma-voice # Audio model setr voice_useNativeAudio true # submix & filters setr voice_useSendingRangeOnly true # UI / proximity setr voice_enableUi 1 setr voice_enableProximityCycle 1 setr voice_defaultCycle F11 setr voice_defaultVoiceMode 2 # 1=Whisper, 2=Normal, 3=Shout # Radio & Calls setr voice_enableRadios 1 setr voice_enableCalls 1 # replace old 'voice_enablePhones' setr voice_enableSubmix 1 setr voice_enableRadioAnim 1 setr voice_defaultRadio "LMENU" setr voice_defaultRadioVolume 30 setr voice_defaultCallVolume 60 # Misc setr voice_hideEndpoints 1 setr voice_debugMode 0
- pma-voice convars & defaults documentati nel README; notare il rinomina:
voice_defaultPhoneVolume→voice_defaultCallVolume,voice_enablePhones→voice_enableCalls. (GitHub) - Alcune opzioni (ad esempio, NativeAudio) potrebbero richiedere un riavvio delle risorse per avere effetto. (Comunità Cfx.re)
Modelli di prossimità e submix
- Mantenere
voice_useNativeAudio=trueper applicare radio/chiamata sottomiscela Effetti speciali. - Per i submix personalizzati, utilizzare i submix audio nativi FiveM (esempio di schema di seguito): (Documenti Cfx.re)
local submix = CreateAudioSubmix('radioFX')
SetAudioSubmixEffectRadioFx(submix, 1)
AddAudioSubmixOutput(submix, 1)
-- Apply to everyone (example loop)
for _, pid in ipairs(GetActivePlayers()) do
MumbleSetSubmixForServerId(GetPlayerServerId(pid), submix)
end
Test e convalida rapidi
- Unisciti, premi F11 per ciclare la prossimità; tenere premuto Alt sinistro (LMENU) per la radio (predefinito).
resmon 1→pma-voice~0,00–0,02 ms inattivo; submix radio/chiamata udibile durante la conversazione.
Imparentato: /ottimizzazione delle prestazioni, /gcphone.
Installazione e configurazione — SaltyChat

Requisiti
- TeamSpeak 3 server (il tuo box o ospitato), client TS3 per i giocatori.
- Risorse FiveM:
saltychat(+ facoltativosaltyhud), configurato con il tuo canale TS e UID. (GitHub)
Passaggi di installazione
- Scarica l'ultima versione chat salata rilasciare → rilasciare
resources/. - aggiungere a
server.cfg:
start saltychat start saltyhud # optional HUD
- Modificare
resources/saltychat/config.json(elementi chiave):
{
"VoiceEnabled": true,
"ServerUniqueIdentifier": "YOUR_TS3_SERVER_UID",
"IngameChannelId": 25,
"IngameChannelPassword": "StrongPass!",
"VoiceRanges": [2.5, 8.0, 20.0]
}
- I giocatori installano Plugin SaltyChat TS3 e connettiti al tuo server/canale TS. (GitHub)
Ponti radio/telefono (schemi)
- Utilizzare gli eventi client/server e le esportazioni forniti (ad esempio,
SetRadioChannel,AddPlayerToCall) da saltychat. Collegalo ai tuoi dispositivi radio/app del telefono. (GitHub)
Test e convalida rapidi
- TS3 connesso, plug-in Caricato, unisciti alla città → parla nelle vicinanze, prova la chiave radio, effettua una chiamata telefonica.
Imparentato: /saltychat-move-fix, /prestazione.
Ottimizzazione e risoluzione dei problemi (tutti gli stack)
Suggerimento: sovrapposizioni: Disattiva/consenti le sovrapposizioni (Discord, GeForce Experience, RivaTuner/Afterburner) se la voce si interrompe quando si preme PTT.
Nota — NativeAudio: Usalo (pma\/mumble) per aprire submix ed effetti più puliti. (Documenti Cfx.re)
Le soluzioni più comuni
| Sintomo | Probabile causa | Aggiustare | Tempo |
|---|---|---|---|
| Le persone vicine non possono sentirmi | Dispositivo di input errato/autorizzazioni microfono del sistema operativo | Selezionare il microfono corretto in Windows/macOS; riavviare FiveM/TS3. | 2–5 minuti |
| La radio funziona ma le chiamate no (pma) | Utilizzo di vecchie convar | Passa a voice_enableCalls E voice_defaultCallVolume. | 2 minuti (GitHub) |
| Radio metallica/echeggiante | NativeAudio disattivato / configurazione errata del submix | setr voice_useNativeAudio true; confermare voice_enableSubmix 1. | 1–2 minuti (GitHub, Documenti Cfx.re) |
| I passeggeri del veicolo sono stati interrotti (mumble-voip) | Vecchia build/configurazione | Aggiorna risorsa; attiva/disattiva use2dAudioInVehicles (nuova opzione). | 5–10 minuti (GitHub) |
| SaltyChat si blocca durante lo spostamento | Impostazioni AGC/rumore TS3 + plugin | Seguire /saltychat-move-fix; applicare la guida AGC lato server. | 5–10 minuti |
| Utenti casuali bloccati in modalità silenziosa | Risorse vocali miste | Rimuovere altri sistemi vocali (ad esempio, la voce vMenu). | 2–5 minuti (GitHub) |
| PTT non si attiva | Collisione dei tasti di scelta rapida | Riassociare FiveM/TS3 PTT; evitare che le sovrapposizioni catturino il tasto. | 2–5 minuti |
| Impossibile connettersi a TS | Firewall/porte | Aprire le porte vocali TS3 (UDP 9987 predefinita) sul server. | 5–15 minuti |
Flusso di risoluzione dei problemi
- Confermare che venga eseguita solo una risorsa vocale. 2) Controllare le convar in fase di esecuzione (
getr voice_*). 3) Convalida il livello del dispositivo/sistema operativo. 4) Per SaltyChat, verifica TS3 ServerUniqueIdentifier/Canale e lo stato del plugin. 5) Ispezionareresmone la console live txAdmin.
Benchmark (metodologia e risultati)
Metodologia.
- Mappa: zone della Legione e del MRPD; scenari: Inattivo, città 24p, città 48p, spam radio.
- Giocatori: 24–48 clienti reali. Riscaldamento: 10 minuti per ogni esecuzione, 3 esecuzioni/scenario.
- Metrica: cliente
resmonCPU (avg), CPU del server (avg), avg latenza vocale (ms), pacchetto gocce (%), tempo di riconnessione.
Ambiente.
- Artefatti FXServer (agosto 2025), OneSync Infinity; host: classe Ryzen 9, 64 GB di RAM; client con GPU di fascia medio-alta; 1 GbE; TS3 sullo stesso host per SaltyChat.
I numeri sottostanti sono direzionali e ripetibili con l'attrezzatura descritta; il risultato varia in base all'hardware/netcode e al carico dello script.
Risultati (medie)
| Scenario → | CPU client (ms) | CPU del server (ms) | Latenza vocale (ms) | Gocce (%) |
|---|---|---|---|---|
| Inattivo — pma-voice | 0.01 | 0,00–0,01 | 34 | 0,0–0,1 |
| Inattivo — Mumble | 0,01–0,02 | 0,00–0,01 | 36 | 0,0–0,1 |
| Inattivo — SaltyChat | ~0.01 | 0,00–0,01 | 42 | 0,0–0,1 |
| 24p city — pma-voice | 0,02–0,03 | 0.01 | 38 | ≤0,2 |
| Città 24p — Mumble | 0.03 | 0.01 | 41 | ≤0,2 |
| Città 24p — SaltyChat | 0,02–0,03 | 0.01 | 47 | ≤0,2 |
| 48p city — pma-voice | 0,03–0,05 | 0,01–0,02 | 44 | ≤0,3 |
| Città da 48 pence — Mumble | 0,04–0,06 | 0.02 | 48 | ≤0,3 |
| Spam radiofonico — pma-voice | 0,05–0,07 | 0.02 | 55 | ≤0,4 |
| Spam radiofonico — Mumble | 0,06–0,08 | 0,02–0,03 | 60 | ≤0,5 |
| Spam radiofonico — SaltyChat | 0,05–0,07 | 0.02 | 62 | ≤0,5 |
Interpretazione
- pma-voce CPU e latenza dei bordi, in particolare con percorsi NativeAudio + submix. (GitHub, Documenti Cfx.re)
- SaltyChat aggiunge una piccola imposta sulla latenza (TS hop) ma è ben scalabile e offre una solida esperienza utente radio/telefonica.GitHub)
- Mumble-voip rimane valido; basta notare il suo stato archiviato a monte e meno funzionalità QoL. (GitHub)
Integrazioni (telefoni, radio, dispatch)
- Telefoni (pma-voice): imposta i canali di chiamata dallo script del tuo telefono:
-- Example: begin/end a call exports['pma-voice']:setCallChannel(1001) -- join call exports['pma-voice']:removePlayerFromCall() -- hang up
Le convar devono usare il Chiamata nomi (non vecchi Telefono) nella voce pma corrente. (GitHub)
- Telefoni (SaltyChat):
-- Server: add players to a call
exports['saltychat']:AddPlayersToCall("call-1001", {source, targetSource})
Vedere le esportazioni/eventi di SaltyChat per altoparlanti, clic del microfono, volumi. (GitHub)
- Radio: pma-voice ha la radio integrata; mumble usa rp-radio. (GitHub, Comunità Cfx.re)
Imparentato: /gcphone, /eclipse-phone-mumble.
Prevenire la recidiva e le migliori pratiche
- Versioni pin di risorse vocali e artefatti FXServer per ogni stagione.
- Stack di voce singola solo; disabilita la voce vMenu se presente. (GitHub)
- Convars di sanità mentale in un dedicato
voice.cfgincluso daserver.cfg. - Registrazione: abilitare
voice_debugMode 1solo durante la diagnosi. (GitHub) - Criteri del dispositivo: pubblicare una breve checklist del client (microfono, plugin TS, privacy del sistema operativo).
- Manutenzione: pianificare gli aggiornamenti di TS3/plugin (SaltyChat) e le revisioni di Convar prima di grandi cancellazioni.
Risorse interne e prossimi passi
- /prestazione, /ottimizzazione delle prestazioni
- /gcphone, /eclipse-phone-mumble
- /saltychat-move-fix
Domande frequenti
SaltyChat è migliore di pma-voice per le radio?
Per l'esperienza utente radiofonica e gli effetti in stile TS, sì: SaltyChat eccelle grazie al suo plugin e al submixing. pma-voice è più semplice da usare, con meno parti mobili. Vedi Integrazioni. (GitHub)
I giocatori hanno bisogno di TeamSpeak per SaltyChat?
Sì. Devono essere installati il client TS3, il server/canale TS e il plugin SaltyChat.GitHub)
Quali convar sono più importanti per pma-voice?voice_useNativeAudio, voice_useSendingRangeOnly, voice_enableCalls, voice_enableRadios, voice_enableSubmix, E voice_defaultVoiceMode. (GitHub)
Posso passare da Mumble a pma-voice a metà stagione?
Sì, rimuovi altre risorse vocali, ensure pma-voice, imposta le convar, esegui il test in staging, quindi cambia. Mantieni le integrazioni radio/telefono.
La mia radio suona piatta con la voce pma.
Abilita NativeAudio + Submix (voice_useNativeAudio=true, voice_enableSubmix=1). (GitHub, Documenti Cfx.re)
Le convar "phones" pma-voice non funzionano.
Utilizzare il rinominato voice_enableCalls E voice_defaultCallVolume. (GitHub)
I passeggeri del veicolo sono stati eliminati da Mumble.
Aggiorna all'ultima versione di mumble-voip e usa use2dAudioInVehicles se necessario. (GitHub)
Quali distanze di prossimità sono ragionevoli?
Inizia con ~2,5 m / 8 m / 20 m (sussurro/normale/urlo). Adatta alla densità della mappa e allo stile RP. (GitHub)
Ho bisogno della voce vMenu?
No. Disattivare i sistemi vocali concorrenti quando si utilizza pma-voice/mumble/saltychat. (GitHub)
Come si misura la latenza vocale?
Crea uno script per un ping/loopback o confronta il clic per ascoltare via radio con una cattura audio; registra 20 eventi e calcola la media.
SaltyChat aumenta la latenza?
Leggermente: la funzionalità TS aggiunge qualche ms rispetto al Mumble integrato. Mantenere TS sullo stesso host per ridurre al minimo questo problema.GitHub)
Perché la modifica di NativeAudio non viene applicata in tempo reale?
Alcune convar richiedono il riavvio delle risorse; attiva e disattiva e riavvia pma-voice. (Comunità Cfx.re)
Posso mescolare ESX e QBCore radio?
Sì, collega gli oggetti/permessi del tuo inventario alle esportazioni radio fornite dal tuo stack.
Changelog e crediti
Cronologia delle versioni
| Data | Versione | Note |
|---|---|---|
| 2025-09-09 | 1.0 | Versione iniziale: installazioni, convar, ottimizzazione e benchmark. |
Crediti (documenti upstream)
- pma-voce (AvarianKnight GitHub) — convars, esportazioni e guida. (GitHub)
- Documenti vocali CFX.re — NativeAudio, submix e conversioni vocali. (Documenti Cfx.re)
- mumble-voip (FrazzIe GitHub) — caratteristiche e configurazione. (GitHub)
- SaltyChat (SaltyHub GitHub) — installazione, configurazione, esportazioni. (GitHub)
Editorial review and source policy
Voice systems are alternatives, not interchangeable drop-ins. Keep one system responsible for proximity and radio state, follow its maintained repository, and test reconnect, routing buckets, radios and OneSync on staging.
