Skip to main content

Components

An Actor by itself is an empty shell — it exists in the world but doesn't do anything. Components are the LEGO pieces you snap onto an Actor to give it shape, behavior, and personality.

Want your Actor to have a 3D model? Attach a StaticMeshComponent. Need it to play sounds? Add an AudioComponent. Want it to collide with things? Slap on a CollisionComponent.

Common Component Types

ComponentWhat it does
StaticMeshComponentGives the Actor a visible 3D model
SkeletalMeshComponentA 3D model with a skeleton for animation
BoxCollisionComponentSimple box-shaped collision detection
SphereCollisionComponentSpherical collision detection
AudioComponentPlays sounds in 3D space
PointLightComponentEmits light from a single point
CameraComponentAdds a camera viewpoint
CharacterMovementComponentHandles walking, jumping, falling, swimming

Adding Components

In HELIX Studio, you can add components visually in the Blueprint editor's Components panel — hit Add and pick what you need. You can also add them at runtime through code:

// In Blueprints, use "Add Component" nodes
// Or in the Components panel of the Blueprint editor, click "+ Add"

// C++ equivalent:
UStaticMeshComponent* MeshComp = CreateDefaultSubobject<UStaticMeshComponent>(
TEXT("MyMesh")
);
MeshComp->SetupAttachment(RootComponent);

The Component Hierarchy

Components form a tree. Every Actor has a Root Component at the top, and other components attach underneath it. When the root moves, everything attached moves with it — like a puppet on strings.

MyCharacter (Actor)
├── CapsuleComponent (Root)
│ ├── SkeletalMeshComponent
│ │ └── AudioComponent
│ └── CameraComponent
└── CharacterMovementComponent

Building Blocks, Not Monoliths

The beauty of components is reusability. Instead of creating a totally new Actor class for every object, you mix and match components. A treasure chest and a mailbox might share the same InteractableComponent — different look, same open/close behavior. Build small, compose big.

tip

If you find yourself copying logic between Actor classes, that logic probably belongs in a shared component instead.