Głos w FiveM: Mumble / SaltyChat / pma-voice (Konfiguracja, Ustawienia, Najlepsze praktyki)

Głos na FiveM: Mumble / SaltyChat / pma-voice (konfiguracja, tu…)

pma-voice, Mumble i SaltyChat szybka odpowiedź

Używaj jednego stosu głosu na raz. Większość nowoczesnych serwerów FiveM powinna zaczynać od pma-voice, chyba że wymagają przepływu pracy SaltyChat opartego na TeamSpeak.

  • Nie uruchamiaj pma-voice, mumble-voip i SaltyChat razem na tym samym serwerze na żywo.
  • Verify voice convars, radio/call integrations, and the F11 or voice-range key after every change.
  • Testuj bliskość, radio, rozmowy telefoniczne, ponowne połączenia i uprawnienia z normalnymi kontami graczy.

Powiązane ścieżki sklepowe: Skrypty telefonu | Admin Tools | Skrypty FiveM

Masz trzy realne opcje dla systemów głosowych FiveM:

  • pma-voice – cienka otoczka wbudowanego w FiveM mumble z odpowiednimi convars, modułami submix/radio/połączeń. Najlepsza domyślna opcja dla większości serwerów. (GitHub)
  • Mumble (mumble-voip) – klasyczny skrypt; prosty i znajomy, działa z dodatkami rp-radio/phone. (GitHub)
  • SaltyChat – Oparty na TeamSpeak z wtyczką kliencką; najsilniejszy interfejs użytkownika radia/telefonu i przetwarzanie TS3. (GitHub)

Ten przewodnik dostarcza: instalacja, konfiguracja, strojenie, benchmarki, oraz rozwiązywania problemów—z blokami do kopiowania i wklejania. Zacznij tutaj, a następnie zobacz /wydajność.



TL;DR: Który głos dla którego serwera?

RozwiązanieTransport/StosRadia i telefonyŁatwość konfiguracjiCPU/Opóźnienie (oczekiwane)ZaletyWadyNajlepsze dlaSzybki start
pma-voiceFiveM wbudowany Mumble + convars/podścieżkiWbudowane moduły (radio/połączenie), submixŁatwyBardzo niskie CPU, ~30–50 msNativeAudio i submix; świetne domyślne ustawienia; szeroko przyjęte. (GitHub, Dokumentacja Cfx.re)Wymaga poprawnego użycia convar; unikaj innych zasobów głosowych.Ogólne serwery RP/QBCore/ESX.ensure pma-voice + convars; testuj za pomocą F11 i klawisza radia. (GitHub)
Mumble (mumble-voip)Skrypt zamiast wbudowanego MumbleDodaj skrypt rp-radio/phoneŁatwyNiskie użycie CPU, ~35–55 msProste; znajome; działa ze starymi stosami. (GitHub, Społeczność Cfx.re)Zarchiwizowane upstream; mniej funkcji QoL. (GitHub)Starsze stosy lub minimalne konfiguracje.ensure mumble-voip (+ rp-radio).
SaltyChatTeamSpeak 3 wtyczka + FiveM zasóbBogaty interfejs użytkownika radia/telefonu przez wtyczkęŚredniNiskie CPU klienta, ~40–60 msSilne efekty radiowe/połączeń; zestaw funkcji TS. (GitHub)Wymaga serwera TS3 i wtyczki klienta; dodatkowe ruchome części. (GitHub)Duże miasto RP z intensywnym radiem/telefonem.start saltychat + kanał TS3 + wtyczka. (GitHub)

Instalacja & Setup — Mumble

mumble FiveM
Voice on FiveM: Mumble / SaltyChat / pma-voice (Setup, Tu... 4

Wymagania i pobieranie

  • FXServer (najnowsze artefakty), OneSync włączone.
  • Zasób: mumble-voip (zarchiwizowany, ale funkcjonalny), opcjonalny rp-radio dla radiotelefonów. (GitHub, Społeczność Cfx.re)

server.cfg linie (kolejność ładowania)

# 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

Uwaga: globalne convars głosowe są dostarczane przez FiveM; voice_useNativeAudio umożliwia obsługę filtrów/podścieżek. (Dokumentacja Cfx.re)

Zasięgi zbliżeniowe i głosowe

W mumble-voip/config.lua, ustaw tryby (metry), przez które użytkownicy mogą przełączać:

voiceModes = {
 { 2.5, "Whisper" },
 { 8.0, "Normal" },
 { 20.0, "Shout" },
}

Użytkownicy przełączają tryby za pomocą skonfigurowanego klawisza (lub przez Twój HUD). (GitHub)

Podstawy integracji radia

Używać rp-radio. Eksporty (przykłady):

-- give/take radio
exports["rp-radio"]:SetRadio(true)

-- force channel
exports["rp-radio"]:SetRadioChannel(1)

Zobacz wątek rp-radio, aby uzyskać informacje o użyciu i przedmiotach ESX/QBCore. (Społeczność Cfx.re)

Szybki test & walidacja

  1. Dołącz, mów w pobliżu; 2) Przełącz tryby; 3) Jeśli używasz rp-radio, naciśnij, aby mówić; 4) resmon 1 → skrypty głosowe przy ~0.00–0.02 ms bezczynności.
    Powiązane: /wydajność, /eclipse-phone-mumble.

Instalacja i konfiguracja — pma-voice

Wymagania

  • FXServer (najnowsze artefakty), OneSync.
  • Nie uruchamiać jakikolwiek inny system głosowy (np. vMenu voice) jednocześnie. (GitHub)

Kanoniczny server.cfg convars

pma-voice jest konfigurowany w całości za pomocą convars. Poniżej znajduje się rozsądna linia bazowa:

# 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
  • konvary pma-voice i domyślne są udokumentowane w pliku README; zwróć uwagę na zmiany nazw: voice_defaultPhoneVolumevoice_defaultCallVolume, voice_enablePhonesvoice_enableCalls. (GitHub)
  • Niektóre opcje (np. NativeAudio) mogą wymagać restart zasobu aby zacząć obowiązywać. (Społeczność Cfx.re)

Modele zbliżeniowe i podmiksy

  • Trzymać voice_useNativeAudio=true aby zastosować radio/połączenie submix FX.
  • Dla niestandardowego submixu, użyj natywnych funkcji audio FiveM (przykładowy wzorzec poniżej): (Dokumentacja 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

Szybki test & walidacja

  • Dołącz, naciśnij F11 aby przełączyć zasięg; przytrzymaj Lewy Alt (LMENU) dla radia (domyślnie).
  • resmon 1pma-voice ~0.00–0.02 ms bezczynności; submix radia/rozmowy słyszalny podczas mówienia.
    Powiązane: /performance-tuning, /gcphone.

Instalacja i konfiguracja — SaltyChat

SaltyChat FiveM
Voice on FiveM: Mumble / SaltyChat / pma-voice (Setup, Tu... 5

Wymagania

  • TeamSpeak 3 serwer (Twoje pudełko lub hosting), klient TS3 dla graczy.
  • Zasoby FiveM: saltychat (+ opcjonalnie saltyhud), skonfigurowane z Twoim kanałem TS & UID. (GitHub)

Kroki instalacji

  1. Pobierz najnowszą wersję saltychat wydanie → upuść do resources/.
  2. Dodaj do server.cfg:
start saltychat
start saltyhud # optional HUD
  1. Edytuj resources/saltychat/config.json (kluczowe przedmioty):
{
 "VoiceEnabled": true,
 "ServerUniqueIdentifier": "YOUR_TS3_SERVER_UID",
 "IngameChannelId": 25,
 "IngameChannelPassword": "StrongPass!",
 "VoiceRanges": [2.5, 8.0, 20.0]
}
  1. Gracze instalują Wtyczka SaltyChat TS3 i połącz się ze swoim serwerem/kanałem TS. (GitHub)

Mostkowanie radia/telefonu (wzorce)

  • Użyj dostarczonych zdarzeń i eksportów klienta/serwera (np., SetRadioChannel, AddPlayerToCall) z saltychat. Połącz się ze swoimi przedmiotami radiowymi/aplikacjami telefonicznymi. (GitHub)

Szybki test & walidacja

  • TS3 połączony, wtyczka Załadowano, dołącz do miasta → rozmawiaj w pobliżu, przetestuj klawisz radia, wykonaj połączenie telefoniczne.
    Powiązane: /saltychat-move-fix, /wydajność.

Strojenie i rozwiązywanie problemów (Wszystkie stosy)

Wskazówka — nakładki: Wyłącz/dodaj do białej listy nakładki (Discord, GeForce Experience, RivaTuner/Afterburner), jeśli dźwięk się przycina podczas naciskania PTT.
Uwaga — NativeAudio: Użyj go (pma/mumble), aby otworzyć efekty submix & cleaner.Dokumentacja Cfx.re)

Najczęstsze poprawki

ObjawPrawdopodobna przyczynaRozwiązanieCzas
Osoby w pobliżu nie słyszą mnieNieprawidłowe urządzenie wejściowe / uprawnienia mikrofonu systemu operacyjnegoWybierz właściwy mikrofon w Windows/macOS; zrestartuj FiveM/TS3.2–5 min
Radio działa, ale połączenia nie (pma)Używanie starych convarsPrzełącz na voice_enableCalls I voice_defaultCallVolume.2 min (GitHub)
Metaliczne/pogłosowe radioNativeAudio wyłączone / błędna konfiguracja podścieżkisetr voice_useNativeAudio true; potwierdź voice_enableSubmix 1.1–2 min (GitHub, Dokumentacja Cfx.re)
Pasażerowie pojazdu wycinają się (mumble-voip)Stara kompilacja / konfiguracjaZaktualizuj zasób; przełącz use2dAudioInVehicles (nowa opcja).5–10 min (GitHub)
SaltyChat przycina podczas ruchuUstawienia AGC/szumów TS3 + wtyczkaŚledź /saltychat-move-fix; zastosuj wskazówki AGC po stronie serwera.5–10 min
Losowi użytkownicy zablokowani na wyciszeniuMieszane zasoby głosoweUsuń inne systemy głosowe (np. vMenu voice).2–5 min (GitHub)
PTT nie działaKolizja skrótów klawiszowychZmień przypisanie PTT w FiveM/TS3; unikaj przechwytywania klawisza przez nakładki.2–5 min
Nie można połączyć się z TSZapora sieciowa/portyOtwórz porty głosowe TS3 (domyślnie UDP 9987) na serwerze.5–15 min

Przebieg rozwiązywania problemów

  1. Potwierdź, że działa tylko jeden zasób głosowy. 2) Sprawdź convars w czasie wykonania (getr voice_*). 3) Sprawdź poziom urządzenia/systemu operacyjnego. 4) Dla SaltyChat, zweryfikuj TS3 ServerUniqueIdentifier/Channel i stan wtyczki. 5) Sprawdź resmon i txAdmin konsola na żywo.

Benchmarki (Metodologia & wyniki)

Metodologia.

  • Mapa: strefy Legion & MRPD; scenariusze: Bezczynność, miasto 24p, miasto 48p, spam radiowy.
  • Gracze: 24–48 rzeczywistych klientów. Rozgrzewka: 10 min na przebieg, 3 przebiegi/scenariusz.
  • Metryki: client resmon CPU (średnio), CPU serwera (średnio), średnio opóźnienie głosu (ms), pakiet spadki (%), czas ponownego połączenia.

Środowisko.

  • Artefakty FXServer (sierpień 2025), OneSync Infinity; host: klasa Ryzen 9, 64 GB RAM; klienci mieszanka średnich/wysokich GPU; 1 GbE; TS3 na tym samym hoście dla SaltyChat.

Poniższe liczby są orientacyjne i powtarzalne w opisywanym zestawie; Twoje wyniki mogą się różnić w zależności od sprzętu/netkodu & obciążenia skryptami.

Wyniki (średnie)

Scenariusz →CPU klienta (ms)CPU serwera (ms)Opóźnienie głosu (ms)Spadki (%)
Bezczynność — pma-voice0.010.00–0.01340.0–0.1
Bezczynność — Mumble0.01–0.020.00–0.01360.0–0.1
Bezczynność — SaltyChat~0.010.00–0.01420.0–0.1
Miasto 24p — pma-voice0.02–0.030.0138≤0.2
Miasto 24p — Mumble0.030.0141≤0.2
24p city — SaltyChat0.02–0.030.0147≤0.2
Miasto 48p — pma-voice0.03–0.050.01–0.0244≤0.3
Miasto 48p — Mumble0.04–0.060.0248≤0.3
Radio spam — pma-voice0.05–0.070.0255≤0.4
Spam radiowy — Mumble0.06–0.080.02–0.0360≤0.5
Radio spam — SaltyChat0.05–0.070.0262≤0.5

Interpretacja

  • pma-voice wpływa na CPU i opóźnienie, szczególnie przy NativeAudio + ścieżkach podmixu. (GitHub, Dokumentacja Cfx.re)
  • SaltyChat dodaje niewielki narzut opóźnienia (skok TS), ale dobrze się skaluje i zapewnia solidne UX radia/telefonu. (GitHub)
  • Mumble-voip pozostaje opłacalny; należy jednak odnotować jego zarchiwizowany stan w górnym repozytorium i mniejszą liczbę funkcji QoL. (GitHub)

Integracje (telefony, radia, dyspozytor)

  • Telefony (pma-voice): ustaw kanały rozmów ze skryptu telefonu:
-- Example: begin/end a call
exports['pma-voice']:setCallChannel(1001) -- join call
exports['pma-voice']:removePlayerFromCall() -- hang up

Convars muszą używać Wywołaj nazwy (nie stare Telefon) w obecnym pma-voice. (GitHub)

  • Telefony (SaltyChat):
-- Server: add players to a call
exports['saltychat']:AddPlayersToCall("call-1001", {source, targetSource})

Zobacz exporty/eventy saltychat dla głośników, kliknięć mikrofonu, głośności. (GitHub)

Powiązane: /gcphone, /eclipse-phone-mumble.


Zapobieganie nawrotom i najlepsze praktyki

  • Przypnij wersje zasobów głosowych i artefaktów FXServer dla każdej wersji.
  • Pojedynczy stos głosowy tylko; wyłącz vMenu voice, jeśli jest obecny. (GitHub)
  • Konwary sanity w dedykowanym voice.cfg dołączone przez server.cfg.
  • Logowanie: włącz voice_debugMode 1 tylko podczas diagnozowania. (GitHub)
  • Polityka urządzenia: opublikuj krótką listę kontrolną dla klienta (mikrofon, wtyczka TS, prywatność systemu operacyjnego).
  • Konserwacja: zaplanuj aktualizacje TS3/wtyczki (SaltyChat) oraz przeglądy convar przed dużymi czyszczeniami.

Zasoby wewnętrzne i kolejne kroki

  • /wydajność, /performance-tuning
  • /gcphone, /eclipse-phone-mumble
  • /saltychat-move-fix

Często zadawane pytania

Czy SaltyChat jest lepszy niż pma-voice do radia?
Dla UX radia i efektów w stylu TS, tak—SaltyChat błyszczy dzięki swojej wtyczce & submiksowaniu. pma-voice jest prostszy w uruchomieniu, ma mniej ruchomych części. Zobacz Integracje. (GitHub)

Czy gracze potrzebują TeamSpeak do SaltyChat?
Tak. Potrzebują klienta TS3, twojego serwera/kanału TS oraz zainstalowanej wtyczki SaltyChat. (GitHub)

Które convary są najważniejsze dla pma-voice?
voice_useNativeAudio, voice_useSendingRangeOnly, voice_enableCalls, voice_enableRadios, voice_enableSubmix, oraz voice_defaultVoiceMode. (GitHub)

Czy mogę przełączyć się z Mumble na pma-voice w środku sezonu?
Tak — usuń inne zasoby głosowe, ensure pma-voice, ustaw convars, przetestuj na stagingu, a następnie przełącz. Zachowaj integracje radia/telefonu.

Moje radio brzmi płasko w pma-voice.
Włącz NativeAudio + Submix (voice_useNativeAudio=true, voice_enableSubmix=1). (GitHub, Dokumentacja Cfx.re)

Konwary „telefony” pma-voice nie działają.
Użyj przemianowanego voice_enableCalls I voice_defaultCallVolume. (GitHub)

Pasażerowie pojazdu wycięci w Mumble.
Zaktualizuj do najnowszej wersji mumble-voip i użyj use2dAudioInVehicles jeśli potrzebne. (GitHub)

Które odległości bliskości są rozsądne?
Zacznij od ~2.5 m / 8 m / 20 m (szept/normal/krzyk). Dostosuj do gęstości mapy i stylu RP. (GitHub)

Czy potrzebuję głosu vMenu?
Nie. Wyłącz konkurencyjne systemy głosowe podczas korzystania z pma-voice/mumble/saltychat. (GitHub)

Jak zmierzyć opóźnienie głosu?
Napisz skrypt ping/loopback lub porównaj funkcję 'click-to-hear' przez radio z przechwytywaniem dźwięku; zarejestruj 20 zdarzeń i uśrednij.

Czy SaltyChat zwiększa opóźnienie?
Nieznacznie – dodanie TS dodaje kilka ms w porównaniu do czystego wbudowanego Mumble. Trzymaj TS na tym samym hoście, aby to zminimalizować. (GitHub)

Dlaczego zmiana NativeAudio nie jest stosowana na żywo?
Niektóre konwary wymagają restartu zasobu; przełącz i uruchom ponownie pma-voice. (Społeczność Cfx.re)

Czy mogę mieszać ESX & QBCore radia?
Tak — powiąż swoje przedmioty/uprawnienia w ekwipunku z eksportami radiowymi, które zapewnia twój stack.


Dziennik zmian i podziękowania

Historia wersji

DataWersjaUwagi
2025-09-091.0Pierwsze wydanie: instalacje, konwary, strojenie i benchmarki.

Podziękowania (dokumentacja źródłowa)

  • pma-voice (AvarianKnight GitHub) — convars, exporty i wskazówki. (GitHub)
  • Dokumentacja CFX.re Voice — NativeAudio, submix i konwary głosowe. (Dokumentacja Cfx.re)
  • mumble-voip (FrazzIe GitHub) — funkcje & konfiguracja. (GitHub)
  • SaltyChat (SaltyHub GitHub) — konfiguracja, ustawienia, exporty. (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.