Darksaint Games

FRSound System

UE 5.7+ · Audio · AAA Framework
In Development AudioAdaptive MusicGAS

FRSound System is an AAA-quality audio framework for Unreal Engine 5.7+. Built around a tag-driven audio state machine, it delivers adaptive music with vertical stem layering, seamless area audio blending, occlusion, spatial reverb zones, and an 8-channel audio settings system with full save/load support — all in one cohesive plugin.

EngineUE 5.7+
StudioDarksaint Games
GAS BindingSupported
Narrative ProIntegration Available
FRSound System
🎵
Music & State Machine
🏷
Tag-Driven Audio State Machine
Gameplay Tags drive the entire audio system. Game state changes — entering combat, discovering a location, starting dialogue, entering a cinematic — automatically trigger the correct state profile. No per-sound Blueprint wiring required.
🎼
Adaptive Music with Vertical Stem Layering
Music layers (stems) dynamically add and remove based on gameplay state. Combat intensity, exploration tension, and peaceful ambience blend seamlessly. Manual track override available via UFRSoundSubsystem::PlayMusicTrack() from any Blueprint or quest event.
📊
State Profiles & Sound Mixes
Each audio state is defined by a UFRSoundStateProfile data asset and paired with a USoundMix. Profiles configure music duck levels, bus volumes, and transition rules. UFRTransitionManager discovers rule assets automatically on initialization — just create the assets, no code changes.
🎚
State Override API
Push and clear state overrides from anywhere: UFRSoundSubsystem::RequestStateOverride(Tag) and ClearStateOverride(). Used for dialogue ducking, cinematics, cutscenes, and boss fight music. The state machine resumes normal evaluation when overrides are cleared.
🔊
Spatial Audio & Effects
🧱
Occlusion System
Physically-based audio occlusion attenuates and filters sounds through walls and terrain. Gives audio the same sense of depth as the visual environment.
🏛
Reverb Zones (8 Presets)
Place UFRReverbZoneComponent actors in your levels. Assign one of 8 built-in UReverbEffect presets: Exterior Open, Forest, Cave Small, Cave Large, Interior Stone, Interior Wood, Underground, Cathedral. Each has tuned RT60, early reflections, and diffusion values. Smooth transitions at zone boundaries.
🌊
Area Audio Blending
Define audio environments per area via UFRAreaAudioProfile assets. Cross-fade blending at zone boundaries handles the transition for you — no manual blend Blueprint required.
🎛
8-Channel Audio Settings
Full player-facing audio settings with 8 configurable channels across two hierarchies. Master, Music (Base, Stems, Combat), SFX (Combat, World, Footsteps), Dialogue, Ambient, UI, Cinematic, Reverb. Settings persist via save/load.
📐
Submix & Sound Class Architecture
Submix Hierarchy
SM_FRMaster
  SM_FRMusic
    SM_FRMusicBase
    SM_FRMusicStems
    SM_FRMusicCombat
  SM_FRSFX
    SM_FRSFXCombat
    SM_FRSFXWorld
    SM_FRSFXFootsteps
  SM_FRDialogue
  SM_FRAmbient
  SM_FRUI
  SM_FRCinematic
  SM_FRReverb
Sound Classes
SC_FRMaster
  SC_FRMusic
  SC_FRSFX
  SC_FRDialogue
  SC_FRAmbient
  SC_FRUI
  SC_FRCinematic
State Tags
Audio.State.Exploration
Audio.State.Combat.Light
Audio.State.Combat.Heavy
Audio.State.Dialogue
Audio.State.Cinematic
Audio.State.Night
🔌
GAS & Narrative Pro Integration
GAS Tag Binding (IFRSoundListener)
Implement IFRSoundListener on your player character and call UFRSoundSubsystem::GetStateMachine()->BindToAbilitySystemComponent(ASC) on possession. The state machine then responds automatically to Gameplay Tag changes on the ASC — combat tags trigger combat music, status effects trigger state changes.
💬
Narrative Pro Dialogue Ducking (No Hard Dependency)
FRSound has no hard dependency on Narrative Pro. Integration is four lines in your dialogue hooks: call RequestStateOverride(FRSoundTags::State_Dialogue) on OnDialogueBegin and ClearStateOverride() on OnDialogueEnd. FRSound automatically pushes SMix_FRDialogue — boosts dialogue bus, ducks music and SFX — and restores everything when the override clears.
🎬
Quest & Narrative Music Overrides
Trigger specific music tracks from any Narrative quest event, dialogue node, or Blueprint: Audio->PlayMusicTrack(MyTrackDA, false). Clear the override with ClearStateOverride() to return to dynamic music evaluation. Fully usable from Blueprint.

FRSound System — Coming Soon

Currently in development. Follow progress and be the first to know when it launches on FAB.