pma-voice คืออะไร ใช้ทำอะไรใน FiveM ระบบเสียงที่ Server RP ควรรู้
pma-voice คือ ระบบ Voice Chat สำหรับ FiveM/RedM ที่ทำงานบน Mumble ซึ่งติดมากับระบบ Voice ภายในของ FiveM โดยทำหน้าที่จัดการเสียงพูดของผู้เล่นในรูปแบบที่ Server RP ต้องการ เช่น เสียงตามระยะ, วิทยุ, โทรศัพท์ และ Voice Modes
พูดง่าย ๆ คือ pma-voice ทำให้ Server สามารถมีระบบประมาณนี้ได้
ผู้เล่นยืนใกล้กัน
→ ได้ยินเสียงกันตามระยะ
ตำรวจใช้วิทยุ
→ ได้ยินสมาชิกใน Radio Channel
Player โทรศัพท์หากัน
→ ได้ยินเสียงผ่าน Call Channel
Player เปลี่ยนระยะพูด
→ Whisper / Normal / Shouting
Current Project อธิบายตัวเองว่าเป็น Voice System ที่สร้างบน FiveM/RedM internal Mumble server ไม่ใช่ Framework และไม่ใช่ Radio UI สำเร็จรูปทั้งระบบ
① pma-voice คืออะไรแบบง่ายที่สุด
สมมติ Player A ยืนใกล้ Player B
Player A
📍 2 เมตร
Player B
เมื่อ A พูด B ก็ได้ยิน
แต่ Player C อยู่ไกล
Player C
📍 100 เมตร
ก็ไม่ได้ยินเสียงปกติของ A
นี่คือ
Proximity Voice
แต่ถ้า A และ C อยู่ Radio Channel เดียวกัน
A
↓
Radio Channel 1
↓
C
ทั้งสองยังคุยกันผ่านวิทยุได้แม้อยู่คนละพื้นที่ของ Map
pma-voice ทำหน้าที่จัดการ Voice Context เหล่านี้
② pma-voice เป็น Framework หรือไม่
ไม่ใช่
pma-voice
≠ Framework
มันคือ Voice Resource
Framework เช่น
ESX
QBCore
Qbox
ox_core
จัดการ
Player
Character
Jobs
Money
Groups
ส่วน pma-voice จัดการ
Voice
Proximity
Radio
Call
Voice Channels
จึงสามารถใช้ Voice System เดียวกับหลาย Framework ได้
③ pma-voice ใช้ Mumble คืออะไร
FiveM มี Mumble Voice System อยู่ภายใน
pma-voice ทำหน้าที่เป็น Wrapper/Management Layer รอบระบบนี้
Architecture โดยประมาณคือ
Player Microphone
↓
FiveM Voice
↓
Mumble
↓
pma-voice Logic
↓
Proximity / Radio / Call
↓
ผู้เล่นคนอื่นได้ยิน
จึงไม่ได้ใช้ Discord Voice เป็นตัวส่งเสียง Gameplay หลัก
④ ต้องติดตั้ง Mumble Server แยกไหม
สำหรับการใช้งาน FiveM ทั่วไปไม่จำเป็นต้องติดตั้ง Mumble Server ภายนอกแยกต่างหาก
pma-voice ถูกออกแบบรอบ Internal Mumble ของ FiveM
แต่ Project รองรับ Configuration สำหรับ
External Mumble Server
ด้วยผ่านค่าประเภท
voice_externalAddress
voice_externalPort
สำหรับ Architecture ขั้นสูง
⑤ pma-voice ใช้ทำอะไรบ้าง
ความสามารถหลักแบ่งออกได้เป็น
Proximity Voice
Voice Modes
Radio
Calls
Submix
Voice UI
Voice State
Exports
Events
External Mumble Support
ทำให้เป็น Voice Foundation ที่ Resources อื่น เช่น Radio หรือ Phone สามารถนำไปใช้งานต่อได้
⑥ Proximity Voice คืออะไร
คือเสียงที่ขึ้นอยู่กับระยะห่างของผู้เล่น
ตัวอย่าง
Player A ← 2m → Player B
ได้ยินชัดตามระบบ
แต่
Player A ← 80m → Player C
อาจไม่ได้ยินกัน
จึงทำให้ RP สมจริงกว่าการให้ Player ทุกคนใน Server ได้ยินกันตลอดเวลา
⑦ Voice Modes คืออะไร
pma-voice มี Voice Modes สำหรับเปลี่ยนระยะเสียง
Current Configuration ระบุ Modes หลักเป็น
1 = Whisper
2 = Normal
3 = Shouting
ดังนั้น Player สามารถปรับตามสถานการณ์ได้
ตัวอย่าง
Whisper
→ คุยเบา ๆ กับคนใกล้
Normal
→ บทสนทนาทั่วไป
Shouting
→ ตะโกนให้คนไกลขึ้นได้ยิน
⑧ Default Voice Mode คืออะไร
Current Configuration ใช้
setr voice_defaultVoiceMode 2
โดยค่า 2 หมายถึง
Normal
เป็น Default Mode เมื่อ Player เข้า Server
Server สามารถเปลี่ยนตาม Gameplay ได้
⑨ เปลี่ยนระยะเสียงด้วยปุ่มอะไร
Current README กำหนด Default Cycle Key เป็น
F11
ผ่าน
setr voice_defaultCycle F11
และระบบสามารถเปิด/ปิดการ Cycle ได้ด้วย
setr voice_enableProximityCycle 1
ผู้เล่นจึงสามารถสลับ
Whisper
↓
Normal
↓
Shouting
ได้
⑩ เปลี่ยน Key แล้วทำไม Player เก่ายังใช้ปุ่มเดิม
Current Project เตือนว่า การเปลี่ยน Default Keybind มีผลกับ ผู้เล่นใหม่
Player ที่เคยเข้า Server แล้วสามารถมี Key Mapping ของตัวเองบันทึกไว้ใน FiveM
ดังนั้นหากเปลี่ยน
voice_defaultCycle
หรือ Radio Key แล้ว Player เก่ายังไม่เปลี่ยน
ให้ตรวจ
FiveM
→ Settings
→ Key Bindings
→ FiveM
→ pma-voice
ด้วย
⑪ Radio System คืออะไร
Radio คือ Voice Channel ที่ไม่อิงระยะ
ตัวอย่าง
Police Officer A
📍 Mission Row
Police Officer B
📍 Sandy Shores
ถ้าทั้งคู่เข้าช่อง
Radio 1
ก็สามารถสื่อสารกันได้
นี่ต่างจาก Proximity Voice ที่ขึ้นกับระยะทาง
⑫ pma-voice มี Radio UI เต็มรูปแบบไหม
ต้องแยกให้ออก
pma-voice มี Radio Voice Module
แต่ Resource อย่าง
qbx_radio
mm_radio
Custom Radio UI
อาจทำหน้าที่เป็น Interface สำหรับ
เปิดวิทยุ
เลือก Frequency
เปลี่ยน Channel
แสดงสมาชิก
แล้วส่ง Channel ไปให้ pma-voice
ดังนั้น
pma-voice
→ Voice Transport/Channel
Radio Script
→ Gameplay + UI
เป็นคนละ Layer
⑬ Qbox ใช้ pma-voice หรือไม่
ใช้
Current Official Qbox txAdmin Recipes ยังคงดาวน์โหลด
pma-voice
จาก Project ของ AvarianKnight
พร้อม Radio Resource ของ Qbox stack
จึงถือว่า pma-voice ยังเป็นส่วนหนึ่งของ Current Qbox Voice Stack ในปี 2026
⑭ QBCore ใช้ pma-voice ได้ไหม
ได้
QBCore Server จำนวนมากใช้
pma-voice
+
Radio Resource
โดย Framework ทำหน้าที่ตรวจ
Job
Items
Permissions
ส่วน Voice Resource จัด Radio Channel
ไม่จำเป็นต้องใช้ Voice Resource ที่เป็นส่วนหนึ่งของ QBCore Core
⑮ ESX ใช้ pma-voice ได้ไหม
ได้
pma-voice ไม่ได้ล็อกกับ Qbox/QBCore
ESX Resource สามารถใช้ Exports และ Events ของ Voice System สำหรับ
Radio
Phone
Voice State
ได้
จึงพบ Stack เช่น
ESX
+
pma-voice
+
Radio Script
+
Phone
ได้ตาม Integration
⑯ Radio Channel ทำงานอย่างไร
แนวคิดพื้นฐานคือ Player ถูกเพิ่มเข้า
Radio Channel ID
เช่น
Police
→ Channel 1
EMS
→ Channel 2
เมื่อ Player กด Push-to-Talk
pma-voice จะจัด Voice Target ให้สมาชิก Channel นั้นได้รับเสียง
⑰ setRadioChannel คืออะไร
Current Client Exports มี
setRadioChannel
สำหรับกำหนด Radio Channel ให้ Local Player
แนวคิด
exports['pma-voice']:setRadioChannel(1)
คือให้ Player เข้า Radio Channel 1
แต่ Production Radio Script ควรมี Server-side Permission Logic ของตัวเองด้วย
⑱ อย่าให้ Client เข้า Police Radio ได้เอง
สมมติมี Police Channel
Channel 1
ไม่ควรสร้าง Command Client ที่ใครก็ใช้ได้ว่า
setRadioChannel(1)
แล้วถือว่าปลอดภัย
Radio Script ควรตรวจ
Job
Item
Permission
Frequency Rules
ตาม Server Design
⑲ Push-to-Talk Radio ใช้ปุ่มอะไร
Current Default Configuration มี
voice_defaultRadio LMENU
ซึ่งโดยทั่วไปคือ
Left Alt
สำหรับ Radio Talk Key
แต่ Key Mapping สามารถถูก Player เปลี่ยนเองได้
และ Server สามารถเปลี่ยน Default ได้
⑳ Radio Animation มีหรือไม่
มี
Current Config
setr voice_enableRadioAnim 1
ใช้เปิด Animation ประมาณการจับ Shoulder Mic ขณะพูดผ่าน Radio
ช่วยเพิ่มความสมจริงให้ Police/EMS RP
สามารถปิดได้หาก Server ใช้ Animation System ของตัวเอง
㉑ Radio Mic Click คืออะไร
ระบบรองรับเสียง
Click On
Click Off
เวลาผู้เล่นเริ่ม/หยุดพูด Radio
คล้ายเสียงวิทยุสื่อสารจริง
สามารถปรับ Volume ผ่าน Configuration ของ pma-voice
เหมาะกับ Emergency Services RP
㉒ ปรับเสียง Radio ได้ไหม
ได้
Current Project มี
setRadioVolume
Export และ Default Radio Volume Configuration
ทำให้ Player/Radio UI สามารถปรับความดัง Radio แยกจาก Proximity Voice ได้
เช่น
Local Voice = ปกติ
Radio = 40%
㉓ Call System คืออะไร
Call Module ใช้ทำ Voice Channel สำหรับการโทร
ตัวอย่าง
Player A
↓
Phone Call
↓
Player B
ทั้งสองอาจอยู่คนละฝั่ง Map แต่ได้ยินกันเพราะอยู่ Call Context เดียวกัน
แนวคิดนี้ถูกนำไปใช้กับ Phone Scripts
㉔ pma-voice เป็น Phone Script หรือไม่
ไม่ใช่
pma-voice
≠ Phone
Phone Resource ทำหน้าที่
Contacts
Dialing
Messages
UI
Phone Number
Call State
ส่วน pma-voice สามารถจัด Voice Channel ของสายโทรศัพท์
Architecture คือ
Phone Script
↓
เริ่ม Call
↓
pma-voice
↓
Call Voice
㉕ setCallChannel คืออะไร
Current Client API มี
setCallChannel
ใช้กำหนด Player ให้อยู่ Call Channel
Phone Resource สามารถเรียกเมื่อสายเชื่อมต่อ
แล้วออกจาก Channel เมื่อวางสาย
ทำให้ Voice System ไม่ต้องรู้ว่า Phone UI เป็นรุ่นไหน
㉖ ปรับเสียง Call ได้ไหม
ได้
มี
setCallVolume
สำหรับกำหนดระดับเสียง Call
และ Current Config ใช้ชื่อ
voice_defaultCallVolume
สำหรับ Default Call Volume
㉗ voice_defaultPhoneVolume ยังใช้ไหม
นี่เป็นจุดสำคัญของ Current Main Branch
Current README ระบุ Breaking Change ว่าชื่อเดิม
voice_defaultPhoneVolume
ถูกเปลี่ยนเป็น
voice_defaultCallVolume
ดังนั้น Config/Tutorial เก่าอาจใช้ชื่อที่ไม่ตรง Current Branch
㉘ voice_enablePhones ยังใช้ไหม
Current Main Branch เปลี่ยนจาก
voice_enablePhones
เป็น
voice_enableCalls
ถ้านำ Config จาก Tutorial เก่ามาใช้กับ Current Main ต้องตรวจชื่อนี้ด้วย
㉙ State Bag phone เปลี่ยนด้วยหรือไม่
Current README ยังระบุว่า State เดิม
Player(source).state.phone
ถูกเปลี่ยนเป็น
Player(source).state.call
ดังนั้น Phone/Voice Integrations ที่อ่าน State Bag ตรง ๆ ต้องตรวจ Compatibility เมื่อ Update Current Branch
㉚ Current Main Branch มี Breaking Changes
ใช่
Project ระบุไว้ชัดเจนใน Current README ว่า
master/main branch
มี breaking changes บางส่วน
ดังนั้น Production Server ไม่ควร Update Voice Resource แบบ Blind
ต้องตรวจ
Radio
Phone
HUD
Voice UI
Exports
State Bags
Convars
ทั้งหมดที่เชื่อมกับ pma-voice
㉛ pma-voice มี Submix คืออะไร
Submix คือการปรับ Character ของเสียงสำหรับ Radio/Call
เช่นทำให้เสียงมีลักษณะคล้าย
วิทยุ
โทรศัพท์
Communication device
มากกว่าเสียง Proximity ปกติ
Current Config มี
setr voice_enableSubmix 1
㉜ Submix ต้องใช้อะไร
Current README ระบุว่า Submix ต้องใช้
Native Audio
ดังนั้นหากต้องการ Submix ต้องตรวจ
setr voice_useNativeAudio true
ตาม Current Audio Configuration
อย่าเปิด Audio Modes หลายแบบที่ Documentation เตือนว่าไม่ควรใช้พร้อมกัน
㉝ voice_useNativeAudio คืออะไร
Current Config
setr voice_useNativeAudio true
ใช้ระบบ Native Audio ของเกม
ช่วยรองรับ Feature อย่าง
3D sound
echo
reverb
submixes
ตาม Current Project
ถ้าใช้ Submix นี่เป็น Configuration สำคัญ
㉞ voice_use2dAudio คืออะไร
ถ้าเปิด 2D Audio
ความดังจะไม่เปลี่ยนตามตำแหน่งในระยะ Voice แบบ Spatial เดียวกันตาม Behavior ที่ Documentation อธิบาย
จึงให้ประสบการณ์ต่างจาก Spatial/Native Audio
Server RP ส่วนใหญ่ควรเลือก Audio Mode ให้สอดคล้องกับ Gameplay
㉟ voice_use3dAudio คืออะไร
เป็นอีก Audio Option สำหรับ 3D Sound
แต่ Current README เตือนว่า
อย่าเปิด 3D Audio และ Native Audio พร้อมกัน
ควรเลือก Audio Option เพียงชุดเดียวตาม Configuration ที่ต้องการ
㊱ voice_useSendingRangeOnly คืออะไร
Current Project แนะนำให้ใช้ Option นี้
setr voice_useSendingRangeOnly true
เพื่อจำกัดให้ Player ได้ยินคนที่อยู่ใน Hear/Send Range ที่เกี่ยวข้อง
Project ระบุว่าช่วยลดกรณีผู้ไม่หวังดีเชื่อมต่อ Mumble แล้วรบกวน Voice
จึงเป็น Configuration ที่ควรตรวจเมื่อ Setup Voice
㊲ OneSync จำเป็นหรือไม่
Current fxmanifest.lua ของ pma-voice มี Dependency
/onesync
ดังนั้น Current Resource ต้องทำงานบน Server ที่เปิด OneSync
ไม่ควรลบ Dependency ออกเพื่อบังคับให้ Start
ควรใช้ Current FXServer Configuration ที่รองรับ
㊳ Current pma-voice Version
Current fxmanifest.lua ที่ตรวจสอบสำหรับบทความนี้ระบุ
7.0.1
แต่ Main Branch ยังอยู่ระหว่าง Breaking Changes ตาม README
ดังนั้น Version/Configuration อาจเปลี่ยนได้
สำหรับ Production ควรเลือก Release/Commit ที่ทดสอบกับ Radio/Phone Stack แล้ว
㊴ pma-voice มี UI หรือไม่
มี Built-in Voice UI
Current Config
setr voice_enableUi 1
สำหรับเปิด UI ของระบบ
แต่ Server สามารถใช้ HUD ภายนอกที่ฟัง Events/States ของ pma-voice เพื่อแสดงสถานะเองได้
㊵ HUD เชื่อมกับ pma-voice ได้อย่างไร
Project มี Events เช่น
pma-voice:setTalkingMode
pma-voice:radioActive
pma-voice:settingsCallback
HUD สามารถฟัง Events เหล่านี้เพื่อแสดง
Mic
Voice Range
Radio Active
ตามสถานะ Player
จึงไม่จำเป็นต้องแก้ pma-voice Core เพื่อทำ Voice HUD ใหม่
㊶ setTalkingMode Event คืออะไร
Event
pma-voice:setTalkingMode
แจ้งเมื่อ Voice Range Mode เปลี่ยน
HUD สามารถนำค่าไปแสดง เช่น
Voice: Whisper
Voice: Normal
Voice: Shouting
หรือเป็น Icon 1/2/3
㊷ radioActive Event คืออะไร
เมื่อ Player เริ่มหรือหยุดพูดผ่าน Radio
ระบบ Trigger
pma-voice:radioActive
HUD สามารถใช้เปลี่ยนสี Radio Icon
ตัวอย่าง
ไม่ได้พูด
→ Radio icon ปกติ
กำลังส่งวิทยุ
→ Radio icon Active
㊸ Proximity State มีหรือไม่
Current Source ตั้ง
LocalPlayer.state.proximity
โดยมีข้อมูลอย่าง
index
distance
mode
ทำให้ Resources/HUD สามารถอ่าน Voice State ตามระบบที่รองรับได้
㊹ Radio State มีหรือไม่
Current Source ใช้ Player State เช่น
radioChannel
radioActive
สำหรับ Synchronization/Integration บางส่วน
Radio Resource หรือ HUD สามารถใช้ State/API ที่ Project เปิดให้แทนการแก้ Voice Core โดยตรง
㊺ Call State มีหรือไม่
มี Call Data/State สำหรับจัด Voice Call
และใน Current Breaking Change ชื่อ State สำคัญถูกเปลี่ยนไปใช้คำว่า
call
แทน phone
ทำให้ชื่อ API สอดคล้องกับแนวคิด Call Channel มากขึ้น
㊻ External Voice Server ใช้ได้ไหม
ได้
มี Configuration
voice_externalAddress
voice_externalPort
สำหรับ External Mumble Address
และ
voice_externalDisallowJoin
สำหรับ Scenario ที่ใช้ FXServer เป็น External Mumble Server
นี่เป็น Advanced Deployment ไม่จำเป็นสำหรับ Server ทั่วไป
㊼ voice_hideEndpoints คืออะไร
Current Config
voice_hideEndpoints
ใช้ซ่อน Mumble Address ใน Logs
Project ระบุว่ามีความสำคัญมากกว่าเมื่อใช้ External Server
ช่วยไม่ให้ Endpoint แสดงโดยไม่จำเป็น
㊽ voice_debugMode คืออะไร
ใช้เปิด Logging ของ Voice
Current README ระบุระดับประมาณ
0 = ปิด
1 = Basic
4 = Verbose
เหมาะกับการแก้ปัญหา เช่น
Mumble ไม่ Connect
Radio ไม่ทำงาน
Call ไม่ทำงาน
Voice Channel ผิด
แต่ไม่ควรเปิด Verbose ตลอด Production โดยไม่มีเหตุผล
㊾ pma-voice ใช้ร่วมกับ Voice Script อื่นได้ไหม
Current Project เตือนว่า ไม่ Compatible กับ Voice System อื่น
ตัวอย่างหากเปิด
pma-voice
+
vMenu Voice
+
Voice Resource อื่น
พร้อมกัน อาจเกิดการแย่งควบคุม Voice Natives
ผลคือ
เสียงหาย
ระยะเสียงผิด
ได้ยินทุกคน
Radio แปลก
เสียงตัด
ควรเลือก Voice System หลักเพียงตัวเดียว
㊿ vMenu Voice ต้องปิดไหม
ถ้าใช้ Voice Feature ของ vMenu อยู่พร้อมกับ pma-voice
Current README ระบุว่าต้องปิดระบบ Voice ของ vMenu
เพราะทั้งสองระบบสามารถควบคุม Voice Proximity/Network State ชนกัน
ดังนั้นตอนติดตั้งต้อง Audit Resources ที่จัดการ Voice ทั้งหมด
51. Native Voice Functions ที่ไม่ควรถูก Script อื่น Override
Current README เตือนโดยตรงว่า Script อื่นไม่ควร Override Functions เช่น
NetworkSetTalkerProximity
MumbleSetTalkerProximity
MumbleSetAudioInputDistance
MumbleSetAudioOutputDistance
NetworkSetVoiceActive
เพราะมีกรณีที่ทำให้ pma-voice พัง
นี่เป็นจุดสำคัญมากเวลา Debug Voice
52. ทำไม Voice Scripts ชนกันง่าย
เพราะหลาย Resource อาจพยายามควบคุม
Voice Distance
Voice Active
Voice Target
Mumble Proximity
Audio Routing
พร้อมกัน
เช่น
pma-voice
↓
ตั้ง Proximity = 8m
Script B
↓
ตั้ง Proximity = 20m
ผลที่ได้จะไม่เสถียร
ต้องมี Voice Authority หลักเพียงระบบเดียว
53. pma-voice กับ mumble-voip เหมือนกันไหม
ไม่ใช่ Resource เดียวกัน
แต่ Current Project ให้เครดิต mumble-voip ว่าเป็นหนึ่งในต้นแนวคิดของ pma-voice
Server รุ่นเก่าอาจยังใช้
mumble-voip
แต่ไม่ควร Start พร้อม pma-voice โดยไม่รู้ว่า Scripts กำลังควบคุมระบบเสียงอะไร
54. pma-voice ต้องมี Database หรือไม่
ตัว Voice Core พื้นฐานไม่ได้ต้องการ Database เพื่อให้ Proximity Voice ทำงาน
ดังนั้น
pma-voice
≠ oxmysql dependency
แต่ Radio/Phone Resource ที่เชื่อมอยู่ด้านบนอาจต้อง Database สำหรับ
Phone Number
Contacts
Radio Item
Job
Permissions
ขึ้นกับ Script
55. pma-voice ต้องใช้ ox_lib หรือไม่
Current pma-voice Core ไม่ได้เป็น Resource เดียวกับ OX ecosystem และ Current Manifest ไม่ได้ประกาศ ox_lib เป็น Dependency
ดังนั้น
pma-voice
≠ ต้องติดตั้ง ox_lib เพราะตัวมันเอง
แต่ Radio/HUD/Phone ที่คุณใช้ร่วมกันอาจต้องใช้ ox_lib
ต้องดู Dependencies ราย Resource
56. pma-voice ต้องใช้ ox_target หรือไม่
ไม่ต้อง
Target System กับ Voice System เป็นคนละเรื่อง
ox_target
→ Interaction
pma-voice
→ Voice
Server สามารถมีทั้งคู่ได้ แต่ไม่ได้เป็น Dependency ต่อกันโดยตรง
57. pma-voice ต้องใช้ ox_inventory หรือไม่
ไม่ต้องสำหรับ Voice Core
แต่ Radio Script อาจกำหนดว่า Player ต้องมี
radio item
ผ่าน Inventory
Architecture อาจเป็น
ox_inventory
↓
ตรวจ radio item
↓
Radio Script
↓
pma-voice
↓
Radio Voice Channel
ดังนั้น Inventory เป็น Gameplay Permission Layer มากกว่า Voice Engine
58. Radio Item สำคัญอย่างไร
Serious RP มักกำหนดว่า Player ต้องมี
radio
จึงจะเข้าช่องวิทยุได้
Server Logic ควรตรวจ Item ผ่าน Inventory/Framework
ไม่ใช่ให้ pma-voice ตัดสิน Economy Item เอง
แยก Responsibility จะดูแลง่ายกว่า
59. Job Radio ควรให้ใครเป็นคนตรวจ
Framework/Radio Resource ควรตรวจ
Police
EMS
Mechanic
Gang
แล้วค่อยอนุญาตให้ตั้ง Radio Channel
ไม่ควรแก้ pma-voice Core เพื่อ Hardcode
if job == police
ทุก Frequency
เพราะ Voice Resource ควรเป็น Generic Voice Layer
60. Phone Script ควรเชื่อมอย่างไร
Architecture ที่เหมาะคือ
Phone
↓
สร้าง/รับสาย
↓
ตรวจ Call State
↓
pma-voice Call Channel
↓
Voice
เมื่อวางสาย
Phone
↓
ออก Call Channel
ทำให้ Phone UI กับ Voice Transport แยกกันชัดเจน
pma-voice เหมาะกับ Server แบบไหน
เหมาะมากกับ
FiveM RP
Serious RP
Economy RP
Qbox
QBCore
ESX
Custom Framework
โดยเฉพาะ Server ที่ต้องการ
Proximity Voice
Radio
Phone Calls
Voice Range
HUD Integration
ภายในเกม
Server แบบไหนอาจไม่ต้องใช้
Server ที่ไม่ได้ต้องการ Voice Chat ภายใน FiveM เช่นบางรูปแบบ
Racing
Minigame
Event Server
อาจใช้ Voice Architecture แบบอื่นหรือไม่ใช้เลย
แต่ RP Server ที่พึ่งการสื่อสารของ Player โดยตรงแทบจะต้องมี Voice Solution ที่เสถียร
ข้อดีของ pma-voice
จุดเด่นสำคัญคือ
ใช้ FiveM Internal Mumble
Proximity Voice
Voice Modes
Radio Channels
Call Channels
Submix
Built-in UI
Exports
Events
State Integration
External Mumble Support
Framework-agnostic Core
ทำให้ Resources อย่าง Radio, Phone และ HUD สามารถสร้างระบบต่อยอดได้
ข้อควรระวังของ pma-voice
ต้องระวังเรื่อง
Voice Scripts ชนกัน
vMenu Voice
Native Voice Overrides
OneSync
Current Branch Breaking Changes
Radio Integration
Phone Integration
Keybinds ของผู้เล่นเก่า
Audio Mode Configuration
โดยเฉพาะการ Update Production โดยไม่ทดสอบ Phone/Radio ก่อน
pma-voice ทำให้เสียงดีขึ้นอัตโนมัติไหม
ไม่
คุณภาพเสียงยังขึ้นกับ
ไมโครโฟนผู้เล่น
Windows Input
FiveM Voice Settings
Network
Mumble Connection
Audio Configuration
Submix
pma-voice ช่วยจัด Routing/Voice Logic แต่ไม่สามารถทำให้ไมค์คุณภาพต่ำกลายเป็นไมค์ Studio ได้
pma-voice ลด Ping ได้ไหม
ไม่ใช่หน้าที่หลัก
Voice Traffic ใช้ Network เพิ่มขึ้นตามธรรมชาติ
ถ้าผู้เล่นมี
Packet Loss
Internet ไม่เสถียร
High Ping
เสียงอาจ
ขาด
หาย
กระตุก
Delay
ได้
ต้องแยกปัญหา Network ออกจาก Voice Script
ไม่มีเสียงแปลว่า pma-voice พังเสมอไหม
ไม่
สาเหตุอาจเป็น
Microphone ผิดตัว
Windows Permission
FiveM Input Device
Voice Volume
Mumble ไม่ Connected
Voice Resource ชนกัน
OneSync
Radio/Call Script
Keybind
Network
ดังนั้นบทแก้ปัญหาต้องตรวจเป็น Layer
Checklist เข้าใจ pma-voice
Core
pma-voice
→ Voice System
Transport
FiveM Internal Mumble
Local Voice
Proximity
Whisper
Normal
Shouting
Long-distance Voice
Radio
Calls
Integration
Radio Script
Phone Script
HUD
Framework
Inventory
Requirement
OneSync
ห้ามชน
Voice Resources อื่น
vMenu Voice
Scripts ที่ Override Mumble/Voice Natives
ตารางสรุประบบของ pma-voice
| ระบบ | หน้าที่ |
|---|---|
| Proximity | เสียงตามระยะ |
| Whisper | ระยะพูดใกล้ |
| Normal | ระยะพูดปกติ |
| Shouting | ระยะพูดไกลขึ้น |
| Radio | สื่อสารผ่าน Channel |
| Call | เสียงโทรศัพท์ |
| Submix | ปรับ Character เสียง Radio/Call |
| UI | แสดงสถานะ Voice |
| Events | เชื่อม HUD/Resources |
| Exports | ให้ Scripts ควบคุม Radio/Call/Volume |
| External Voice | รองรับ External Mumble Setup |
Stack ตัวอย่างสำหรับ Qbox
FXServer + OneSync
↓
pma-voice
↓
qbx_radio
↓
qbx_core
ใน Server จริงยังมี
ox_lib
oxmysql
ox_inventory
ตาม Qbox Stack แต่ไม่ได้หมายความว่าทุกตัวเป็น Dependency โดยตรงของ pma-voice
Stack ตัวอย่างสำหรับ ESX
ESX
↓
Radio Script
Phone Script
↓
pma-voice
↓
FiveM Mumble
Framework รับผิดชอบ Player/Jobs
Voice รับผิดชอบ Communication
Stack ตัวอย่างสำหรับ QBCore
qb-core
↓
Radio / Phone
↓
pma-voice
↓
Mumble
หลักการเหมือนกัน
อย่าเอา Framework Logic ไปผูกไว้ใน Voice Core ถ้า Integration Layer สามารถจัดการได้
ควร Update pma-voice อย่างไร
เพราะ Current Main Branch มี Breaking Changes จึงควร
Backup
↓
จด Current Version/Commit
↓
Clone Test Server
↓
Update pma-voice
↓
Test Proximity
↓
Test Voice Modes
↓
Test Radio
↓
Test Phone
↓
Test HUD
↓
ค่อย Production
อย่า Update Voice Core แล้ว Restart Live Server ทันที
ต้องทดสอบอะไรหลัง Update
อย่างน้อย
① ผู้เล่นสองคนยืนใกล้กัน
② เดินออกจากระยะ
③ เปลี่ยน Whisper/Normal/Shouting
④ Radio Channel
⑤ Radio PTT
⑥ Radio Volume
⑦ Phone Call
⑧ Call Volume
⑨ HUD Voice Icon
⑩ Disconnect / Reconnect
ถ้าผ่านจึงถือว่า Voice Stack หลักพร้อม
สรุป pma-voice คืออะไร ใช้ทำอะไรใน FiveM
pma-voice คือ ระบบ VOIP สำหรับ FiveM/RedM ที่สร้างบน Internal Mumble ของ FiveM และทำหน้าที่เป็น Voice Foundation สำหรับ
Proximity Voice
Voice Modes
Radio
Phone Calls
Submix
Voice UI
Events
Exports
Current Resource ต้องใช้ OneSync และ Current Manifest ที่ตรวจสอบระบุ Version 7.0.1
Voice Modes ปัจจุบันประกอบด้วย
1 = Whisper
2 = Normal
3 = Shouting
โดย Default Mode คือ 2
Radio และ Call สามารถเปิด/ปิดเป็น Module และ Resources ภายนอกสามารถควบคุม Channel/Volume ผ่าน APIs ของ pma-voice
สิ่งสำคัญคือ
pma-voice
≠ Radio UI
≠ Phone
≠ Framework
แต่มันเป็น Voice Layer ที่ Radio, Phone, HUD และ Framework Integrations สามารถใช้ต่อได้
Current Qbox Recipes ในปี 2026 ยังดาวน์โหลด pma-voice จาก Repository ของ AvarianKnight เป็นส่วนหนึ่งของ Voice Stack แสดงว่า Resource นี้ยังถูกใช้งานใน Ecosystem ปัจจุบัน
อีกประเด็นที่สำคัญมากคือ Current Main Branch มี Breaking Changes เช่น
voice_defaultPhoneVolume
→ voice_defaultCallVolume
voice_enablePhones
→ voice_enableCalls
state.phone
→ state.call
ดังนั้น Server ที่ Update จาก Version เก่าต้องตรวจ Phone/HUD Integrations ด้วย
แนวทางของ comsiam คือให้แยก Voice Architecture ออกเป็น 3 ชั้น ได้แก่ pma-voice = Voice Engine, Radio/Phone = Gameplay Interface และ Framework/Inventory = Permission/Data เพราะการแบ่งหน้าที่แบบนี้ทำให้เปลี่ยน Radio หรือ Phone ภายหลังได้โดยไม่ต้องแก้ Voice Core
สำหรับ Production comsiam แนะนำให้มี Voice System หลักเพียงตัวเดียว หลีกเลี่ยงการเปิด vMenu Voice หรือ Scripts ที่ Override Mumble/Voice Natives พร้อมกับ pma-voice เพราะ Current Project เตือนโดยตรงว่าการควบคุม Voice Natives ซ้อนกันสามารถทำให้ระบบเสียงทำงานผิดปกติได้
Comments
Post a Comment