Browse documentationSan Andreas Sound Suite

San Andreas Sound Suite

One connected audio layer for the world around your players.

Version
Sound 1.5.16 · Dispatch 0.5.2 · Radio 1.0.0
Updated
Updated Aug 21, 2026
License
MIT software · mixed media terms
Resource GitHub
On this page
01 / OVERVIEW

Overview

San Andreas Sound Suite combines four framework-independent FiveM resources with one local Content Builder. Sound provides the playback and compatibility layer, Dispatch and Station Pack provide optional synchronized programming, and Radio coordinates the OneSync-backed in-vehicle experience.

02 / REQUIREMENTS

Requirements

Framework
None
Synchronization
OneSync is required by san_andreas_radio
Runtime resources
Sound first; Dispatch and Station Pack optional; Radio last
Content Builder
Node.js 20+ on a local developer or server-owner computer
Media rights
Retain every component license, attribution, provenance, and media notice
03 / INSTALLATION

Installation

  1. 01

    Place san_andreas_sound, san_andreas_dispatch, san_andreas_station_pack, and san_andreas_radio in the server resources directory without renaming them.

  2. 02

    Start san_andreas_sound first. Do not run the original xsound or interact-sound resources beside it while its compatibility aliases are enabled.

  3. 03

    Start the optional san_andreas_dispatch and san_andreas_station_pack resources when their synchronized programming is needed.

  4. 04

    Start san_andreas_radio last with OneSync enabled, then validate native radio, suite media, scanner state, late joins, and vehicle-state synchronization.

  5. 05

    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.

04 / CONFIGURATION

Configuration

01

Choose the runtime components

Sound and Radio form the core vehicle-audio path. Add Dispatch for synchronized service channels and Station Pack for server-owned music programming. The two optional resources can be omitted when those sources are not needed.

02

Review compatibility aliases

San Andreas Sound provides xsound and interact-sound aliases for dependent resources. Validate every consumer against the documented compatibility surface and remove duplicate legacy providers before starting the suite.

03

Configure direct media and fallbacks

Direct media URLs need appropriate CORS access for Web Audio spatial processing, HRTF, and EQ. HTML or YouTube fallback playback can preserve basic volume control but cannot provide the same spatial processing path.

04

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.

05Enable the optional voice bridge deliberately

The pma-voice live-player bridge is optional and disabled by default. Confirm the voice resource, provider configuration, and player-facing behavior on a development server before enabling it.

06

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.

05 / USAGE

Usage and validation

Inspect Sound and streamer mode

Use the status command to print active-sound diagnostics. Streamer mode locally mutes all San Andreas Sound-managed audio for that player while shared synchronization continues.

Commandstext
/san_andreas_sound_status
/streamermode status
/streamermode on
/streamermode off

Use 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.

Commandstext
/saradio
/sascanner
/scannerhud
/saradiotrack

Validate synchronized timelines

Test a current Dispatch transmission and Station Pack program with two clients, then reconnect or tune a second client mid-item. The late client should enter at the current shared offset rather than restarting the item.

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.

06 / SUITE COMPONENTS

Suite components

Each component has a distinct runtime responsibility and can be evaluated separately before the complete stack is enabled.

01

San Andreas Sound 1.5.16

Dependency-free positional audio backend with native playback controls, diagnostics, streamer mode, and xSound and InteractSound compatibility surfaces.

02

San Andreas Dispatch 0.5.2 manifest baseline

Server-authoritative scheduler for six independent locally hosted service channels. It publishes synchronized descriptors but does not render audio by itself.

03

San Andreas Station Pack 1.0.0

Optional server-owned station catalog and deterministic program clock with three original demonstration tracks and one original artwork image.

04

San Andreas Radio 1.0.0

OneSync-backed vehicle head unit for native radio, Satellite, Bluetooth playlists, Server Radio, scanner controls, and synchronized vehicle state.

05

Content Builder 0.5.3

Local Node 20+ browser workbench for configuration, import, validation, and deployment exports. It is not a FiveM resource or published npm package.

07 / PUBLIC APIS

Public APIs

Use the documented exports and local server events rather than internal Radio network events. The repository Developer Guide remains the detailed contract reference.

01

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.

Examplelua
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)
02

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.

Examplelua
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)
03

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.

04

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.

08 / MEDIA AND LICENSING

Media and licensing

01

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.

02

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.

03

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.

09 / TROUBLESHOOTING

Troubleshooting

A dependent resource cannot find its audio provider
Checks

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
Checks

Confirm the media host permits the Web Audio request through CORS and that the source is using the direct playback path. HTML or YouTube fallback playback cannot provide the same HRTF and EQ path.

Radio state does not remain synchronized
Checks

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
Checks

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
Checks

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.

10 / REFERENCE

Reference

01

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.

02

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 root release table labels Dispatch 1.0.0, while docs/README.md defines fxmanifest versions as authoritative and the Dispatch manifest reports 0.5.2. This guide follows the manifest until the repository labels are aligned.
  • Documentation CC BY 4.0 terms do not relicense game screenshots, trademarks, third-party media, or source excerpts that the documentation depicts.