Audio Node

Overview

The Audio Node controls audio playback during a dialogue sequence. It can play, stop, or pause an AudioClip on a specified target object, then immediately advances to the next node without waiting. It is a fire-and-forget node — dialogue flow continues the moment the audio action is issued.


Ports

Port
Direction
Capacity
Description

Previous

Input

Multi

Receives connections from any preceding node.

Next

Output

Single

Continues to the next node immediately after the audio action executes.


Node Properties

Property
Type
Description

Action Type

Dropdown

The audio operation to perform. See options below.

Audio Clip

AudioClip

The clip to play. Only visible when Action Type is Play.

Target Object

GameObjectVar

A Malbers ScriptableObject variable pointing to the GameObject that owns (or will receive) the AudioSource. Optional — falls back to the DialogueManager GameObject if not set.

Action Type Options

Option
Behaviour

Play

Assigns the Audio Clip to the target's AudioSource and calls Play().

Stop

Calls Stop() on the target's AudioSource.

Pause

Calls Pause() on the target's AudioSource.


How It Works

At runtime, DialogueManager resolves the audio target in the following order:

  1. Target Object set — retrieves the AudioSource component from that GameObjectVar's referenced GameObject. If no AudioSource exists on it, one is added automatically.

  2. Target Object not set — falls back to the DialogueManager's own GameObject. Again, an AudioSource is added automatically if one is not present.

Once the AudioSource is resolved, the selected action (Play, Stop, or Pause) is executed and the node immediately calls AdvanceToNextNode(). The dialogue does not wait for the clip to finish playing.


Validation

Condition
Severity

Next output port is not connected

Error

No validation is performed for a missing Audio Clip when Action Type is Play — this is caught at runtime with a warning log and the node is skipped.


Usage Tips

  • Ambient music or stingers — use a Play node at the start of a dialogue branch to trigger mood music, and a Stop node before the End Node to close it out cleanly.

  • Looping audio — if the clip is set to loop on the AudioSource, remember to add a Stop node somewhere before dialogue ends, otherwise the audio will continue playing after the conversation closes.

  • Dialogue is not blocked — because the node advances immediately, do not use it expecting the clip to finish before the next node runs. If you need the dialogue to wait for audio, combine the Audio Node with a Wait Node set to the approximate clip duration placed immediately after it.

  • Target Object is a GameObjectVar — this must be a Malbers GameObjectVar ScriptableObject asset, not a direct scene reference. Populate it at runtime using QuestForgeRuntimeSetup or any other component that writes to shared variable assets.

Last updated