Reactions2 Node

Overview

The Reactions2 Node applies a Malbers MReactions2Var asset to a target character or object during a dialogue sequence, then immediately advances to the next node. It is a fire-and-forget node — the reaction is triggered and the graph continues without waiting for it to complete.

MReactions2Var is a Malbers ScriptableObject that bundles one or more Reactions2 entries — a composable, data-driven system for applying complex state changes to any component on a GameObject (setting animator parameters, enabling components, modifying stats, playing particles, and more) without requiring custom code.

The node's title updates automatically to display the name of the assigned reactions asset.


Ports

Port
Direction
Capacity
Description

Previous

Input

Multi

Receives connections from any preceding node.

Next

Output

Single

Advances to the next node immediately after the reaction is applied.


Node Properties

Property
Type
Description

Character Target

TransformVar

Malbers TransformVar pointing to the GameObject the reactions will be applied to. Can target any GameObject — not limited to characters with MAnimal.

Reactions Asset

MReactions2Var

The Malbers MReactions2Var ScriptableObject containing the reaction data to apply.


How It Works

At runtime, DialogueManager resolves both the TransformVar target and the MReactions2Var asset. If either is null or the target's runtime value is null, a warning is logged and the graph advances without applying anything.

If both are valid, MReactions2Var.React(targetTransform) is called — passing the resolved Transform as the target. The Reactions2 system then applies all bundled reaction entries to the appropriate components on that GameObject. The graph immediately calls AdvanceToNextNode() after the call returns, without waiting for any animations or transitions triggered by the reaction to complete.


Validation

Condition
Severity

Character Target not assigned

Error

Reactions Asset not assigned

Error

Next output port not connected

Error


Usage Tips

  • Compared to Malbers Event Node — the MEvent node fires a global broadcast to all listeners across the scene. The Reactions2 node targets a specific GameObject directly. Use Reactions2 when you know exactly which object should change, and MEvent when you need to notify multiple unrelated listeners.

  • Compared to Character Action Node — the Character Action Node is scoped to MAnimal States and Modes. Reactions2 can target any component on any GameObject — including non-character objects like doors, lights, or props — making it more general-purpose.

  • No wait support — like the Malbers Event Node, this node does not support waiting for the reaction to complete. If the reaction triggers an animation and you need to wait for it to finish, follow this node with a Wait Node set to an appropriate duration.

  • Target is a TransformVar — the target must be a Malbers TransformVar ScriptableObject, not a direct scene reference. Populate it at runtime using QuestForgeRuntimeSetup for the player, or any component that writes to shared variable assets for NPCs or world objects.

  • Reactions Asset must match the target — the entries inside MReactions2Var reference specific component types. Ensure the reactions defined in the asset are compatible with the components present on the target GameObject, or individual reaction entries will silently fail to apply.

Last updated