If I'm currently using vMenu's built-in voice chat, how should I switch to pma-voice?
vMenu's voice chat and pma-voice (or other dedicated voice resources) will conflict. Before installing pma-voice, ensure you disable vMenu's voice chat. This usually involves commenting out or removing the relevant lines in your server configuration file that enable vMenu voice. Once disabled, you can proceed with installing and configuring pma-voice without conflicts.
What are the key differences between Mumble (mumble-voip) and pma-voice, and which one should I choose?
Both mumble-voip and pma-voice utilize the built-in FiveM Mumble client. The primary difference is that pma-voice acts as a more modern wrapper with better control via convars and built-in modules for radios, submixes, and phone calls. Mumble-voip is a more basic, classic implementation. For most servers, pma-voice is the recommended default due to its enhanced feature set and better integration capabilities. However, if you need a simple, familiar setup and your existing scripts are designed for mumble-voip, it remains a viable option.
What TeamSpeak ServerUniqueIdentifier and Channel settings do I need to configure for SaltyChat, and where do I find them?
SaltyChat requires a TeamSpeak 3 server for voice communications. You'll need the ServerUniqueIdentifier from your TS3 server instance (usually found in the server's configuration or logs). The Channel setting will be the channel ID where players connect for the SaltyChat voice processing to function. This ID is specific to your TeamSpeak server setup. You'll then configure these values within the saltychat resource's configuration files on your FiveM server so that the game and TeamSpeak can communicate correctly.
Turn framework research into a launch-ready script stack
Use this guide to narrow the framework decision, then move into the core commercial hubs for verified scripts, curated bundles, and a faster server launch path.
Users cycle modes via the configured key (or through your HUD). (GitHub)
Radio integration basics
Use rp-radio. Exports (examples):
-- give/take radio
exports["rp-radio"]:SetRadio(true)
-- force channel
exports["rp-radio"]:SetRadioChannel(1)
See rp-radio thread for ESX/QBCore usage & itemization. (Cfx.re Community)
Quick test & validation
Join, speak in proximity; 2) Toggle modes; 3) If using rp-radio, push-to-talk; 4) resmon 1 → voice scripts at ~0.00–0.02 ms idle. Related:/performance, /eclipse-phone-mumble.
Installation & Setup — pma-voice
Proximity cycle UI (pma-voice)
Requirements
FXServer (recent artifacts), OneSync.
Do not run any other voice system (e.g., vMenu voice) concurrently. (GitHub)
Canonical server.cfg convars
pma-voice is configured entirely via convars. Below is a sane baseline:
pma-voice convars & defaults documented in the README; note the renames: voice_defaultPhoneVolume → voice_defaultCallVolume, voice_enablePhones → voice_enableCalls. (GitHub)
Some options (e.g., NativeAudio) may require a resource restart to take effect. (Cfx.re Community)
Proximity models & submixes
Keep voice_useNativeAudio=true to apply radio/call submix FX.
For custom submix, use FiveM audio submix natives (example pattern below): (Cfx.re Docs)
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
Quick test & validation
Join, press F11 to cycle proximity; hold Left Alt (LMENU) for radio (default).
resmon 1 → pma-voice ~0.00–0.02 ms idle; radio/call submix audible when talking. Related:/performance-tuning, /gcphone.
Installation & Setup — SaltyChat
Requirements
TeamSpeak 3 server (your box or hosted), TS3 client for players.
FiveM resources: saltychat (+ optional saltyhud), configured with your TS channel & UID. (GitHub)
Install steps
Download latest saltychat release → drop into resources/.
Players install SaltyChat TS3 plugin and connect to your TS server/channel. (GitHub)
Radio/phone bridging (patterns)
Use provided client/server events & exports (e.g., SetRadioChannel, AddPlayerToCall) from saltychat. Tie into your radio items/phone apps. (GitHub)
Quick test & validation
TS3 connected, plugin Loaded, join city → talk in proximity, test radio key, place a phone call.
**Get the full checklist & downloads:** [https://vertexmods.com/blog/fivem-voice-mumble-saltychat-pma-voice-guide](https://vertexmods.com/blog/fivem-voice-mumble-saltychat-pma-voice-guide).
Related:/saltychat-move-fix, /performance.
Tuning & Troubleshooting (All stacks)
Tip — overlays: Disable/allowlist overlays (Discord, GeForce Experience, RivaTuner/Afterburner) if voice cuts when pressing PTT. Note — NativeAudio: Use it (pma/mumble) to unlock submix & cleaner effects. (Cfx.re Docs)
Most common fixes
Symptom
Likely Cause
Fix
Time
People nearby cannot hear me
Wrong input device / OS mic permissions
Select the correct mic in Windows/macOS; restart FiveM/TS3.
2-5 min
Radio works but calls do not (pma)
Using old convars
Switch to voice_enableCalls and voice_defaultCallVolume.
Rebind FiveM/TS3 PTT; avoid overlays capturing the key.
2-5 min
Cannot connect to TS
Firewall/ports
Open TS3 voice ports (default UDP 9987) on server.
5-15 min
Troubleshooting flow
Confirm only one voice resource runs. 2) Check convars at runtime (getr voice_*). 3) Validate device/OS level. 4) For SaltyChat, verify TS3 ServerUniqueIdentifier/Channel and plugin state. 5) Inspect resmon and txAdmin live console.
Is SaltyChat better than pma-voice for radios?
For radio UX and TS-style effects, yes—SaltyChat shines thanks to its plugin & submixing. pma-voice is simpler to run, with lower moving parts. See Integrations. (GitHub)
Do players need TeamSpeak for SaltyChat?
Yes. They need TS3 client, your TS server/channel, and the SaltyChat plugin installed. (GitHub)
What convars matter most for pma-voice? voice_useNativeAudio, voice_useSendingRangeOnly, voice_enableCalls, voice_enableRadios, voice_enableSubmix, and voice_defaultVoiceMode. (GitHub)
Can I swap from Mumble to pma-voice mid-season?
Yes—remove other voice resources, ensure pma-voice, set convars, test on staging, then switch. Preserve radio/phone integrations.
My radio sounds flat on pma-voice.
Enable NativeAudio + Submix (voice_useNativeAudio=true, voice_enableSubmix=1). (GitHub, Cfx.re Docs)
pma-voice “phones” convars don’t work.
Use the renamed voice_enableCalls and voice_defaultCallVolume. (GitHub)
Vehicle passengers cut out on Mumble.
Update to latest mumble-voip and use use2dAudioInVehicles if needed. (GitHub)
Which proximity distances are sane?
Start with ~2.5 m / 8 m / 20 m (whisper/normal/shout). Adjust to map density and RP style. (GitHub)
Do I need vMenu voice?
No. Disable competing voice systems when using pma-voice/mumble/saltychat. (GitHub)
How do I measure voice latency?
Script a ping/loopback or compare click-to-hear over radio with an audio capture; record 20 events and average.
Does SaltyChat increase latency?
Slightly—the TS leg adds a few ms versus pure builtin Mumble. Keep TS on the same host to minimize this. (GitHub)
Why does changing NativeAudio not apply live?
Some convars require resource restart; toggle and restart pma-voice. (Cfx.re Community)
Can I mix ESX & QBCore radios?
Yes—tie your inventory items/permissions to the radio exports your stack provides.
Changelog & Credits
Version history
Date
Version
Notes
2025-09-09
1.0
Initial release: installs, convars, tuning, and benchmarks.
Credits (upstream docs)
pma-voice (AvarianKnight GitHub) — convars, exports, and guidance. (GitHub)
How do I install Voice on FiveM: Mumble, SaltyChat & pma-voice?
_Proximity cycle UI (pma-voice)_ * FXServer (recent artifacts), OneSync. * Do not run any other voice system (e.g., vMenu voice) concurrently. (GitHub)
How do I install Voice on FiveM: Mumble, SaltyChat & pma-voice?
 * TeamSpeak 3 server (your box or hosted), TS3 client for players. * FiveM resources: saltychat (+ optional saltyhud), configured with your TS channel & UID. (GitHub)
How do I fix common Voice on FiveM: Mumble, SaltyChat & pma-voice issues?
Most common fixes Troubleshooting flow 1. Confirm only one voice resource runs. 2) Check convars at runtime (getr voice_*). 3) Validate device/OS level. 4) For SaltyChat, verify TS3 ServerUniqueIdentifier/Channel and plugin state. 5) Inspect resmon and txAdmin live console.