Components documentation and instanced definition.

The confusion may be coming from different software packages using the term “instance” differently. This use of the term is more like the standard English definition, “an example or single occurrence of something.” In other words, if you have three AActors in your level, that would be three instances of the AActor class. What is being said about tires on cars is that each car actor has four instances of the wheel component. This would mean that three cars have a combined total of twelve wheels. Modifying any one instance, say, by getting a flat tire, would only affect that one specific tire (i.e. that one instance).

You also mentioned some confusion about the CDO, or Class Default Object, so let’s go over that briefly. UE4 creates one “master copy” of each registered class (UCLASS). When you want to create a blueprint from that class, the blueprint’s default property values are copied from the CDO. That’s also how UE4 knows when you’ve changed something and provides the yellow “reset to default” button. Similarly, when you instantiate a class, such as by spawning an actor, UE4 does it by making a copy of the CDO and then updating some of the properties of the new object. What was said about components attached to the CDO was meant to indicate that components are stored by pointer. This is one of the reasons why the properties are updated after the copy is made instead of just making the copy byte-for-byte and leaving it at that. If UE4 just copied the CDO byte-for-byte, then every car in existence would be pointing to the same four wheels. So if Car #1 tried to spin its front driver-side wheel, it would work, but that wheel also happens to be the same one that Car #2 thinks is its front driver-side wheel. So when a new actor is spawned, its components are copied, and the component pointers on the new actor are fixed to point to the new instances of that component. I hope that helps to clear up what was meant. The really key point is that an instance of a class is a completely separate object unto itself from all other instances. The thing these instances have in common is that they were made from the same mold. They’re clones of each other in that sense, but what happens to one clone doesn’t happen to another.