Overview
San Andreas Sound Suite combines four FiveM resources and a Content Builder that runs on your computer. Sound plays audio, Dispatch schedules scanner calls, Station Pack supplies local music, and Radio manages the in-vehicle controls. Radio requires FiveM's OneSync synchronization feature.
San Andreas Sound Suite guides
Start here
Set up each part
Build and connect
Licensing
Requirements
- Framework
- None
- Synchronization
- OneSync is required by san_andreas_radio
- Start order
- Sound first; Dispatch and Station Pack optional; Radio last
- Content Builder
- Node.js 20+ on a local developer or server-owner computer
- Media rights
- Keep every included license, credit, source, and media notice
Installation
Place san_andreas_sound, san_andreas_dispatch, san_andreas_station_pack, and san_andreas_radio in the server resources directory without renaming them.
Start san_andreas_sound first. Do not run the original xsound or interact-sound resources beside it while its compatibility aliases are enabled.
Start the optional san_andreas_dispatch and san_andreas_station_pack resources when you need shared dispatch or station playback.
Start san_andreas_radio last with OneSync enabled. Then test GTA radio, suite media, the scanner, players joining late, and shared vehicle state.
Keep the San Andreas Sound Suite Content Builder on a developer computer, install Node.js 20 or newer, and never add the builder directory to server.cfg.
Configuration
Choose what to install
Install Sound and Radio for the main in-vehicle audio system. Add Dispatch for synchronized service calls and Station Pack for locally hosted music stations. Leave either optional resource out if you do not need it.
If you are replacing xSound or InteractSound
San Andreas Sound can use the xsound and interact-sound names so existing resources still connect. Test every resource that uses those names, and stop the original xSound or InteractSound resource before starting the suite.
Configure direct media and fallbacks
A direct media URL must let the in-game browser access its audio data for full 3D sound and equalizer effects. HTML or YouTube fallback playback keeps basic volume control but cannot provide the same spatial effects.
Keep safe Radio defaults
Vehicle radios start powered off, no third-party Satellite or scanner fallback URL is enabled, and the San Andreas Sound provider is the default. Configure only streams, identifiers, playlists, artwork, and compatibility cues the server is authorized to use.
05Turn on the optional voice bridge
The pma-voice live-player connection is optional and off by default. Confirm the voice resource and settings, then test what players hear on a private server before turning it on.
Run the Content Builder locally
Keep the San Andreas Sound Suite Content Builder on a developer or server-owner computer. Install Node.js 20 or newer, use Launch Content Builder.cmd on Windows or the documented npm workflow on other platforms, and never add the builder directory to server.cfg.
How to use and test it
Check Sound and streamer mode
Use the status command to list active sounds and possible problems. Streamer mode mutes all audio managed by San Andreas Sound for that player without changing timing for anyone else.
/san_andreas_sound_status
/streamermode status
/streamermode on
/streamermode offUse Radio and scanner controls
The default Radio and scanner key mappings are Q and J. /saradio opens or toggles the head unit, /sascanner toggles synchronized scanner power, /scannerhud changes only local HUD visibility, and /saradiotrack prints current track data to F8.
/saradio
/sascanner
/scannerhud
/saradiotrackTest that players stay in sync
Test a Dispatch call and Station Pack program with two players. Have the second player reconnect or tune in halfway through. They should hear the current point instead of restarting the audio.
Review imported media before deployment
Check imported recordings, identifiers, artwork, stations, streams, and metadata for redistribution rights, privacy, personal information, and server policy before building a public package.
Suite components
Each part has one main job. You can install and test them separately before turning on the complete suite.
San Andreas Sound 1.5.16
Plays 3D audio, provides playback controls and problem reports, includes streamer mode, and supports the documented xSound and InteractSound calls.
San Andreas Dispatch 1.0.0
Schedules locally stored calls on six separate service-channel timelines. Players listening to one channel share its current call and timestamp. Dispatch does not play audio by itself.
San Andreas Station Pack 1.0.0
Adds optional locally hosted music stations that keep listeners on the same track and timestamp. It includes three original demo tracks and one original artwork image.
San Andreas Radio 1.0.0
Adds an in-vehicle radio screen for GTA stations, Satellite streams, Bluetooth playlists, Server Radio, and scanner controls. It requires OneSync.
Content Builder 0.5.3
A browser tool that runs on your computer and builds reviewed configuration or media packages. It needs Node.js 20 or newer and is not a FiveM resource.
Developer connections
Other resources should connect through the documented exports and local server events. Do not call Radio's internal network events. See the Developer Guide for the complete technical details.
Sound playback surface
Native client exports cover positional and URL playback, destroy, position, entity, distance, volume, time, playing state, spectrum, readiness, diagnostics, and streamer mode. The snippet below is client-side; matching server relay calls require a leading target player ID before the options, sound name, or new value.
exports['san_andreas_sound']:PlayPositional(options)
exports['san_andreas_sound']:SetPosition(soundId, coords)
exports['san_andreas_sound']:SetVolume(soundId, volume)
exports['san_andreas_sound']:Destroy(soundId)Dispatch synchronized state
Read the complete snapshot, one channel, or catalog counts from the server. A server-local event announces transmission changes to consuming resources.
local snapshot = exports['san_andreas_dispatch']:GetSnapshot()
local police = exports['san_andreas_dispatch']:GetChannel('police')
local counts = exports['san_andreas_dispatch']:GetCatalogCounts()
AddEventHandler('san_andreas_dispatch:server:transmissionChanged', function(channelId, source)
-- consume the synchronized descriptor locally on the server
end)Station Pack catalog state
Read configured stations and their current program state through GetStations, GetSnapshot, and GetStation. The local server event san_andreas_radio:server:stationPackChanged is emitted after the active program or track advances.
Radio vehicle state
The documented server export GetVehicleRadioState returns the suite-managed state for a networked vehicle. Treat Radio's internal network events as implementation details rather than public integration contracts.
Media and licensing
Software licenses
Sound, Dispatch software and configuration, Radio, Station Pack, and the Content Builder each include an MIT software license. Preserve third-party notices shipped with compatibility code.
Original documentation and selected media
Original release-manual text, diagrams, and layout, the Radio thematic artwork, and Station Pack demo media are covered by their CC BY 4.0 notices with stated exclusions and attribution requirements.
Dispatch recording boundary
The 600 bundled Dispatch recordings are excluded from MIT. The public attribution file identifies the 100 aviation clips as CC0-derived and states that source and permission records for the other 500 are retained privately; downstream redistributors must evaluate those recording terms separately.
Troubleshooting
A dependent resource cannot find its audio provider
Confirm san_andreas_sound starts first, its compatibility alias is enabled for the expected provider name, and the original provider is not also running under a conflicting identity.
Direct media has volume but no spatial processing
Confirm the media host lets the in-game browser access its audio data and that the source uses direct playback. HTML or YouTube fallback playback cannot provide the same 3D sound and equalizer effects.
Radio state does not remain synchronized
Confirm OneSync is enabled, san_andreas_radio starts after its selected providers and optional catalogs, and no other resource is fighting the same vehicle radio state.
Dispatch or Station Pack restarts an item for late listeners
Verify the consuming Radio or scanner reads the current snapshot and offset rather than replaying a file from zero, and confirm catalog durations match the actual local media files.
The Content Builder is being treated as a server resource
Remove it from server.cfg. Run the builder locally with Node.js 20 or newer, then deploy only the generated FiveM resource configuration and media that passed validation and rights review.
Reference
Release documentation
The repository docs directory contains the Release User Guide, Developer Guide, Content Builder Guide, and setup guides for Sound, Dispatch, Radio, and Station Pack.
Component source references
Each runtime directory includes its own README, LICENSE, and applicable media, attribution, provenance, or third-party notice files. Those component files control when a summary differs from runtime metadata.
- The repository has no GitHub tag or Release; the public files represent the current main-branch snapshot.
- The current main-branch release table and authoritative Dispatch manifest both report version 1.0.0.
- Documentation CC BY 4.0 terms do not relicense game screenshots, trademarks, third-party media, or source excerpts that the documentation depicts.