Config
#Settings
Times are in milliseconds. 1000ms = 1 second. Master settings table controlling sound system behavior and performance.
#debug
Shows debug markers for active sound positions and logs loaded sound files when enabled.
Example:
#volumeUpdateInterval
Controls how frequently clients update active sound volume by distance. Lower values make volume changes smoother, while higher values reduce update cost. Changing this value too much can drastically affect performance, so only adjust it if you understand the implications.
Example:
#commandName
The chat command that players type to open the sound volume configuration menu.
Example:
#kvpKey
The key used to store per-sound volume multipliers in the client's persistent key-value storage. This value is read on resource start to restore saved volume settings and written whenever volumes are updated. Change this key only if you want to reset all saved volume multipliers for every player.
Example:
#routingBucketUpdateInterval
Controls how frequently the server checks whether players have moved to a different routing bucket for location-based sounds. This setting is intended for advanced users who understand the implications of modifying it.
Example:
#unknownSoundDurationMs
The fallback duration in milliseconds used for sounds whose actual audio length has not yet been determined. This value is applied as a temporary placeholder until the correct duration is available.
Example:
#maxCachedSoundDurationMs
The maximum sound duration in milliseconds that the server will trust and cache from a client report. The server ignores any client-reported sound duration longer than this value. The default is 600000 ms (10 minutes). The comment advises not changing this value unless you need to play sounds longer than 10 minutes.
Example:
#soundDurationToleranceMs
Defines the tolerance in milliseconds for sound duration reports from clients. When a client reports a sound file's duration, the server compares it against any previously cached duration for that sound. If the difference between the new report and the cached value exceeds this tolerance, the new report is discarded as invalid. This prevents incorrect duration data from being cached.
Example:
#soundCullingUpdateInterval
Controls how frequently the server checks whether players have moved into or out of range of active location sounds.
Example:
#stateBagEntityStaleMs
Controls how long muted entity sounds continue playing after the associated entity or player leaves the local client's scope. If the entity remains out of scope for longer than this duration, the sound is stopped. The value is in milliseconds.
Example:
#stateBagStopTtlMs
Controls how long stop payloads remain in state bags after a sound stops. This allows scoped clients that join late to still receive fade-out or force-full stop data.
Example:
#stateBagEmitSlots
Controls how many temporary sync slots are available per entity for quick entity sounds. Each player entity gets its own pool of slots, so multiple players contributing sounds do not share the same pool.
Example:
#oneShotStateBagTtlMs
Controls how long one-shot entity sound synchronization data remains available in state bags before being cleaned up. Higher values can help slower clients receive the data, but also keep stale data in memory longer.
Example:
