Explaining components initialization functions flow..

Without a CDO there is no way for the engine to create instances of the Class.
Your C++ Class is precompiled into that generated Class, then spawned instances are copies of it.
When you package a game, your C++ code doesn’t exist anymore; so a precompiled CDO is needed for each Class where instances will copy default values from.

Epic added to Blueprints that special graph that executes when new class instance spawned (trying to emulate C++ Class Constructor).

Internally Unreal executes a call to that graph once “SpawnActor” routine was successful for that instance;
Behind the scenes that graph is a Function Graph. Function Graphs are Objects auto generated and attached to your Blueprint Class that don’t really exist in the C++ version of your Class… So you can add functions to Blueprints using the Blueprint Editor while your C++ Class has no idea at all that such function exist on the Generated Class (Blueprint Object).

1 Like