Skip to main content

Action Node

Overview

Action Nodes represent executable operations in the graph system. They are responsible for performing concrete actions such as applying damage, modifying Attribute, adding OverTimeEffect, triggering events, or writing data changes during combat execution.

When an Action Node is evaluated, it executes its logic immediately based on the current execution context and input data.


Purpose

Action Nodes are used to:

  • Apply gameplay effects (damage, healing, buffs, debuffs)

  • Modify Entity or backend data

  • Trigger combat-related behaviors

  • Produce the final outcome of a graph execution

They are the core nodes that produce results, rather than controlling flow or evaluating conditions.


Execution Behavior

  • Action Nodes are executed when reached during graph evaluation.

  • They operate purely on backend data and do not require Entity instances.

  • Results are written directly to the combat data context.

  • Visual or presentation updates are handled separately by the Entity layer.


Port Connection Rules

Input Ports

  • Default Input Port

    • Can connect from a Root Node
    • Can connect from a Branch Node
  • Additional Input Ports (Availability depends on the specific Action Node implementation)

These input ports provide the data required for the Action Node to execute its logic.


Output Ports

  • None Action Nodes do not expose output ports and represent the terminal step of an execution path.

Common Use Cases

Action Nodes are usually placed at the end of an execution branch, following flow-control or condition nodes.


Design Philosophy

Action Nodes are intentionally stateless and data-driven.

This design makes them:

  • Easy to reuse across different graphs

  • Safe to evaluate multiple times

  • Suitable for simulation, preview, and backend-only execution


Summary

  • Action Nodes execute logic

  • They do not control flow

  • They do not produce outputs

  • They finalize execution paths