Character Action Node
Overview
The Malbers Character Action Node triggers a Malbers Animal Controller State or Mode on any MAnimal character during a dialogue sequence. It can control the player, an NPC, or any other character in the scene via a TransformVar reference. Optionally, the dialogue graph can be paused until the action completes before advancing.
The node's title updates dynamically to reflect the currently selected action, displaying as [State] StateName or [Mode] ModeName.

Ports
Previous
Input
Multi
Receives connections from any preceding node.
Next
Output
Single
Advances after the action executes (immediately, or once the action completes if Wait for Completion is enabled).
Node Properties
The following properties are always visible regardless of action type:
Character Target
TransformVar
Malbers TransformVar pointing to the character's GameObject. Must have an MAnimal component.
Action Type
Dropdown
Selects whether to trigger a State or a Mode. Controls which fields appear below.
Wait for Completion
bool
If enabled, the dialogue graph pauses until the triggered state or mode has fully exited before advancing.
Action Type: State
Triggers a Malbers State on the target MAnimal. States control locomotion modes such as Idle, Run, Swim, Fly, etc.
State ID
StateID
The Malbers StateID ScriptableObject asset identifying which state to interact with.
State Reaction
Dropdown
How to interact with the state. See options below.
Enter Status
int
Sets the animator EnterStatus parameter on activation. Only visible for Activate and ForceActivate.
State Reaction Options
Activate
Requests the state to activate. The animal may transition when conditions allow.
ForceActivate
Forces the state to activate immediately, overriding current state.
Enable
Enables the state so it can be entered normally.
Disable
Disables the state, preventing it from being entered.
AllowExit
Signals the current state that it is allowed to exit.
SetExitStatus
Sets the state's exit status parameter without changing the active state.
Action Type: Mode
Triggers a Malbers Mode on the target MAnimal. Modes are overlay animations that play on top of the base locomotion — attacks, greetings, gestures, etc.
Mode ID
ModeID
The Malbers ModeID ScriptableObject asset identifying which mode to interact with.
Mode Reaction
Dropdown
How to interact with the mode. See options below.
Ability Index
int
Which ability within the mode to activate. Use -99 for a random ability. Only visible for Play and ForceActivate.
Ability Status
Dropdown
Controls how long the ability stays active. Only visible for Play and ForceActivate.
Ability Time
float
Duration in seconds the ability remains active. Only visible when Ability Status is ActiveByTime.
Mode Reaction Options
Play
Requests the mode to activate. May be queued if another mode is already playing.
ForceActivate
Forces the mode to activate immediately, interrupting any active mode.
Interrupt
Interrupts the currently active mode.
Stop
Stops the currently active mode.
Enable
Enables the mode so it can be activated.
Disable
Disables the mode, preventing activation.
SetActiveIndex
Changes the mode's active ability index without re-triggering it.
Ability Status Options
PlayOnce
The ability plays its animation once and exits automatically.
Charged
The ability remains active while held and exits on release.
ActiveByTime
The ability stays active for the duration set in Ability Time, then exits.
How It Works
At runtime, DialogueManager resolves the CharacterTarget.Value Transform and attempts to get the MAnimal component from it. If no MAnimal is found, the node logs a warning and advances immediately without executing any action.
If MAnimal is found:
The appropriate state or mode method is called on
MAnimalbased on the configured State Reaction or Mode Reaction.If Wait for Completion is disabled — the graph advances to the next node immediately.
If Wait for Completion is enabled — a coroutine polls each frame:
State: waits until
MAnimal.ActiveStateIDis no longer the state that was activated.Mode: waits until
MAnimal.ActiveModeisnullor a different mode.Two frames are skipped at the start to allow the action to actually begin before polling starts.
Validation
Character Target not assigned
Error
Output port not connected
Error
State ID not assigned (State mode)
Warning
Mode ID not assigned (Mode mode)
Warning
Usage Tips
NPC greetings — trigger a wave or bow Mode on an NPC at the start of a conversation, with Wait for Completion enabled so the first dialogue line doesn't appear until the animation finishes.
Player lockout — activate a custom State on the player (e.g. a sit or kneel state) to pin them in place during a cutscene, then deactivate it with a second Character Action Node at the end.
Wait for Completion + State — keep in mind the node waits for the state to exit, not just to start. If the state loops indefinitely, the graph will block until another system forces a state change. Design states used this way to have a natural exit.
Ability Index -99 — passing
-99as the ability index selects a random ability within the mode, which is useful for varied idle animations or randomised reactions.Character Target is a TransformVar — this must be a Malbers
TransformVarScriptableObject, not a direct scene reference. Populate it at runtime usingQuestForgeRuntimeSetup(for the player) or any other component that writes to shared variable assets (for NPCs).
Last updated