
Voice on FiveM: Mumble / SaltyChat / pma-voice (Setup, Tu…
pma-voice, Mumble and SaltyChat quick answer
Use one voice stack at a time. Most modern FiveM servers should start with pma-voice unless they need a TeamSpeak-based SaltyChat workflow.
- Do not run pma-voice, mumble-voip, and SaltyChat together on the same live server.
- Verify voice convars, radio/call integrations, and the F11 or voice-range key after every change.
- Test proximity, radio, phone calls, reconnects, and permissions with normal player accounts.
Related shop paths: Script telefono | Strumenti di amministrazione | FiveM Scripts
You’ve got three real options for FiveM voice systems:
- 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 /prestazioneAggiungi anche ai preferiti Scarica e guida SaltyChat: https://fivemx.com/saltychat-download/.
In questa pagina
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. | garantire 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. | garantire 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. | inizia 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 assicura mumble-voip # Facoltativo: radio in-game su mumble-voip assicura rp-radio # Facoltativo: abilita la voce FiveM NativeAudio/submix a livello globale 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, "Sussurro" }, { 8.0, "Normale" }, { 20.0, "Urlo" }, }
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):
-- esportazioni radio give/take["rp-radio"]:SetRadio(true) -- esportazioni canale force["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 assicura pma-voice # Modello audio setr voice_useNativeAudio true # submix e filtri setr voice_useSendingRangeOnly true # UI / prossimità setr voice_enableUi 1 setr voice_enableProximityCycle 1 setr voice_defaultCycle F11 setr voice_defaultVoiceMode 2 # 1=Sussurro, 2=Normale, 3=Urlo # Radio e chiamate setr voice_enableRadios 1 setr voice_enableCalls 1 # sostituisce il vecchio '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_defaultVolume telefono→voice_defaultCallVolume,voice_enableTelefoni→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)
submix locale = CreateAudioSubmix('radioFX') SetAudioSubmixEffectRadioFx(submix, 1) AddAudioSubmixOutput(submix, 1) -- Applica a tutti (ciclo di esempio) per _, 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-voce~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:
chat salata(+ facoltativosaltyhud), configurato con il tuo canale TS e UID. (GitHub)
Passaggi di installazione
- Scarica l'ultima versione chat salata rilasciare → rilasciare
risorse/. - aggiungere a
server.cfg:
avvia saltychat avvia saltyhud # HUD opzionale
- Modificare
risorse/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,
Imposta canale radio,AggiungiGiocatoreAChiamata) 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.
Ottieni la checklist completa e i download: https://fivemx.com/saltychat-download/.
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 sbloccare effetti submix e cleaner.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 (
ottenere voce_*). 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.
Risorse di SaltyChat: https://fivemx.com/saltychat-download/
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:
-- Esempio: inizia/termina una chiamata exports['pma-voice']:setCallChannel(1001) -- unisciti alla chiamata exports['pma-voice']:removePlayerFromCall() -- riaggancia
Le convar devono usare il Chiamata nomi (non vecchi Telefono) nella voce pma corrente. (GitHub)
- Telefoni (SaltyChat):
-- Server: aggiungi giocatori a una chiamata 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
voce.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
- Scarica e guida SaltyChat: https://fivemx.com/saltychat-download/
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_defaultModalità vocale. (GitHub)
Posso passare da Mumble a pma-voice a metà stagione?
Sì, rimuovi altre risorse vocali, garantire 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-voce. (Comunità Cfx.re)
Can I mix ESX e QBCore radios?
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)






