public INodeModel CreateStackedNode(Type nodeTypeToCreate, string nodeName = "", int index = -1, SpawnFlags spawnFlags = SpawnFlags.Default, Action <NodeModel> preDefineSetup = null, GUID?guid = null) { SpawnFlags createNodeFlags = (spawnFlags & SpawnFlags.CreateNodeAsset) | SpawnFlags.Orphan; // we don't want to CreateNode to add the node to the graph nor to register undo var graphModel = (GraphModel)GraphModel; NodeModel nodeModel = (NodeModel)graphModel.CreateNodeInternal(nodeTypeToCreate, nodeName, Vector2.zero, createNodeFlags, preDefineSetup, guid); graphModel.RegisterNodeGuid(nodeModel); if (!spawnFlags.IsOrphan()) { if (spawnFlags.IsUndoable()) { AddStackedNode(nodeModel, index); AssetModel.SetAssetDirty(); } else { AddStackedNode(nodeModel, index); } } nodeModel.DefineNode(); return(nodeModel); }