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 }