SoulFire TypeScript SDK 2.10.3
    Preparing search index...

    Type Alias NodeTypeDefinition

    NodeTypeDefinition: Message<"soulfire.v1.NodeTypeDefinition"> & {
        category: string;
        color: string;
        deprecated: boolean;
        deprecationMessage: string;
        description: string;
        displayName: string;
        icon: string;
        inputs: PortDefinition[];
        isExpensive: boolean;
        isLayoutNode: boolean;
        isTrigger: boolean;
        keywords: string[];
        outputs: PortDefinition[];
        supportsMuting: boolean;
        supportsPreview: boolean;
        type: string;
    }

    Complete definition of a node type. Contains all metadata needed to render the node in an editor and validate its connections without hardcoded client knowledge.

    Type Declaration

    • category: string

      Category ID for organizing nodes in the palette. References CategoryDefinition.id from GetNodeTypesResponse. Examples: "triggers", "actions", "math", "logic", "flow".

      from field: string category = 4;

    • color: string

      Optional color hint for the node (hex color code). Used for visual distinction between node categories.

      from field: string color = 9;

    • deprecated: boolean

      Whether this node is deprecated and should be avoided.

      from field: bool deprecated = 11;

    • deprecationMessage: string

      If deprecated, message explaining what to use instead.

      from field: string deprecation_message = 12;

    • description: string

      Description of what this node does. Displayed in tooltips and node palettes.

      from field: string description = 3;

    • displayName: string

      Human-readable name displayed in the UI. Examples: "On Tick", "Pathfind To", "Add".

      from field: string display_name = 2;

    • icon: string

      Optional icon identifier for rendering. Can be an icon name or emoji.

      from field: string icon = 8;

    • inputs: PortDefinition[]

      The input ports for this node type. Includes both data inputs and execution inputs.

      from field: repeated soulfire.v1.PortDefinition inputs = 6;

    • isExpensive: boolean

      Whether this node is expensive (slow, may block). Used for visual warnings in tick-path analysis.

      from field: bool is_expensive = 16;

    • isLayoutNode: boolean

      Whether this is a layout node (reroute, frame, etc.). Layout nodes have special minimal rendering and don't execute logic.

      from field: bool is_layout_node = 13;

    • isTrigger: boolean

      Whether this is a trigger node (entry point for execution). Trigger nodes have no execution input and start script flows.

      from field: bool is_trigger = 5;

    • keywords: string[]

      Keywords for searching/filtering nodes in the palette.

      from field: repeated string keywords = 10;

    • outputs: PortDefinition[]

      The output ports for this node type. Includes both data outputs and execution outputs.

      from field: repeated soulfire.v1.PortDefinition outputs = 7;

    • supportsMuting: boolean

      Whether this node can be muted (bypassed during execution). When muted, inputs pass through to outputs unchanged.

      from field: bool supports_muting = 14;

    • supportsPreview: boolean

      Whether this node supports inline preview of its output.

      from field: bool supports_preview = 15;

    • type: string

      The unique type identifier for this node. Examples: "trigger.on_tick", "action.pathfind", "math.add".

      from field: string type = 1;

    from message soulfire.v1.NodeTypeDefinition