Contents
Unreal Engine 5.8 · System guide
MetaSounds
Build and debug procedural game audio
On this page
Choose a task
Choose an approach
Build and understand
Assets and graph contractOpen reference →Builder API and output watchingOpen reference →Audio Modulation, mixing, and QuartzOpen reference →Presets, Patches, and interfacesOpen reference →Runtime parameters and eventsOpen reference →Spatialization, lifetime, and concurrencyOpen reference →Variation and recipesOpen reference →
Troubleshoot
Workflow and boundaries
Use these checks when a task crosses several systems. The focused references above contain the specific actions.
Select the audio layer first
Read references/system-selector.md.
- One playable procedural/parameterized sound -> MetaSound Source.
- Reusable graph behavior inside other MetaSounds -> Patch.
- Same graph with different default inputs -> Preset.
- Cross-category volume/filter/pitch control -> Audio Modulation/Control Buses.
- Sample-accurate musical scheduling -> Quartz plus MetaSound where needed.
- Fixed simple one-shot -> Sound Wave or simple source may be enough.
Keep gameplay authority outside the audio graph. MetaSound consumes events and parameters to render feedback; it does not decide whether a hit, purchase, cooldown, or state transition is valid.
Execute
- Define the sound's informational job, duration, spatial context, variation, and mix priority.
- Choose Source, Patch, Preset, or a simpler asset and define the public input/output interface.
- Build a minimum audible signal path and correct one-shot or indefinite lifetime.
- Add deterministic/random variation, envelopes, filters, synthesis, or layering in bounded stages.
- Drive runtime changes through MetaSound Inputs/Triggers on the playing Audio Component.
- Configure attenuation, spatialization, concurrency, sound class/submix, and modulation routing.
- Test repeated triggering, virtualization/lifecycle, listener distance, and worst-case voice counts.
- Profile audio/render-thread cost and the complete mix during representative gameplay.
Load only what applies:
references/assets-and-graph-contract.mdreferences/runtime-parameters-and-events.mdreferences/variation-and-recipes.mdreferences/spatialization-lifetime-and-concurrency.mdreferences/modulation-mixing-and-quartz.mdreferences/presets-patches-and-interfaces.mdreferences/builder-api-and-output-watch.mdreferences/debugging-and-performance.md
Hard rules
- Only a MetaSound Source is directly playable; Patches encapsulate reusable graph behavior.
- Use Presets for inherited graphs with overridden default Inputs; do not duplicate the graph.
- Use Inputs for values that change during playback. MetaSound Variables are graph-internal, cannot be accessed from Blueprint, and do not register external playback-time changes.
- Set runtime parameters on the Audio Component before Play when the first audio block depends on them.
- Keep
UE.Source.OneShotand itsOn Finishedcontract for finite sounds; remove it from indefinite sounds. - Remove DC, avoid discontinuous waveform jumps, and bound gain before output.
- Define concurrency and cleanup for every repeatedly triggered or looping source.
- Use Audio Modulation for shared mix state; do not update every MetaSound instance each frame.
- Critical gameplay information must have a non-audio equivalent and survive mix/accessibility settings.
- Profile at realistic simultaneous voice counts; graph complexity alone is not the final cost.
See references/sources.md for the UE 5.8 source trail.
Version and evidence
Targets Unreal Engine 5.8 documentation. This label does not establish that every procedure was tested in an editor or packaged build.
Read the documentation sources and verification notes →