Skip to content

Audio

105 tools. Back to the index.

add_bus_to_mix

Additive.

Adds a USoundControlBus to a USoundControlBusMix asset as a new stage whose target value is default_value, and saves the mix. A bus already in the mix is left unchanged (already_in_mix true, not saved); edit a stage with set_control_bus_mix_stage_value. Returns mix_path, bus_path, bus_count, added, saved.

Parameter Type Required Description
mix_path string yes Asset path to the USoundControlBusMix
bus_path string yes Asset path to the USoundControlBus
default_value number no Target value for the new mix stage (default 1.0)

Returns: { mix_path, bus_path, bus_count, added, already_in_mix, saved, default_value }

add_metasound_graph_input

Additive.

Add a graph input of data_type (default Float) to an existing MetaSound Source through the MetaSound builder, inside an undo transaction, then save the asset. Optionally bakes a typed default into the new input; give at most one of default_value, int_value, bool_value or string_value (bool_value wins, then int_value, string_value, default_value). An unregistered data_type or a source that does not load is an error. A name already used by an input is left untouched: with the same data_type the call succeeds with added=false and already_exists=true, saves nothing and does not apply a supplied default (note says so; use metasound_set_input_default); with another data_type it is an error. success is false, with save_error, when the save fails (during PIE, for one). Inverse: remove_metasound_graph_input.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source, as a package path like "/Game/MetaSounds/MS_Example" or an object path like "/Game/MetaSounds/MS_Example.MS_Example"
input_name string yes Name of the graph input node to add.
data_type string no Frontend data type: "Float", "Int32", "Bool", "String", "Audio", "Trigger" (optional, default "Float")
default_value number no Float default baked into the literal (optional)
int_value number no Int32 default baked into the literal (optional, mutually exclusive with other defaults)
bool_value boolean no Bool default baked into the literal (optional, mutually exclusive with other defaults)
string_value string no String default baked into the literal (optional, mutually exclusive with other defaults)

Returns: { asset_path: string, input_name: string, data_type: string, added: bool, already_exists?: bool, has_default: bool, note?: string, saved: bool, save_error: string? }

add_metasound_graph_output

Additive.

Add a graph output of data_type (default Audio; others include Float, Int32, Bool, String and Trigger) to an existing MetaSound Source through the MetaSound builder, inside an undo transaction, then save the asset. An unregistered data_type or a source that does not load is an error. A name already used by an output is left untouched: with the same data_type the call succeeds with added=false and already_exists=true and saves nothing; with another data_type it is an error. success is false, with save_error, when the save fails (during PIE, for one). Inverse: remove_metasound_graph_output.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
output_name string yes Name of the graph output node to add.
data_type string no Frontend data type for the output node (optional, default "Audio")

Returns: { asset_path: string, output_name: string, data_type: string, added: bool, already_exists?: bool, saved: bool, save_error: string? }

add_modulation_input_to_patch

Additive.

Appends a USoundControlBus as an input of a USoundModulationPatch asset and saves the patch. A bus whose asset name is already among the inputs is skipped (added false, already_present true, not saved). input_name is not stored. Returns patch_path, bus_path, input_count, added, already_present, saved.

Parameter Type Required Description
patch_path string yes Asset path to the USoundModulationPatch
bus_path string yes Asset path to the USoundControlBus to add as an input
input_name string no Ignored: the engine input struct has no name field, so the value is only written to the log (default empty)

Returns: { patch_path, bus_path, input_count, added, already_present, saved }

add_sound_cue_node

Additive.

Construct a USoundNode inside a Sound Cue and return its node_id

Parameter Type Required Description
cue_path string yes Full asset path of the cue, e.g. /Game/SoundCues/SC_Foo
node_type string yes One of WavePlayer|Mixer|Random|Looping|Modulator|Delay|Concatenator|Attenuation|Branch|DistanceCrossFade|Doppler|Enveloper|GroupControl|ModulatorContinuous|Oscillator|ParamCrossFade|QualityLevel|SoundClass|Switch|WaveParam
sound_wave_path string no Optional USoundWave path for WavePlayer nodes only

Returns: { cue_path: string, node_id: int, node_type: string, node_class: string, max_child_nodes: int, child_count: int, sound_wave_set: bool, sound_wave_path: string, node_count: int, saved: bool }

add_soundfield_effect_to_submix

Additive.

Append a new effect of a concrete USoundfieldEffectBase class to a USoundfieldSubmix effect chain and save it; an addition succeeds only when the submix reaches disk. A class already in the chain is skipped (added false, already_present true, not saved). When no concrete subclass is loaded (stock UE 5.8 ships none) nothing changes and the call fails, with added false and a note.

Parameter Type Required Description
submix_path string yes Full path to the USoundfieldSubmix (required).
effect_class_name string yes Full class path of a concrete USoundfieldEffectBase subclass, e.g. "/Script/MyAudioPlugin.MySoundfieldEffect"; it is looked up with no outer, so a bare class name does not resolve

Returns: { submix_path, effect_path, effect_class, chain_length, added, already_present, saved, note? }

add_submix_effect_to_chain

Additive.

Append a submix effect preset to a USoundSubmix effect chain

Parameter Type Required Description
submix_path string yes Full content path of the target USoundSubmix
effect_preset_path string no Optional existing USoundEffectSubmixPreset to load
effect_preset_class string no Optional concrete USoundEffectSubmixPreset subclass path to NewObject

Returns: { submix_path: string, effect_name: string, effect_class: string, resolved_from: string, effect_added: bool, chain_length: int, saved: bool }

add_subtitle_cue

Additive.

Appends a subtitle cue (FSubtitleAssetData) to a USubtitleAssetUserData. Builds the cue from the supplied text/timing/priority/type/comment, dedupes by FSubtitleAssetData::operator== (text, duration, start_offset, priority, subtitle_type), and either appends or returns the existing cue's index with already_existed: true.

Parameter Type Required Description
asset_path string yes Content path of the USubtitleAssetUserData asset.
text string yes The subtitle text (required).
start_offset number no Initial delay in seconds before the subtitle is visible (default 0).
duration number no Display duration in seconds (default 3).
duration_type string no "use_sound_duration" or "use_duration_property" (default "use_duration_property").
subtitle_type string no "subtitle", "closed_caption", or "audio_description" (default "subtitle").
priority number no Subtitle priority; higher values play instead of lower (default 1).
comment string no Editor-only author comment (default "").

Returns: { asset_path: string, cue_index: int, text: string, success: bool, already_existed: bool, cue_count: int, saved: bool }

configure_audio_3d

Destructive, idempotent.

Applies a 3D audio preset to an audio component of the editor world: spatialization (bAllowSpatialization) and an attenuation override, a sphere whose inner radius is attenuation_radius and whose falloff distance is attenuation_distance ('Disabled' turns both off). audio_3d_configured is read back from the component. attenuation_falloff and the cone numbers only describe the preset (a sphere has no cone).

Parameter Type Required Description
audio_component_name string yes Name of the audio component to configure
audio_3d_settings string yes 3D setting preset: 'Enabled', 'Disabled', 'High', 'Medium', or 'Low' (case-insensitive); any other name is an error

Returns: { audio_component_name: string, audio_3d_settings: string, audio_3d_configured: bool, audio_3d_message: string, old_3d_enabled: bool, new_3d_enabled: bool, attenuation_override: bool, applied_attenuation_radius?: number, applied_falloff_distance?: number, 3d_enabled: bool, spatialization_enabled: bool, attenuation_distance: number, attenuation_radius: number, attenuation_falloff: number, attenuation_cone_angle: number, attenuation_cone_feather: number, audio_3d_recommendations: [string] }

connect_metasound_nodes

Destructive.

Connects a graph input node's output to a graph output node's input. Resolves the source handle from a graph INPUT node by name (FindGraphInputNode -> the input node's output handle) and the destination handle from a graph OUTPUT node by name (FindGraphOutputNode -> the output node's input handle), then calls UMetaSoundBuilderBase::ConnectNodes and verifies via NodesAreConnected. The connection is real where the two data types match (e.g. a Float graph input connected to a Float graph output). Saves the asset.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
from_node_output_name string yes Name of the graph INPUT to use as the connection source.
to_node_input_name string yes Name of the graph OUTPUT to use as the connection target.

Returns: { asset_path: string, from_node_output_name: string, to_node_input_name: string, from_data_type: string, to_data_type: string, connected: bool, result: string, verified: bool, saved: bool, save_error: string? }

connect_sound_cue_nodes

Destructive.

Wire a child node into a parent node's input slot

Parameter Type Required Description
cue_path string yes Full asset path of the cue
parent_node_id number yes node_id of the upstream node with inputs
child_node_id number yes node_id of the node to feed into the parent
input_index number no Optional target slot, defaults to next free slot

Returns: { cue_path: string, parent_node_id: int, child_node_id: int, input_index: int, parent_class: string, child_class: string, parent_child_count: int, connected: bool, saved: bool }

create_audio_bus

Destructive.

Creates a UAudioBus asset at package_path/name and saves it, or loads the one already there (already_exists true) and saves it again; another asset class at that path is an error. channels, when given, sets the channel layout, overwriting an existing bus's layout; when omitted a new bus gets Stereo and an existing one keeps its own. An invalid channels value is refused before any asset is created or loaded. Change the layout later with set_audio_bus_channels and read it with get_audio_bus; create_sound_source_bus makes a source bus that plays this bus's audio.

Parameter Type Required Description
name string yes Name of the new Audio Bus asset
package_path string no Target content path, defaults to /Game/Audio
channels string no EAudioBusChannels: 'Mono' | 'Stereo' (default) | 'Quad' | 'FiveDotOne' | 'SevenDotOne'. The default applies to a new bus only.

Returns: { name: string, package_path: string, asset_path: string, asset_class: string, channels: string, channels_int: int, num_channels: int, applied_channels: bool (this call wrote the layout: channels given, or the Stereo default on a new bus), created: bool, already_exists: bool, saved: bool, save_error?: string }

create_control_bus

Additive.

Creates a USoundControlBus asset at package_path/bus_name, or loads the one already there, and saves it. initial_value is only echoed back as value, never written to the bus; push a runtime value with set_control_bus_value. Returns bus_path, default_value, created, already_existed, saved.

Parameter Type Required Description
bus_name string yes Name of the control bus (e.g. "Bus_Volume")
package_path string no Target content package path where the asset is created (default /Game/MCP)
initial_value number no Number echoed back as value in the reply; it is not stored on the bus (default 1.0)

Returns: { bus_path, bus_name, value, default_value, created, already_existed, saved }

create_control_bus_mix

Additive.

Creates a USoundControlBusMix asset at package_path/mix_name, or loads the one already there, and saves it. A new mix has no stages; add buses with add_bus_to_mix. Returns mix_path, mix_name, bus_count (its stage count), created, saved.

Parameter Type Required Description
mix_name string yes Name of the control bus mix asset
package_path string no Target content package path where the asset is created (default /Game/MCP)

Returns: { mix_path, mix_name, bus_count, created, saved }

create_dialogue_voice

Additive, idempotent.

Create a UDialogueVoice asset (idempotent). Populate Gender/Plurality afterwards via set_properties on object_path.

Parameter Type Required Description
name string yes Name of the new DialogueVoice asset
package_path string no Target content path, defaults to /Game/Audio

Returns: { name: string, package_path: string, asset_path: string, object_path: string, asset_class: string, gender: string, plurality: string, already_existed: bool, saved: bool }

create_dialogue_wave

Additive, idempotent.

Create a UDialogueWave asset (idempotent). Populate ContextMappings afterwards via set_properties on object_path.

Parameter Type Required Description
name string yes Name of the new DialogueWave asset
package_path string no Target content path, defaults to /Game/Audio

Returns: { name: string, package_path: string, asset_path: string, object_path: string, asset_class: string, context_mapping_count: int, already_existed: bool, saved: bool }

create_metasound_preset

Additive.

Creates a MetaSound preset from an existing source or patch asset. Uses UMetaSoundBuilderSubsystem::CreateSourcePresetBuilder (or CreatePatchPresetBuilder) to create a transient preset builder referencing the source, then BuildToAsset to persist it as a new /Game asset.

Parameter Type Required Description
preset_name string yes Name of the new MetaSound preset asset.
source_asset_path string yes Content path of the existing MetaSound source/patch to use as the preset's template.
package_path string no Destination /Game folder (default /Game/MetaSounds).
preset_type string no "source" (default) or "patch".

Returns: { preset_path: string, preset_type: string, success: bool, saved: bool, already_exists: bool }

create_metasound_source

Additive.

Creates (or loads, idempotently) a UMetaSoundSource asset and saves it. Uses UMetaSoundBuilderSubsystem::CreateSourceBuilder to build a source graph (pre-populated with the source interface: OnPlay input + audio output +, for one-shots, OnFinished output), then UMetaSoundEditorSubsystem::BuildToAsset to persist it as a real /Game asset (headless-safe; no modal picker).

Parameter Type Required Description
name string yes Name of the MetaSound Source asset to create.
package_path string no Target /Game package path (optional, default "/Game/MetaSounds")
output_format string no Output audio format: "mono", "stereo", "quad", "5.1", or "7.1" (optional, default "mono")

Returns: { source_name: string, asset_path: string, created: bool, already_exists: bool, saved: bool, output_format: string, class_name: string, input_count: number, output_count: number, save_error: string? }

create_modulation_generator

Additive.

Creates a modulation generator asset of class LFO, ADEnvelope or EnvelopeFollower at generator_path, with engine default settings, and saves it. An existing generator there is returned untouched with its own class (not saved). Returns generator_path, generator_name, generator_class, created, already_existed, saved. Configure it with set_modulation_generator_settings.

Parameter Type Required Description
generator_path string yes Full asset path (e.g. /Game/MyGame/Gen_LFO)
generator_class string yes Concrete class name (case-insensitive). One of: LFO, ADEnvelope, EnvelopeFollower

Returns: { generator_path, generator_name, generator_class, created, already_existed, saved }

create_modulation_generator_lfo

Destructive.

Creates a USoundModulationGeneratorLFO asset at package_path/generator_name (or loads the one there), writes waveform, frequency, amplitude and offset, enables looping and saves it, overwriting an existing LFO. An unknown waveform silently becomes Sine but is echoed as sent. Returns generator_path, the written values, created, saved.

Parameter Type Required Description
generator_name string yes Name of the modulation generator asset
package_path string no Target content package path where the asset is created (default /Game/MCP)
frequency number no LFO frequency in Hz (default 1.0)
amplitude number no LFO amplitude (default 1.0)
offset number no LFO output offset (default 0.0)
waveform string no LFO shape, case-insensitive: Sine, UpSaw, DownSaw, Square, Triangle, Exponential, Random (default Sine; any other value also gives Sine)

Returns: { generator_path, generator_name, waveform, frequency, amplitude, offset, created, saved }

create_modulation_parameter

Additive.

Creates a USoundModulationParameter asset of the chosen concrete class at parameter_path and saves it. An existing parameter there is returned untouched with its real class (not saved). Returns parameter_path, parameter_name, parameter_class, created, already_existed, saved. Tune it with set_modulation_parameter_settings.

Parameter Type Required Description
parameter_path string yes Full asset path (e.g. /Game/MyGame/Param_Volume); the package path is the directory portion and the leaf becomes the asset name
parameter_class string yes Concrete class name (case-insensitive). One of: Volume, Frequency, LPFrequency, HPFrequency, Bipolar, Additive, Scaled; the engine spellings LPFFrequency and HPFFrequency are accepted too.

Returns: { parameter_path, parameter_name, parameter_class, created, already_existed, saved }

create_sound_attenuation

Additive.

Create a USoundAttenuation asset at package_path/name, or load the one already there, then force bAttenuate on, apply the optional falloff_distance and sphere radius, and save it (re-running edits the existing asset). Returns the values read back; set_sound_attenuation_properties edits every other field.

Parameter Type Required Description
name string yes Name of the new Sound Attenuation asset
package_path string no Target content path, defaults to /Game/Audio
falloff_distance number no FalloffDistance in Unreal units (cm): how far beyond the inner shape the volume fades out. Unchanged when omitted.
radius number no Inner sphere radius in Unreal units (cm); sets the shape to Sphere and AttenuationShapeExtents to (radius, 0, 0). Unchanged when omitted.

Returns: { name: string, package_path: string, asset_path: string, asset_class: string, attenuate: bool, falloff_distance: number, radius: number, shape_extent_x: number, shape_extent_y: number, shape_extent_z: number, applied_falloff_distance: bool, applied_radius: bool, created: bool, already_exists: bool, saved: bool }

create_sound_class

Additive.

Create a USoundClass asset and optionally set its volume/pitch

Parameter Type Required Description
name string yes Name of the new Sound Class asset
package_path string no Target content path, defaults to /Game/Audio
volume number no Optional Volume multiplier on FSoundClassProperties
pitch number no Optional Pitch multiplier on FSoundClassProperties

Returns: { name: string, package_path: string, asset_path: string, asset_class: string, volume: number, pitch: number, applied_volume: bool, applied_pitch: bool, created: bool, already_exists: bool, saved: bool }

create_sound_concurrency

Additive.

Create a USoundConcurrency asset at package_path/name, or load the one already there, optionally set MaxCount, and save it. Returns max_count read back, created, already_exists and saved; set_sound_concurrency_properties edits the other concurrency settings.

Parameter Type Required Description
name string yes Name of the new Sound Concurrency asset
package_path string no Target content path, defaults to /Game/Audio
max_count number no Most sounds of this group that play at once (MaxCount); values below 1 become 1 and fractions are truncated. Unchanged when omitted.

Returns: { name: string, package_path: string, asset_path: string, asset_class: string, max_count: int, applied_max_count: bool, created: bool, already_exists: bool, saved: bool }

create_sound_cue

Additive.

Create an empty USoundCue (no nodes, no first node) at package_path/name and save it; an existing cue there is returned unchanged (already_existed:true). Returns cue_path, asset_path, node_count and saved. Build the graph with add_sound_cue_node, connect_sound_cue_nodes and set_sound_cue_first_node.

Parameter Type Required Description
name string yes Asset name, e.g. SC_Footsteps
package_path string no Target content path, defaults to /Game/SoundCues

Returns: { name: string, package_path: string, asset_path: string, cue_path: string, created: bool, already_existed: bool, node_count: int, saved: bool, message: string }

create_sound_mix

Destructive, idempotent.

Create a USoundMix asset at package_path/name (package_path defaults to /Game/Audio) and save it; a sound mix already there is loaded instead (already_exists true) and the eq_enabled and duration you pass overwrite its values before it is saved. Omitted fields keep their current values; the reply reads eq_enabled and duration back from the asset. An invalid path, or an asset of another class there, is an error; a failed save is an error with the change kept in memory. Idempotent. Add per-class volume and pitch adjusters with set_sound_mix_class_override; create the classes with create_sound_class.

Parameter Type Required Description
name string yes Name of the new Sound Mix asset
package_path string no Target content path, defaults to /Game/Audio
eq_enabled boolean no Optional bool, sets USoundMix::bApplyEQ (whether to apply the EQ effect). Left at the asset default when absent.
duration number no Optional float, sets USoundMix::Duration in seconds (negative means applied until another mix is set). Left at the asset default when absent.

Returns: { name: string, package_path: string, asset_path: string, asset_class: string, eq_enabled: bool, duration: number, applied_eq_enabled: bool, applied_duration: bool, created: bool, already_exists: bool, saved: bool }

create_sound_modulation_patch

Additive.

Creates a USoundModulationPatch asset at package_path/patch_name with no inputs or output, bypassed by default (bBypass true), and saves it; a patch already there is returned untouched, not re-saved. Returns patch_path, bBypass, input_count, output_parameter_path, created, already_existed, saved. Fill it with add_modulation_input_to_patch and set_modulation_patch_output_parameter.

Parameter Type Required Description
patch_name string yes Name of the modulation patch asset (e.g. "Patch_Volume")
package_path string no Target content package path where the asset is created (default /Game/MCP)

Returns: { patch_path, patch_name, bBypass, input_count, output_parameter_path, created, already_existed, saved }

create_sound_source_bus

Destructive.

Creates a USoundSourceBus asset at package_path/name, or loads the one already there, writes its routing fields and saves it; another asset class at the path is an error. source_bus_channels and duration, when omitted, take the defaults (Stereo, 1.0 s) on a new asset and keep their value on an existing one, whose fields the given values overwrite. Every value is validated before any asset is created or loaded, so an invalid one leaves nothing behind. audio_bus_path, when given, must load as a UAudioBus and becomes the bus whose audio this source bus plays; when omitted that field is left as is. Edit later with set_sound_source_bus_audio_bus or set_sound_source_bus_send_info; read with get_sound_source_bus.

Parameter Type Required Description
name string yes Name of the new Sound Source Bus asset
package_path string no Target content path, defaults to /Game/Audio
source_bus_channels string no ESourceBusChannels: 'Mono' | 'Stereo' (default). USoundSourceBus inherits only Mono/Stereo. The default applies to a new asset only.
duration number no Duration in seconds, at least 0 (0.0 means indefinite); a negative value is an error. Default 1.0 on a new asset only.
audio_bus_path string no Optional full content path of a UAudioBus to assign as the AudioBus return.

Returns: { name: string, package_path: string, asset_path: string, asset_class: string, source_bus_channels: string, duration: float, audio_bus_path: string, audio_bus_class: string, applied_channels: bool, applied_duration: bool (each true when this call wrote the field: given, or the default on a new asset), applied_audio_bus: bool, created: bool, already_exists: bool, saved: bool, save_error?: string }

create_sound_submix

Additive.

Create an empty USoundSubmix asset at package_path/name, or load the one already there, and save it. Returns asset_path, created, already_exists and saved; add effects with add_submix_effect_to_chain and read them with get_submix_effect_chain.

Parameter Type Required Description
name string yes Name of the new Sound Submix asset
package_path string no Target content path, defaults to /Game/Audio

Returns: { name: string, package_path: string, asset_path: string, asset_class: string, created: bool, already_exists: bool, saved: bool }

create_soundfield_submix

Additive.

Create a USoundfieldSubmix asset at submix_path and save it, with its default encoding format and an empty effect chain; a new one succeeds only when it reaches disk. An existing one there is returned unchanged and not re-saved (already_existed true, saved false). Returns soundfield_encoding_format, effect_chain_length and saved; inspect it with get_soundfield_submix_info.

Parameter Type Required Description
submix_path string yes Full asset path like "/Game/Audio/MySFSubmix" (required).

Returns: { submix_path, asset_path, soundfield_encoding_format, encoding_settings_class, created, already_existed, saved }

create_subtitles_asset

Additive, idempotent.

Creates a USubtitleAssetUserData asset (the UE 5.8 subtitle authoring asset). Creates a new package under /Game and NewObject<USubtitleAssetUserData> into it, then saves. Idempotent: if the asset already exists, returns it with already_existed: true.

Parameter Type Required Description
name string yes Name of the new subtitles asset.
package_path string no Destination /Game folder (default /Game/MCP).

Returns: { asset_path: string, success: bool, already_existed: bool, cue_count: int, saved: bool }

delete_meta_sound

Destructive, idempotent.

Delete a UMetaSoundSource asset from the project. Idempotent — deleting a non-existent asset is a no-op. Destructive — requires confirm=true.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
confirm boolean no Must be true to actually delete.

Returns: { metasound_path, deleted, already_existed, note }

disconnect_metasound_node_from_graph_output

Destructive, idempotent.

Disconnects whatever node output currently drives a named graph output, clearing the edge (inverse of metasound_connect_node_to_graph_output). Resolves the graph output node's input handle by name (FindGraphOutputNode) and queries NodeInputIsConnected first: if the input is already unconnected it returns already_disconnected without error (idempotent), otherwise it calls UMetaSoundBuilderBase::DisconnectNodeInput and reports the result. Saves the asset.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
graph_output_name string yes Name of the target graph output to disconnect (discover via get_metasound_graph_info).

Returns: { asset_path: string, graph_output_name: string, data_type: string, disconnected: bool, already_disconnected: bool, result: string, saved: bool, save_error: string? }

disconnect_metasound_nodes

Destructive, idempotent.

Disconnects a graph input node's output from a graph output node's input (inverse of connect_metasound_nodes). Resolves the source handle from a graph INPUT node by name (FindGraphInputNode -> the input node's output handle) and the destination handle from a graph OUTPUT node by name (FindGraphOutputNode -> the output node's input handle), then queries NodesAreConnected first: if the edge is already absent it returns already_disconnected without error (idempotent), otherwise it calls UMetaSoundBuilderBase::DisconnectNodes and reports the result. Saves the asset.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
from_node_output_name string yes Name of the graph INPUT whose output is the connection source.
to_node_input_name string yes Name of the graph OUTPUT whose input is the connection target.

Returns: { asset_path: string, from_node_output_name: string, to_node_input_name: string, from_data_type: string, to_data_type: string, disconnected: bool, already_disconnected: bool, result: string, saved: bool, save_error: string?, note: string? }

disconnect_sound_cue_nodes

Destructive.

Clear a wired child out of a parent node's input slot (inverse of connect_sound_cue_nodes)

Parameter Type Required Description
cue_path string yes Full asset path of the cue
parent_node_id number yes node_id of the upstream node whose input slot is cleared
child_node_id number no Optional node_id of the wired child; its slot is located via IndexOfByKey
input_index number no Optional slot to clear directly; supply this OR child_node_id

Returns: { cue_path: string, parent_node_id: int, child_node_id: int, input_index: int, parent_class: string, child_class: string, parent_child_count: int, disconnected: bool, already_disconnected: bool, saved: bool }

get_audio_bus

Read-only.

Read the channel layout of a UAudioBus asset: channels (Mono, Stereo, Quad, FivePointOne or SevenPointOne), channels_int and num_channels. Read-only. is_active is always false because no audio device is queried. Change the layout with set_audio_bus_channels.

Parameter Type Required Description
bus_path string yes Asset path of the UAudioBus, e.g. "/Game/Audio/AB_Music".

Returns: { bus_path: string, asset_class: string, channels: string, channels_int: int, num_channels: int, is_active: bool (always false: headless — no audio device) }

get_audio_component_properties

Read-only.

Retrieves comprehensive properties of an audio component including volume, pitch, position, rotation, scale, and sound details.

Parameter Type Required Description
audio_component_name string yes Name of the audio component to query

Returns: { audio_component_name: string, audio_component_found: bool, audio_component_message: string, component_class: string, component_type: string, audio_volume: number, audio_pitch: number, audio_position: { x, y, z }, audio_rotation: { pitch, yaw, roll }, audio_scale: { x, y, z }, audio_enabled: bool, audio_auto_activate: bool, audio_sound_name: string, audio_sound_class: string, audio_sound_path: string, audio_sound_duration: number, audio_3d_enabled: bool, audio_3d_attenuation_radius: number, audio_mobility: string, audio_owner_name: string, audio_level: string, audio_world: string }

get_audio_settings

Read-only.

Retrieves comprehensive audio settings and statistics including all audio components in the world, audio device capabilities, and quality metrics.

No parameters.

Returns: { audio_settings_found: bool, audio_quality: string, audio_api: string, audio_enabled: bool, audio_mode: string, world_name?: string, audio_component_count: int, active_audio_component_count: int, spatialized_audio_component_count: int, average_volume: number, max_volume: number, max_pitch: number, engine_version: string, platform_name: string, audio_max_channels: int, audio_3d_enabled: bool, audio_reverb_enabled: bool, audio_occlusion_enabled: bool, audio_recommendations: [string], audio_complexity_score: number, audio_complexity_rating: string }

get_control_bus_mix_info

Read-only.

Reads the stages of a USoundControlBusMix asset without changing it. Returns mix_path, stage_count and stages, one per stage with bus_path (empty when the bus reference is cleared), target_value, attack_time and release_time. Edit a stage with set_control_bus_mix_stage_value.

Parameter Type Required Description
mix_path string yes Asset path to the USoundControlBusMix

Returns: { mix_path, stage_count, stages: [{ bus_path, target_value, attack_time, release_time }] }

get_meta_sound_node_info

Read-only.

Read one node of the default graph of a MetaSound Source by GUID: its name, class name, input/output/environment vertices (name, type_name, vertex_id), input literal defaults and Configuration struct class. Read-only; get node ids from list_meta_sound_nodes.

Parameter Type Required Description
metasound_path string yes MetaSound Source asset path, e.g. "/Game/Audio/MS_Rain"; MetaSound Patches are not accepted.
node_id string yes Node GUID, as list_meta_sound_nodes returns it in id; a value that is not a GUID is refused.

Returns: { metasound_path, node_id, name, class_name, inputs: [{name, type_name}], outputs: [...], environment: [...], input_defaults: [{vertex_id, value, type}], configuration_class }

get_meta_sound_node_input_default

Read-only.

Read the default literal stored on one input of a MetaSound Source node: vertex type, has_value, literal_type and value; has_value false means no literal is set. An unknown input name fails and lists the valid ones. Write it with metasound_set_node_input_default.

Parameter Type Required Description
metasound_path string yes MetaSound Source asset path, e.g. "/Game/Audio/MS_Rain"; MetaSound Patches are not accepted.
node_id string yes Node GUID, as list_meta_sound_nodes returns it in id; a value that is not a GUID is refused.
input_name string yes Name of the input vertex (matches FMetasoundFrontendVertex::Name).

Returns: { metasound_path, node_id, input_name, type, has_value, literal_type?, value? }

get_meta_sound_node_property

Read-only.

Read one field of the Configuration struct of a MetaSound Source node by property name, returning its C++ type, has_value and value as JSON. Fails when the node has no Configuration struct or the struct has no such property. Read-only; write it with set_meta_sound_node_property.

Parameter Type Required Description
metasound_path string yes MetaSound Source asset path, e.g. "/Game/Audio/MS_Rain"; MetaSound Patches are not accepted.
node_id string yes Node GUID, as list_meta_sound_nodes returns it in id; a value that is not a GUID is refused.
property string yes FProperty name on the Configuration struct.

Returns: { metasound_path, node_id, property, type, has_value, value? }

get_metasound_graph_info

Read-only.

Reads the MetaSound Source document graph: node/connection counts + I/O. Reads the document's RootGraph default page (node + connection/edge counts) and the graph's declared interface inputs/outputs (names + types). "/Game/MetaSounds/MS_Example" or fully-qualified ".MS_Example").

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source (e.g.

Returns: { asset_path: string, graph_class_name: string, node_count: number, connection_count: number, variable_count: number, input_count: number, output_count: number, inputs: [{ name: string, type: string }], outputs: [{ name: string, type: string }] }

get_metasound_info

Read-only.

Read the top-level metadata of a MetaSound Source asset, loading it if needed: its class, the root graph class name, the graph inputs and outputs (name and type) with their counts, and interface_count, the number of interfaces the document declares. Read-only; a path that does not resolve to a UMetaSoundSource is an error. For node and connection counts use get_metasound_graph_info; list_meta_sound_nodes lists the nodes and list_meta_sounds finds sources.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source, as a package path like "/Game/MetaSounds/MS_Example" or an object path like "/Game/MetaSounds/MS_Example.MS_Example"

Returns: { source_name: string, asset_path: string, class_name: string, graph_class_name: string, input_count: number, output_count: number, interface_count: number, inputs: [{ name: string, type: string }], outputs: [{ name: string, type: string }] }

get_metasound_preset_parameters

Read-only.

Gets all parameter defaults from a MetaSound preset. Loads the preset, obtains a builder, iterates GetGraphInputNames, and reads each default value along with its type from the document interface.

Parameter Type Required Description
preset_path string yes Content path of the MetaSound preset asset.

Returns: { preset_path: string, parameters: [{name, type, value}], parameter_count: int }

get_modulation_generator_info

Read-only.

Reads a USoundModulationGenerator asset without changing it. Returns generator_path, generator_class and settings by class: LFO shape, frequency, amplitude, offset, phase; ADEnvelope attack_time, decay_time; EnvelopeFollower attack_time, release_time, gain, audio_bus_path; empty for any other class.

Parameter Type Required Description
generator_path string yes Asset path to the USoundModulationGenerator

Returns: { generator_path, generator_class, settings: {...} }

get_modulation_info

Read-only.

Reads a USoundControlBus asset and its live value in the editor world, without changing anything. Returns bus_path, default_value, current_value (the live modulator value; the engine returns 1.0 for a bus that is not active) and subsystem_active (whether the editor world has a modulation manager).

Parameter Type Required Description
bus_path string yes Asset path to the USoundControlBus

Returns: { bus_path, default_value, current_value, subsystem_active }

get_modulation_parameter_info

Read-only.

Reads a USoundModulationParameter asset without changing it. Returns parameter_path, parameter_class (the concrete class, e.g. SoundModulationParameterVolume) and its settings value_normalized, clamp_to_normalized_range and value_unit. Change them with set_modulation_parameter_settings.

Parameter Type Required Description
parameter_path string yes Asset path to the USoundModulationParameter

Returns: { parameter_path, parameter_class, value_normalized, clamp_to_normalized_range, value_unit }

get_sound_attenuation_properties

Read-only.

Read every FSoundAttenuationSettings field (shape, falloff, spatialization, LPF, occlusion, reverb send) of a USoundAttenuation asset as one settings object, with the keys set_sound_attenuation_properties takes, plus asset_class. Read-only.

Parameter Type Required Description
attenuation_path string yes Full content path of the target USoundAttenuation.

Returns: { attenuation_path: string, asset_class: string, settings: object }

get_sound_class_hierarchy

Read-only.

Read one level of the hierarchy of a USoundClass asset: its parent and parent_path (parent "None" for a root), the names of its direct children and child_count. Call it again on a parent or child to walk further. Read-only.

Parameter Type Required Description
sound_class_path string yes Asset path of the USoundClass, e.g. "/Game/Audio/SC_SFX.SC_SFX".

Returns: { name: string, sound_class_path: string, parent: string, parent_path: string, children: [string], child_count: int }

get_sound_class_properties

Read-only.

Read a USoundClass asset: every FSoundClassProperties field that set_sound_class_properties writes (volume, pitch, filters, reverb and routing flags, output_target, loading_behavior) plus its direct parent and direct children by name and path; parent_class is "None" for a root class, and child_count is the number of children listed (null references are skipped). One level only: walk further with get_sound_class_hierarchy on a parent or child. Read-only; it loads the asset by object or package path, and one that does not load as a USoundClass is an error.

Parameter Type Required Description
sound_class_path string yes Content path of the USoundClass asset.

Returns: { sound_class_path: string, volume: float, pitch: float, low_pass_frequency: float, attenuation_distance_scale: float, lfe_bleed: float, voice_center_channel_volume: float, radio_filter_volume: float, radio_filter_volume_threshold: float, default_2d_reverb_send_amount: float, apply_effects: bool, always_play: bool, is_ui_sound: bool, is_music: bool, center_channel_only: bool, apply_ambient_volumes: bool, reverb: bool, output_target: string, loading_behavior: string, parent_class: string, parent_class_path: string, child_classes: [{name, path}], child_count: int }

get_sound_concurrency_properties

Read-only.

Read every FSoundConcurrencySettings field (maxCount, bLimitToOwner, resolutionRule, retriggerTime, volume scaling, voice stealing) of a USoundConcurrency asset as one settings object, with the keys set_sound_concurrency_properties takes, plus asset_class. Read-only.

Parameter Type Required Description
concurrency_path string yes Full content path of the target USoundConcurrency.

Returns: { concurrency_path: string, asset_class: string, settings: object }

get_sound_cue_graph

Read-only.

Read the node graph of a USoundCue without changing it: every node in AllNodes with its id (the node_id other sound cue tools take), class, child_ids (-1 for an empty slot), max_child_nodes and editable properties, plus first_node_id (-1 when unset) and node_count.

Parameter Type Required Description
cue_path string yes Full asset path of the cue

Returns: { cue_path: string, asset_path: string, nodes: [object], node_count: int, first_node_id: int, has_first_node: bool }

get_sound_modulation_patch_info

Read-only.

Reads a USoundModulationPatch asset without changing it. Returns patch_path, bBypass, output_parameter ({ path, class }, or null when unset), inputs (one { bus: { path }, name } per input; name is always empty) and input_count.

Parameter Type Required Description
patch_path string yes Asset path to the USoundModulationPatch

Returns: { patch_path, bBypass, output_parameter: { path, class } | null, inputs: [{ bus: { path } }], input_count }

get_sound_source_bus

Read-only.

Read the routing fields of a USoundSourceBus asset: source_bus_channels (Mono or Stereo), duration in seconds (0 plays indefinitely) and the UAudioBus it outputs to (audio_bus_path and audio_bus_class, empty when none). Read-only. Writer: set_sound_source_bus_audio_bus.

Parameter Type Required Description
ssb_path string yes Asset path of the USoundSourceBus, e.g. "/Game/Audio/SSB_Radio".

Returns: { ssb_path: string, asset_class: string, source_bus_channels: string, duration: float, audio_bus_path: string, audio_bus_class: string }

get_sound_wave_properties

Read-only.

Read USoundWave tunables (the object's own UPROPERTY fields) from an imported sound wave.

Parameter Type Required Description
sound_wave_path string yes Full content path of the target USoundWave.

Returns: { sound_wave_path: string, asset_class: string, settings: object, looping: bool }

get_soundfield_submix_info

Read-only.

Read a USoundfieldSubmix asset without changing it: its soundfield_encoding_format and resolved_format, encoding_settings {class, path}, and effect_chain entries {index, class, path, settings_class, settings_path} with chain_length. Adds a note when no concrete soundfield effect class is loaded.

Parameter Type Required Description
submix_path string yes Full path to the USoundfieldSubmix (required).

Returns: { submix_path, soundfield_encoding_format, resolved_format, encoding_settings_class, encoding_settings: { class, path }, effect_chain: [{ index, class, path, settings_class, settings_path }], chain_length, note? }

get_submix_effect_chain

Read-only.

Read the effect chain of a USoundSubmix asset in order: one entry per slot with the name, class and path of its USoundEffectSubmixPreset ("None" for an empty slot), plus chain_length. Read-only; add_submix_effect_to_chain appends to it.

Parameter Type Required Description
submix_path string yes Asset path of the USoundSubmix, e.g. "/Game/Audio/SM_Master.SM_Master".

Returns: { submix_path: string, effects: [object], chain_length: int }

list_meta_sound_node_types

Read-only.

Enumerate all MetaSound node classes registered with the engine (via Metasound::Frontend::ISearchEngine). Editor-only because ISearchEngine::FindAllClasses is gated by WITH_EDITORONLY_DATA.

Parameter Type Required Description
include_unloaded boolean no If true (default), include classes from assets not yet loaded into memory.

Returns: { count, types: [{ class_name, class_path, type, version, is_native }] }

list_meta_sound_nodes

Read-only.

List every node in the default graph of a MetaSound Source asset with its GUID id, name, class name and input/output counts, plus count. Read-only; pass the id to get_meta_sound_node_info and the other node tools.

Parameter Type Required Description
metasound_path string yes MetaSound Source asset path, e.g. "/Game/Audio/MS_Rain"; MetaSound Patches are not accepted.

Returns: { metasound_path, count, nodes: [{ id, name, class_name, input_count, output_count }] }

list_meta_sound_references

Read-only.

List the packages that reference a MetaSound Source asset, hard or soft, from the Asset Registry, with their count. Read-only; the source is loaded to resolve its package. For assets of any type use get_asset_referencers.

Parameter Type Required Description
metasound_path string yes MetaSound Source asset path, e.g. "/Game/Audio/MS_Rain"; MetaSound Patches are not accepted.

Returns: { metasound_path, count, references: [{ package_name }] }

list_meta_sounds

Read-only.

List all UMetaSoundSource assets under a content path (default /Game).

Parameter Type Required Description
package_path string no Content path to filter on (default "/Game").

Returns: { package_path, count, sounds: [{ path, name, class }] }

list_subtitle_cues

Read-only.

Lists all subtitle cues on a USubtitleAssetUserData. Read-only walk of the Subtitles array, returning cue_count, max_duration (from USubtitleAssetUserData::GetMaximumDuration), and per-cue fields (index, text, start_offset, duration, duration_type, priority, subtitle_type, comment).

Parameter Type Required Description
asset_path string yes Content path of the USubtitleAssetUserData asset.

Returns: { asset_path: string, success: bool, count: int, max_duration: float, cues: [{index, text, start_offset, duration, duration_type, priority, subtitle_type, comment}] }

metasound_add_interface

Additive.

Adds a registered interface to an existing MetaSound Source's graph. Obtains a builder for the saved asset via the editor subsystem's FindOrBeginBuilding (the reliable headless path), validates the interface via IsInterfaceRegistered, then calls UMetaSoundBuilderBase::AddInterface (which adds the interface's input/output nodes). The asset is saved after the edit.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source (e.g. "/Game/MetaSounds/MS_Example" or fully-qualified ".MS_Example").
interface_name string yes Name of a registered MetaSound interface to add (required)

Returns: { asset_path: string, node_kind: string, interface_name: string, added: bool, saved: bool }

metasound_add_node_by_classname

Destructive.

Add a real process node to a MetaSound Source graph by its registered class name (e.g. UE/Sine/Audio). Unlike add_metasound_graph_input (which adds a graph input node), this instantiates a DSP node so you can author a real signal patch headless. Returns the node's GUID (node_id) and its enumerated input/output pins (name + data_type) for follow-up set/connect calls. The asset is saved. NOT idempotent: each call adds a new node instance (delete + recreate the source for a clean run).

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
class_namespace string yes Registered node class namespace, e.g. "UE".
class_name string yes Registered node class name, e.g. "Sine".
class_variant string no Optional class variant, e.g. "Audio" (omit for the default/no-variant class).
major_version number no Optional major version (default 1).

Returns: { asset_path: string, node_id: string, class_namespace: string, class_name: string, class_variant: string, inputs: [{name,data_type}], outputs: [{name,data_type}], added: bool, saved: bool }

metasound_connect_node_to_graph_output

Destructive, idempotent.

Connect a concrete node's output pin to a named graph output, completing a signal patch (e.g. Sine.Audio -> the source's audio output). Uses ConnectNodeOutputToGraphOutput (idempotent: replaces any existing edge). Reports the honest EMetaSoundBuilderResult.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
node_id string yes GUID of the source node (from metasound_add_node_by_classname).
node_output_name string yes Name of the node's output pin (e.g. "Audio").
graph_output_name string yes Name of the target graph output (discover via get_metasound_graph_info).

Returns: { asset_path: string, node_id: string, node_output_name: string, graph_output_name: string, connected: bool, result: string, saved: bool }

metasound_set_input_default

Destructive, idempotent.

Sets the default literal value of a MetaSound Source graph input. Obtains a builder for the existing asset (FindOrBeginBuilding) and calls SetGraphInputDefault with an FMetasoundFrontendLiteral built from the supplied value, then reads the value back to verify and saves the asset. Provide exactly one of value (float, default), int_value, bool_value or string_value.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
input_name string yes Name of the graph input whose default to set.
value number no Float default value (optional, used if no other *_value is provided)
int_value number no Int32 default value (optional, mutually exclusive with value/bool_value/string_value)
bool_value boolean no Bool default value (optional, mutually exclusive with value/int_value/string_value)
string_value string no String default value (optional, mutually exclusive with value/int_value/bool_value)

Returns: { asset_path: string, input_name: string, value_type: string, value_set: bool, verified: bool, value_read_back: string, saved: bool }

metasound_set_node_input_default

Destructive, idempotent.

Set the default literal of a named input pin on a concrete node (by node_id from metasound_add_node_by_classname). Reads the value back to verify and saves. Provide exactly one of value (float, default), int_value, bool_value or string_value.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
node_id string yes GUID of the node (from metasound_add_node_by_classname).
input_name string yes Name of the node input pin (discover via the node's enumerated inputs).
value number no Float default (optional, used if no other *_value is provided).
int_value number no Int32 default (optional, mutually exclusive).
bool_value boolean no Bool default (optional, mutually exclusive).
string_value string no String default (optional, mutually exclusive).

Returns: { asset_path: string, node_id: string, input_name: string, value_type: string, value_set: bool, verified: bool, value_read_back: string, saved: bool }

play_sound

Additive.

Starts the sound already assigned to an audio component of the editor world, matched by object name (case-insensitive) against the first audio component of each actor; components in a running PIE world are not reached. start_time is an offset in seconds into the sound. A component without a sound is an error: assign one with set_audio_sound. Transient: nothing is saved, marked dirty or undoable. was_playing and playing are read just before and just after the call. Stop with stop_sound; to play an asset at a location without a component use play_sound_at_location.

Parameter Type Required Description
audio_component_name string yes Name of the audio component to play sound on
start_time number no Optional offset in seconds to start playback at

Returns: { audio_component_name: string, playing: bool, was_playing: bool, sound_name: string, start_time: number, success: bool }

play_sound_at_location

Destructive.

Plays a sound asset at a specific world location without requiring an audio component.

Parameter Type Required Description
sound_path string yes Full asset path to the sound (e.g. '/Game/Audio/MySound.MySound')
location array yes [x, y, z] 3D location to play the sound at
volume number no Optional volume multiplier; defaults to 1.0
pitch number no Optional pitch multiplier; defaults to 1.0
rotation array no Optional [pitch, yaw, roll] rotation of the sound (it matters to a directional attenuation)

Returns: { sound_path: string, sound_name: string, location: { x, y, z }, rotation: { pitch, yaw, roll }, volume: number, pitch: number, success: bool }

remove_bus_from_mix

Destructive.

Removes every stage that uses a USoundControlBus from a USoundControlBusMix asset and saves the mix; a removal succeeds only when the mix reaches disk. A bus that is not in the mix is already the state asked for: the call succeeds with removed false and already_absent true, and saves nothing. Returns mix_path, bus_path, removed, already_absent, stage_count, saved.

Parameter Type Required Description
mix_path string yes Asset path to the USoundControlBusMix
bus_path string yes Asset path to the USoundControlBus to remove from the mix

Returns: { mix_path, bus_path, removed, already_absent, stage_count, saved }

remove_metasound_graph_input

Destructive, idempotent.

Removes a graph INPUT (and its node) from a MetaSound Source by name (inverse of add_metasound_graph_input). Queries GetGraphInputNames first: if the input is already absent it returns already_absent without error (idempotent), otherwise it calls UMetaSoundBuilderBase::RemoveGraphInput and reports the result. Saves the asset.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
input_name string yes Name of the graph input to remove.

Returns: { asset_path: string, input_name: string, removed: bool, already_absent: bool, saved: bool, save_error: string?, note: string? }

remove_metasound_graph_output

Destructive, idempotent.

Removes a graph OUTPUT (and its node) from a MetaSound Source by name (inverse of add_metasound_graph_output). Queries GetGraphOutputNames first: if the output is already absent it returns already_absent without error (idempotent), otherwise it calls UMetaSoundBuilderBase::RemoveGraphOutput and reports the result. Saves the asset.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
output_name string yes Name of the graph output to remove.

Returns: { asset_path: string, output_name: string, removed: bool, already_absent: bool, saved: bool, save_error: string?, note: string? }

remove_metasound_node

Destructive, idempotent.

Removes a node from a MetaSound Source graph by its node_id GUID (inverse of metasound_add_node_by_classname). Parses the node_id into a node handle and queries ContainsNode first: if the node is already absent it returns already_absent without error (idempotent), otherwise it calls UMetaSoundBuilderBase::RemoveNode (pruning unused dependencies) and reports the result. Saves the asset.

Parameter Type Required Description
metasound_path string yes Asset path of the MetaSound Source.
node_id string yes GUID of the node to remove (from metasound_add_node_by_classname).

Returns: { asset_path: string, node_id: string, removed: bool, already_absent: bool, saved: bool, save_error: string?, note: string? }

remove_modulation_input_from_patch

Destructive.

Removes every input of a USoundModulationPatch asset whose bus has the same asset name as bus_path, then saves the patch; a removal succeeds only when the patch reaches disk. When no input matches, the patch is already the state asked for: the call succeeds with removed false and already_removed true, and saves nothing. Returns patch_path, bus_path, removed, already_removed, input_count, saved.

Parameter Type Required Description
patch_path string yes Asset path to the USoundModulationPatch
bus_path string yes Asset path to the USoundControlBus whose input is removed

Returns: { patch_path, bus_path, removed, already_removed, input_count, saved }

remove_soundfield_effect

Destructive.

Detach the effect at effect_index from a USoundfieldSubmix effect chain (undoable) and save; the effect object stays in the package, an out-of-range index is an error, and a removal succeeds only when the submix reaches disk. Returns removed_effect_class, removed_effect_path and chain_length. With no concrete effect class loaded nothing changes and the call fails, with removed false and a note.

Parameter Type Required Description
submix_path string yes Full path to the USoundfieldSubmix (required).
effect_index number yes Zero-based index into SoundfieldEffectChain (required).

Returns: { submix_path, effect_index, removed_effect_class, removed_effect_path, removed: true, already_absent: false, chain_length, saved, save_error? } -- success only when saved; with no concrete effect class loaded the call fails with { submix_path, effect_index, removed: false, saved: false, note } and the chain is not touched.

remove_subtitle_cue

Destructive, idempotent.

Remove a single FSubtitleAssetData cue by index. Inverse of add_subtitle_cue; use remove_subtitles_asset to destroy the whole asset instead. Idempotent: an out-of-range index returns removed:false + note, not an error.

Parameter Type Required Description
asset_path string yes /Game path to the USubtitleAssetUserData.
cue_index number yes 0-based index into Subtitles[].

Returns: { asset_path, cue_index, removed, previous_count, new_count }

remove_subtitles_asset

Destructive, idempotent.

Destroy a USubtitleAssetUserData asset (mirror of create_subtitles_asset). Typed-delete: it loads the asset and REFUSES to delete it if it is not a USubtitleAssetUserData, so it cannot wipe the wrong asset the way the generic delete_asset can. Idempotent on missing assets.

Parameter Type Required Description
asset_path string yes Full /Game/... asset path of the subtitles asset.

Returns: { asset_path, deleted, already_existed, asset_class?, note? }

set_audio_bus_channels

Destructive, idempotent.

Change the channel layout (AudioBusChannels) of an existing UAudioBus asset and save it; success requires the save. Returns channels, channels_int and num_channels read back from the asset. To make a new bus use create_audio_bus.

Parameter Type Required Description
bus_path string yes Asset path of the UAudioBus, e.g. "/Game/Audio/AB_Music".
channels string yes EAudioBusChannels: 'Mono' | 'Stereo' | 'Quad' | 'FiveDotOne' | 'SevenDotOne', case-insensitive; FivePointOne, 5.1, SevenPointOne and 7.1 are accepted too.

Returns: { bus_path: string, asset_class: string, channels: string, channels_int: int, num_channels: int, saved: bool }

set_audio_sound

Destructive, idempotent.

Sets the sound asset of an audio component of the editor world, matched by object name (case-insensitive) against the first audio component of each actor; components in a running PIE world are not reached. A component that is playing restarts with the new sound unless it allows multiple instances. The change is not saved, marked dirty or undoable. A missing component or a sound that does not load is an error. previous_sound_name names the sound it replaced (None when there was none). Start playback with play_sound.

Parameter Type Required Description
audio_component_name string yes Name of the audio component to modify
sound_path string yes Full asset path to the sound (e.g. '/Game/Audio/MySound.MySound')

Returns: { audio_component_name: string, sound_path: string, sound_name: string, previous_sound_name: string, sound_duration: number, success: bool }

set_audio_volume

Destructive, idempotent.

Set VolumeMultiplier (0 to 10, else an error; also resets VolumeModulationMin/Max to 1) on an audio component of the editor world, matched by object name against the first audio component of each actor. No undo, no dirty mark. Returns old_volume, new_volume and volume_set.

Parameter Type Required Description
audio_component_name string yes Object name of the audio component to modify (e.g. "AudioComponent0"), compared without case; only the first audio component of each actor is searched.
volume number yes Volume multiplier between 0.0 and 10.0

Returns: { audio_component_name: string, old_volume: number, new_volume: number, requested_volume: number, volume_set: bool, volume_message: string, audio_enabled: bool, audio_pitch: number, audio_mobility: string, audio_sound_name: string, audio_3d_attenuation_radius: number, audio_position: { x, y, z }, audio_owner_name: string }

set_control_bus_mix_stage_value

Destructive, idempotent.

Sets the stored target value, and optionally the attack and release fade times in seconds, of the stage a USoundControlBus has in a USoundControlBusMix asset, then saves the mix; success requires the save. Only that bus's first stage is edited, inside an undo transaction; a bus that is not in the mix is an error (add it with add_bus_to_mix). It edits the asset, not a live value: push a runtime value with set_control_bus_value. Read the stages with get_control_bus_mix_info.

Parameter Type Required Description
mix_path string yes Asset path to the USoundControlBusMix
bus_path string yes Asset path to the USoundControlBus whose stage is edited
target_value number yes New stage target value (required float)
attack_time number no Optional attack interpolation time in seconds
release_time number no Optional release interpolation time in seconds

Returns: { mix_path, bus_path, target_value, attack_time, release_time, updated, saved }

set_control_bus_value

Destructive, idempotent.

Pushes a runtime value into a USoundControlBus through a global bus mix of the editor world (UAudioModulationStatics::SetGlobalBusMixValue), fading over fade_time. Transient: the asset is not modified or saved, and applied is always true, not read back; read the live value with get_modulation_info.

Parameter Type Required Description
bus_path string yes Asset path to the USoundControlBus
value number yes New runtime bus value to push (required float)
fade_time number no Fade time in seconds; a negative value reuses the last fade time of the global stage, or 0.1 s if none was set (default -1.0)

Returns: { bus_path, value, fade_time, applied }

set_meta_sound_node_property

Destructive, idempotent.

Write one field of a MetaSound Source node's Configuration struct by reflection, directly in the document (not through the MetaSound builder), then save the asset. Re-applying a value returns value_changed false but still saves. Succeeds only when the asset reaches disk; a failed save leaves the value in memory only (saved false, save_error).

Parameter Type Required Description
metasound_path string yes MetaSound Source asset path, e.g. "/Game/Audio/MS_Rain"; MetaSound Patches are not accepted.
node_id string yes Node GUID, as list_meta_sound_nodes returns it in id; a value that is not a GUID is refused.
property string yes FProperty name on the Configuration struct.
value any yes New value for the field as JSON, converted by FJsonObjectConverter: a number, bool, string, array or object (for a struct field); numbers and booleans can also be passed as strings ("0.5", "true").

Returns: { metasound_path, node_id, property, set, value_changed, new_value?, saved, save_error? }

set_metasound_preset_parameter

Destructive, idempotent.

Sets a parameter default value on a MetaSound preset. Loads the preset, obtains a builder via FindOrBeginBuilding, calls SetGraphInputDefault with the appropriate literal type, then BuildAndOverwriteMetaSound to persist.

Parameter Type Required Description
preset_path string yes Content path of the MetaSound preset asset.
parameter_name string yes Name of the graph input parameter to set.
parameter_type string no Literal type for the value: "float" (default), "bool", "int", "string".
value any no Value to set. Interpreted according to parameter_type.

Returns: { preset_path: string, parameter_name: string, success: bool, verified: bool, value_read_back: string, saved: bool }

set_modulation_generator_settings

Destructive, idempotent.

Writes the settings that match the class of a USoundModulationGenerator asset (LFO, ADEnvelope or EnvelopeFollower) and saves it; params of another class are ignored, other generator classes are refused, and the LFO shape cannot be set here. Returns generator_path, generator_class, settings as stored, updated, saved.

Parameter Type Required Description
generator_path string yes Asset path to the USoundModulationGenerator
frequency number no LFO only: oscillation frequency in Hz (optional float)
amplitude number no LFO only: output amplitude/gain multiplier (optional float)
offset number no LFO only: output offset added to the waveform (optional float)
phase number no LFO only: starting phase in degrees (optional float)
attack_time number no ADEnvelope/EnvelopeFollower: attack interpolation time in seconds (optional float)
decay_time number no ADEnvelope only: decay interpolation time in seconds (optional float)
release_time number no EnvelopeFollower only: release interpolation time in seconds (optional float)
gain number no EnvelopeFollower only: input gain applied before envelope detection (optional float)
audio_bus_path string no EnvelopeFollower only: asset path to the UAudioBus the follower listens to (optional string)

Returns: { generator_path, generator_class, settings: {...}, updated, saved }

set_modulation_parameter_settings

Destructive, idempotent.

Writes the given Settings fields (value_normalized, clamp_to_normalized_range, value_unit) of a USoundModulationParameter asset and saves it; omitted fields keep their value, and the asset is saved even when none is given. Returns parameter_path, the three settings as stored, updated, saved.

Parameter Type Required Description
parameter_path string yes Asset path to the USoundModulationParameter
value_normalized number no Optional float in [0,1]; sets Settings.ValueNormalized
clamp_to_normalized_range boolean no Optional bool; sets Settings.bClampToNormalizedRange
value_unit number no Optional float (editor-only); sets Settings.ValueUnit

Returns: { parameter_path, value_normalized, clamp_to_normalized_range, value_unit, updated, saved }

set_modulation_patch_bypass

Destructive, idempotent.

Sets the bBypass flag of a USoundModulationPatch asset and saves it. A bypassed patch stays active but outputs the default value of its output parameter; new patches start bypassed. Returns patch_path, bBypass as stored, updated, saved.

Parameter Type Required Description
patch_path string yes Asset path to the USoundModulationPatch
bypass boolean yes New bypass value (required bool)

Returns: { patch_path, bBypass, updated, saved }

set_modulation_patch_output_parameter

Destructive, idempotent.

Sets the output USoundModulationParameter of a USoundModulationPatch asset, or clears it when parameter_path is an empty string, and saves the patch. Returns patch_path, parameter_path and parameter_class as stored (empty after a clear), updated, cleared, saved. Create a parameter with create_modulation_parameter.

Parameter Type Required Description
patch_path string yes Asset path to the USoundModulationPatch
parameter_path string yes Asset path to the USoundModulationParameter (or empty string to clear)

Returns: { patch_path, parameter_path, parameter_class, updated, cleared, saved }

set_sound_attenuation_properties

Destructive, idempotent.

Author FSoundAttenuationSettings on a USoundAttenuation via reflection (partial merge + clamp).

Parameter Type Required Description
attenuation_path string yes Full content path of the target USoundAttenuation.
settings object yes Object of FSoundAttenuationSettings/FBaseAttenuationSettings fields to merge; absent keys untouched. e.g. bAttenuate, bSpatialize, attenuationShape(Sphere/Capsule/Box/Cone), distanceAlgorithm, falloffDistance, dBAttenuationAtMax(-60..0), attenuationShapeExtents{x,y,z}, bAttenuateWithLPF, lPFFrequencyAtMin/Max, bEnableOcclusion, occlusionVolumeAttenuation, bEnableReverbSend, reverbWetLevelMin/Max. Nested plugin sub-objects (pluginSettings, audioLinkSettingsOverride) are NOT authored here.

Returns: { attenuation_path: string, asset_class: string, settings: object, applied_keys: [string], saved: bool }

set_sound_class_parent

Destructive, idempotent.

Make one USoundClass the child of another, wiring ParentClass and ChildClasses, and save both packages. A previous parent loses the child in memory but is not saved; only self-parenting is refused, not cycles. Returns child_count, saved_parent and saved_child, succeeding even when a save fails.

Parameter Type Required Description
child_sound_class_path string yes Asset path of the USoundClass to re-parent, e.g. "/Game/Audio/SC_Footsteps.SC_Footsteps".
parent_sound_class_path string yes Asset path of the USoundClass that becomes its parent, e.g. "/Game/Audio/SC_SFX.SC_SFX".

Returns: { child: string, parent: string, child_path: string, parent_path: string, child_count: int, saved_parent: bool, saved_child: bool }

set_sound_class_properties

Destructive, idempotent.

Write the given FSoundClassProperties fields of a USoundClass asset (volume, pitch, filters, routing and loading flags) in one undoable transaction, then save it. Only fields you pass change; values are not range-checked and unknown enum names are skipped. Returns every current value plus applied_<field> flags and saved.

Parameter Type Required Description
sound_class_path string yes Content path of the USoundClass asset.
volume number no Volume multiplier for sounds of this class (Properties.Volume), e.g. 0.5 for half
pitch number no Pitch multiplier for sounds of this class (Properties.Pitch), e.g. 1.2
low_pass_frequency number no Low-pass filter cutoff frequency in Hz (Properties.LowPassFilterFrequency)
attenuation_distance_scale number no Scale on the distance used for attenuation (Properties.AttenuationDistanceScale): 0.5 attenuates a sound 1000 units away as if it were 500 away
lfe_bleed number no Amount of the sound sent to the LFE (subwoofer) channel (Properties.LFEBleed)
voice_center_channel_volume number no Amount sent to the center channel (Properties.VoiceCenterChannelVolume); does not propagate to child classes
radio_filter_volume number no Volume of the legacy radio filter effect (Properties.RadioFilterVolume)
radio_filter_volume_threshold number no Volume at which the legacy radio filter kicks in (Properties.RadioFilterVolumeThreshold)
default_2d_reverb_send_amount number no Reverb send amount for unattenuated (2D) sounds of this class (Properties.Default2DReverbSendAmount)
apply_effects boolean no Bool for Properties.bApplyEffects (Output to Master EQ Submix): route referencing sounds to the Master EQ submix
always_play boolean no Bool for Properties.bAlwaysPlay: inflate the priority of referencing sounds so they always play
is_ui_sound boolean no Bool for Properties.bIsUISound: sounds of this class keep playing while the game is paused in the UI
is_music boolean no Bool for Properties.bIsMusic: mark the class as music (propagates to child classes only when the parent is true)
center_channel_only boolean no Bool for Properties.bCenterChannelOnly: force sounds of this class to the center channel
apply_ambient_volumes boolean no Bool for Properties.bApplyAmbientVolumes: apply the Interior/Exterior volume and low-pass modifiers
reverb boolean no Bool for Properties.bReverb (Send to Master Reverb Submix): send referencing sounds to the reverb submix
output_target string no Properties.OutputTarget enum name (Speaker|Controller|ControllerFallbackToSpeaker); case-insensitive, ignored if unrecognized.
loading_behavior string no Properties.LoadingBehavior enum name (Inherited|RetainOnLoad|PrimeOnLoad|LoadOnDemand|ForceInline); case-insensitive, ignored if unrecognized.

Returns: { sound_class_path: string, success: bool, volume: float, pitch: float, low_pass_frequency: float, attenuation_distance_scale: float, lfe_bleed: float, voice_center_channel_volume: float, radio_filter_volume: float, radio_filter_volume_threshold: float, default_2d_reverb_send_amount: float, apply_effects: bool, always_play: bool, is_ui_sound: bool, is_music: bool, center_channel_only: bool, apply_ambient_volumes: bool, reverb: bool, output_target: string, loading_behavior: string, applied_volume: bool, applied_pitch: bool, applied_low_pass_frequency: bool, applied_attenuation_distance_scale: bool, applied_lfe_bleed: bool, applied_voice_center_channel_volume: bool, applied_radio_filter_volume: bool, applied_radio_filter_volume_threshold: bool, applied_default_2d_reverb_send_amount: bool, applied_apply_effects: bool, applied_always_play: bool, applied_is_ui_sound: bool, applied_is_music: bool, applied_center_channel_only: bool, applied_apply_ambient_volumes: bool, applied_reverb: bool, applied_output_target: bool, applied_loading_behavior: bool, saved: bool }

set_sound_concurrency_properties

Destructive, idempotent.

Author FSoundConcurrencySettings on a USoundConcurrency via reflection (partial merge + clamp).

Parameter Type Required Description
concurrency_path string yes Full content path of the target USoundConcurrency.
settings object yes Object of FSoundConcurrencySettings fields to merge (maxCount(int>=1), bLimitToOwner(bool), resolutionRule(enum name), retriggerTime, volumeScale(0..1), volumeScaleMode(enum), bVolumeScaleCanRelease, volumeScaleAttackTime, volumeScaleReleaseTime, voiceStealReleaseTime); absent keys untouched.

Returns: { concurrency_path: string, asset_class: string, settings: object, applied_keys: [string], saved: bool }

set_sound_cue_first_node

Destructive, idempotent.

Make the node at node_id the root (FirstNode, the output) of a USoundCue graph, undoably, and save the asset. Returns first_node_class, first_node_set and saved; an out-of-range node_id is an error. Get node ids from add_sound_cue_node or get_sound_cue_graph.

Parameter Type Required Description
cue_path string yes Full asset path of the cue
node_id number yes node_id (index in the cue AllNodes array) to use as the root of the cue graph

Returns: { cue_path: string, node_id: int, first_node_class: string, first_node_set: bool, saved: bool }

set_sound_cue_node_properties

Destructive, idempotent.

Set the EditAnywhere properties of a Sound Cue node (located by node_id) via reflection. The writer twin of get_sound_cue_graph, which reads them. Partial update (idempotent): only keys present in properties are written, and only editable (CPF_Edit) props are touched (ChildNodes/graph wiring are unreachable here — use connect_sound_cue_nodes). Keys are the camelCase UPROPERTY names, the same ones get_sound_cue_graph reports under each node's properties (e.g. a Modulator: pitchMin/pitchMax/volumeMin/volumeMax; a Delay: delayMin/delayMax).

Parameter Type Required Description
cue_path string yes Full asset path of the cue, e.g. /Game/SoundCues/SC_Foo
node_id number yes node_id (index in AllNodes) from add_sound_cue_node / get_sound_cue_graph.
properties object yes Object of {camelCaseName: value} to apply to the node.

Returns: { cue_path: string, node_id: int, node_class: string, applied_keys: [string], saved: bool }

set_sound_mix_class_override

Destructive, idempotent.

Sets a sound class adjuster override in a USoundMix. Loads the USoundMix and USoundClass, adds or updates an FSoundClassAdjuster in the mix's SoundClassEffects array, then saves.

Parameter Type Required Description
sound_mix_path string yes Content path of the USoundMix asset.
sound_class_path string yes Content path of the USoundClass to adjust.
volume_adjuster number no Adjuster.VolumeAdjuster (default 1.0).
pitch_adjuster number no Adjuster.PitchAdjuster (default 1.0).
apply_to_children boolean no Adjuster.bApplyToChildren (default false).

Returns: { sound_mix_path: string, sound_class_path: string, success: bool, volume_adjuster: float, pitch_adjuster: float, apply_to_children: bool, total_adjusters: int, saved: bool }

set_sound_source_bus_audio_bus

Destructive, idempotent.

Point the AudioBus output of a USoundSourceBus asset at a UAudioBus, or clear it when audio_bus_path is empty or omitted, then save; success requires the save. Returns audio_bus_path and audio_bus_class read back, plus cleared. A bus path that does not load is an error, not a clear.

Parameter Type Required Description
ssb_path string yes Asset path of the USoundSourceBus, e.g. "/Game/Audio/SSB_Radio".
audio_bus_path string no Asset path of the UAudioBus to assign, e.g. "/Game/Audio/AB_Music"; "" or omitted clears the assignment.

Returns: { ssb_path: string, audio_bus_path: string, audio_bus_class: string, cleared: bool, saved: bool }

set_sound_source_bus_send_info

Destructive, idempotent.

Author a single FSoundSourceBusSendInfo entry on USoundBase::BusSends via reflection (partial merge + clamp).

Parameter Type Required Description
ssb_path string yes Full content path of the target USoundSourceBus (USoundBase.BusSends is the target array; USoundSourceBus inherits it unchanged).
send_index number yes 0-based index into BusSends; the entry is REPLACED in place. If out of range, the entry is appended (resize+append).
send_info object yes Object of FSoundSourceBusSendInfo fields to merge (sourceBusSendLevelControlMethod(Linear|CustomCurve|Manual), soundSourceBus(path), audioBus(path), sendLevel(Manual), minSendLevel/maxSendLevel(Linear), minSendDistance/maxSendDistance(Linear), customSendLevelCurve(object), bEnableLPFCutoff(bool), lPFCutoff(20..20000Hz), bEnableHPFCutoff(bool), hPFCutoff(20..20000Hz)).

Returns: { ssb_path: string, send_index: int, bus_sends_count: int, send_info: object, applied_keys: [string], saved: bool }

set_sound_source_bus_send_level_curve

Destructive, idempotent.

Merge a FRuntimeFloatCurve JSON into BusSends[send_index].CustomSendLevelCurve of a USoundSourceBus asset (BusSends grows with default entries past its end) and save it; success requires the save. Returns the curve read back. The curve only takes effect when that send uses the CustomCurve control method: see set_sound_source_bus_send_info.

Parameter Type Required Description
ssb_path string yes Full content path of the target USoundSourceBus (USoundBase.BusSends is the target array).
send_index number yes 0-based index into BusSends; the entry is mutated in place. Resized/extended with default-constructed entries if out of range.
distance_curve object yes FRuntimeFloatCurve fields by their UPROPERTY names, e.g. {"EditorCurveData": {"Keys": [{"Time": 0.0, "Value": 1.0}, {"Time": 1.0, "Value": 0.0}]}}; Time 0-1 maps to MinSendDistance-MaxSendDistance and Keys replaces the key list. Fields left out keep their current values; unknown keys are ignored without error.

Returns: { ssb_path: string, send_index: int, bus_sends_count: int, distance_curve: object, applied_keys: [string], saved: bool }

set_sound_wave_properties

Destructive, idempotent.

Author USoundWave tunables on an imported sound wave via reflection (partial merge + clamp).

Parameter Type Required Description
sound_wave_path string yes Full content path of the target USoundWave (e.g. /Game/Audio/MySound).
settings object no Object of USoundWave/USoundBase UPROPERTY fields to merge; absent keys untouched. e.g. CompressionQuality(1..100), SampleRateQuality(Max/High/Medium/Low/Min), SoundGroup(SOUNDGROUP_Default/SOUNDGROUP_Effects/SOUNDGROUP_UI/SOUNDGROUP_Music/SOUNDGROUP_Voice), SoundAssetCompressionType(BinkAudio/ADPCM/PCM/Opus/PlatformSpecific/ProjectDefined), Volume(>=0), Pitch(0.125..4.0), Priority(0..100), VirtualizationMode(Disabled/PlayWhenSilent/Restart/SeekRestart), SoundClassObject(asset path), AttenuationSettings(asset path). Do NOT put bLooping here — use the looping param.
looping boolean no Optional bool; sets the bLooping bitfield directly (when this sound is played directly, not via a cue).

Returns: { sound_wave_path: string, asset_class: string, settings: object, applied_keys: [string], applied_looping: bool, looping: bool, saved: bool }

set_soundfield_effect_settings

Destructive, idempotent.

Cannot write soundfield effect settings in this engine version, so every call fails and nothing is changed: USoundfieldEffectBase::GetSettingsClass is protected, so the settings class an effect needs cannot be found. The submix and the effect slot are still checked first (a missing submix or an out-of-range effect_index gets its own error); a valid slot fails with applied_count 0 and a note.

Parameter Type Required Description
submix_path string yes Full path to the USoundfieldSubmix (required).
effect_index number yes Zero-based index into SoundfieldEffectChain (required).
settings object yes JSON object {property_name: value, ...}; validated as an object but never written

Returns: { success: false, error, data: { submix_path, effect_index, settings_class, applied_count, applied_fields, saved, note } }

set_submix_effect_settings

Destructive, idempotent.

Configure a submix effect preset's Settings struct (by chain index) via reflection (partial merge + clamp).

Parameter Type Required Description
submix_path string yes Full content path of the target USoundSubmix
effect_index number yes 0-based index into SubmixEffectChain (same order add_submix_effect_to_chain appended / get_submix_effect_chain reports)
settings object yes Object of fields to merge into the preset's Settings struct; absent keys untouched

Returns: { submix_path: string, effect_index: int, preset_class: string, settings: object, saved: bool }

set_subtitle_cue_text

Destructive, idempotent.

Sets the text on an existing subtitle cue. Loads the USubtitleAssetUserData, verifies cue_index is in range, sets Subtitles[cue_index].Text, and saves.

Parameter Type Required Description
asset_path string yes Content path of the USubtitleAssetUserData asset.
cue_index number yes Zero-based index into the Subtitles array (required).
text string yes New subtitle text (required).

Returns: { asset_path: string, cue_index: int, text: string, success: bool, saved: bool }

set_subtitle_cue_timing

Destructive, idempotent.

Updates the timing fields on an existing subtitle cue. Loads the USubtitleAssetUserData, applies any combination of start_offset / duration / duration_type to Subtitles[cue_index], and saves. Fields not provided are left untouched.

Parameter Type Required Description
asset_path string yes Content path of the USubtitleAssetUserData asset.
cue_index number yes Zero-based index into the Subtitles array (required).
start_offset number no Optional new StartOffset (seconds).
duration number no Optional new Duration (seconds).
duration_type string no Optional new SubtitleDurationType ("use_sound_duration" or "use_duration_property").

Returns: { asset_path: string, cue_index: int, success: bool, applied_start_offset: bool, applied_duration: bool, applied_duration_type: bool, start_offset: float, duration: float, duration_type: string, saved: bool }

stop_sound

Destructive.

Stop playback on an audio component of the editor world (UAudioComponent::Stop), matched by object name against the first audio component of each actor; components in a running PIE world are not reached. Returns was_playing and playing; success is always true. Start playback with play_sound.

Parameter Type Required Description
audio_component_name string yes Object name of the audio component to stop (e.g. "AudioComponent0"), compared without case; only the first audio component of each actor is searched.

Returns: { audio_component_name: string, playing: bool, was_playing: bool, success: bool }