FAQ & Troubleshooting
Common questions, fixes, and how the audio works under the hood.
No sound at all
Players need internet access, because audio streams from YouTube in the game browser. Check the player is not muted in the UI and their volume is up.
3D positioning does not seem to work
Confirm Config.Spatial3D = true. If one specific client cannot tap the audio, it automatically falls back to volume only proximity. It is still audible, just not positional, so it is never silent.
Voice ducking does not trigger
Ducking uses the game voice natives, so it works with pma-voice, mumble based voice, and native voice. External systems like SaltyChat and TokoVOIP do not report their talking state, so ducking simply does nothing there (it never errors). Confirm the player is actually transmitting, and adjust VoiceDuckAmount (lower is quieter) and VoiceDuckRadius.
The HUD is in the wrong place
The HUD position is per player. Each player moves it in Settings, then Reposition HUD, then Move. A sensible default spot is provided.
Can I use direct MP3 streams?
Yes. Set Config.AllowDirectStreams = true and lock Config.AllowedHosts to CDNs you trust.
How the audio works
- Playback is server authoritative. The server decides what plays on each vehicle and replicates it via a state bag. Clients only render.
- Each client renders nearby cars at its own computed volume and position, so there is no "play to everyone" path and no global sound bleed.
- The 3D path routes the YouTube audio through the browser's Web Audio API: an HRTF panner for direction, a low pass filter for the muffle, and a shared master bus for the EQ.
- If a client cannot route the audio (rare), it falls back to volume only proximity. It is never silent.
Voice ducking compatibility
| Voice system | Ducking |
|---|---|
| pma-voice | Works out of the box |
| mumble-voip | Works out of the box |
Native voice (voice_useNativeAudio) | Works out of the box |
| SaltyChat / TokoVOIP (external) | No effect (never errors) |
Players can turn ducking off per person in Settings, then Voice.
Data and storage
There is no database. Everything player specific is stored in the game client (browser local storage): playlists, favorites, library, EQ curve, HUD position, and the voice duck toggle. Each player keeps their own, nothing is shared or server side.
Security
- Driver and occupant control is verified with server natives, never a client "I am the driver" flag.
- Free URLs are re validated server side (scheme, extension, host allow list), and YouTube IDs are extracted server side.
- Per player rate limiting (
ActionCooldown). - A client injected
autoplaystate is detected and reverted to the server copy.
Still stuck? Reach us at scripts.aczone.xyz.
