InworldNodeAsset | Inherits from: ScriptableObject
Base ScriptableObject that represents a node within graph workflows in the Inworld framework. This asset can be created through Unity’s Create menu and used to define processing nodes in conversation flows. Used for implementing various AI processing operations, data transformations, and workflow logic in conversation systems.
Documentation for other node types will only mention how their underlying runtime implementation works, as they mostly only implement methods from this base class.
The built-in nodes that involve calling the C++ library inherit from this class. The SubGraphNode which can hold a reference to a graph asset also inherits from this class.

Properties
- Runtime
- IsValid
- NodeName
- NodeTypeName
- BackgroundColor
- EditorPosition
- IsLeaf
- Parents
- Children
- Edges
- ComponentID
- ComponentData
- CreationConfigData
- ExecutionConfigData
Methods
Reference
Runtime
Gets or sets the runtime node instance. Provides access to the active processing logic during execution.Returns
Type:InworldNode
IsValid
Gets whether this node has been successfully validated and is ready for execution. Indicates the current state of node initialization and configuration.Returns
Type:bool
NodeName
Gets or sets the display name of this node. Provides the identifier used for debugging and graph visualization.Returns
Type:string
NodeTypeName
Gets the type name of this node. Returns the default node type, can be overridden in derived classes.Returns
Type:string
BackgroundColor
Gets or sets the background color for this node in the graph editor. Used for visual representation and differentiation.Returns
Type:Color
EditorPosition
Gets or sets the position displayed on the graph editor. Stores the visual layout coordinates for the node.Returns
Type:Vector2
IsLeaf
Gets whether this node is a leaf node (has no children). Indicates if this node is an endpoint in the graph flow.Returns
Type:bool
Parents
Gets the list of parent nodes that provide input to this node. Provides access to the incoming connections in the graph flow.Returns
Type:List<InworldNodeAsset>
Children
Gets the list of child nodes that receive output from this node. Provides access to the outgoing connections in the graph flow.Returns
Type:List<InworldNodeAsset>
Edges
Gets the dictionary mapping child nodes to their connecting edges. Provides access to the edge relationships for data flow and condition checking.Returns
Type:Dictionary<InworldNodeAsset, InworldEdgeAsset>
ComponentID
Gets the component ID for this node. Returns the component ID if available, otherwise returns the node name.Returns
Type:string
ComponentData
Gets the component data structure for this node. Creates a ComponentData object with the current node name and type.Returns
Type:ComponentData
CreationConfigData
Gets the creation configuration data for this node. Virtual property that should be implemented in derived classes.Returns
Type:ConfigData
ExecutionConfigData
Gets the execution configuration data for this node. Virtual property that should be implemented in derived classes.Returns
Type:ConfigData
GetEdge
Retrieves the edge asset connecting this node to the specified child node.Parameters
| Parameter | Type | Description |
|---|---|---|
| childNode | InworldNodeAsset | The child node to find the connecting edge for |
Returns
Type:InworldEdgeAsset - The edge asset connecting to the child node, or null if no connection exists
GetNodeCreationConfig
Virtual method for providing node creation configuration. Override this method in derived classes to specify node-specific configuration.Returns
Type:NodeCreationConfig - The configuration object for creating this node
GetNodeExecutionConfig
Virtual method for providing node execution configuration. Override this method in derived classes to specify node-specific execution settings.Returns
Type:NodeExecutionConfig - The configuration object for executing this node
CreateRuntime
Virtual method for creating the runtime representation of this node. Override this method in derived classes to implement node-specific runtime creation logic.Parameters
| Parameter | Type | Description |
|---|---|---|
| graphAsset | InworldGraphAsset | The graph asset that will contain this node |
Returns
Type:bool - True if runtime creation succeeded; otherwise, false
RegisterJson
Virtual method for registering this node with JSON-based graph execution. Override this method in derived classes to implement JSON registration logic.Parameters
| Parameter | Type | Description |
|---|---|---|
| graphAsset | InworldGraphAsset | The graph asset for JSON registration |
Returns
Type:bool - True if registration succeeded; otherwise, false
Serialized Fields
The following fields are configurable in the Unity Inspector:- m_Component (
InworldComponentAsset) - The component asset associated with this node - m_NodeName (
string) - The display name for this node (default: “New Node”) - m_CreationConfigAsset (
CreationConfigAsset) - Creation configuration asset (hidden in inspector) - m_InputTypes (
List<string>) - Accepted input data types (hidden in inspector) - m_OutputType (
string) - Output data type produced by this node (hidden in inspector) - m_BackgroundColor (
Color) - Background color for graph editor (hidden in inspector) - m_EditorPosition (
Vector2) - Position in graph editor (hidden in inspector) - m_Graph (
InworldGraphAsset) - The graph asset that contains this node - m_ParentNodes (
List<InworldNodeAsset>) - Parent nodes providing input - m_ChildrenNodes (
List<InworldNodeAsset>) - Child nodes receiving output - m_Edges (
Dictionary<InworldNodeAsset, InworldEdgeAsset>) - Edge relationships