RealDocs

UActorComponent

class Engine Blueprint Since 1.0
#include "Components/ActorComponent.h"
Access: public Specifiers: UCLASS

Description

The base class for all actor components. Components are reusable pieces of functionality that can be attached to actors. UActorComponent is the lightest component type — it has no transform. Use USceneComponent for components that need world location/rotation.

Caveats & Gotchas

  • UActorComponent has no transform. Use USceneComponent if you need 3D positioning.
  • Components are created with `CreateDefaultSubobject<T>()` in the actor's constructor, or dynamically with `NewObject<T>() + RegisterComponent()`.
  • Component tick is separate from actor tick. Enable with `PrimaryComponentTick.bCanEverTick = true`.
  • Calling `DestroyComponent()` marks the component for GC. Detaches it from the owner actor.

Signature

class UActorComponent : public UObject

Example

Creating a custom component C++
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class MYGAME_API UHealthComponent : public UActorComponent
{
    GENERATED_BODY()

public:
    UHealthComponent();

    UPROPERTY(EditAnywhere, BlueprintReadWrite)
    float MaxHealth = 100.f;

protected:
    float CurrentHealth;

    virtual void BeginPlay() override;
};

UHealthComponent::UHealthComponent()
{
    PrimaryComponentTick.bCanEverTick = false;
}

void UHealthComponent::BeginPlay()
{
    Super::BeginPlay();
    CurrentHealth = MaxHealth;
}

Functions (166)

Lifecycle
46
Access Type Name
public function UActorComponent::Activate
public function UActorComponent::BeginPlay
public function UActorComponent::Deactivate
public function UActorComponent::EndPlay
public function UActorComponent::HasBegunPlay
public function UActorComponent::IsComponentTickEnabled
public function UActorComponent::IsRegistered
public function UActorComponent::K2_DestroyComponent
public function UActorComponent::ReceiveBeginPlay
public function UActorComponent::ReceiveEndPlay
public function UActorComponent::ReceiveTick
public function UActorComponent::SetActive
public function UActorComponent::SetComponentTickEnabled
public function UActorComponent::TickComponent
public function UActorComponent::ToggleActive
public function UActorComponent::DestroyComponent
public function UActorComponent::HasBeenCreated
public function UActorComponent::HasBeenInitialized
public function UActorComponent::InitializeComponent
public function UActorComponent::IsBeingDestroyed
public function UActorComponent::IsReadyForOwnerToAutoDestroy
public function UActorComponent::OnComponentCreated
public function UActorComponent::OnComponentDestroyed
public function UActorComponent::RegisterComponent
public function UActorComponent::RegisterComponentWithWorld
public function UActorComponent::ReregisterComponent
public function UActorComponent::SetTickableWhenPaused
public function UActorComponent::UninitializeComponent
public function UActorComponent::UnregisterComponent
public function UActorComponent::AllowReregistration
public function UActorComponent::AsyncPhysicsTickComponent
public function UActorComponent::GetComponentInstanceData
public function UActorComponent::IsOwnerRunningUserConstructionScript
public function UActorComponent::IsPreRegistered
public function UActorComponent::IsPreRegistering
public function UActorComponent::IsPreUnregistered
public function UActorComponent::IsPreUnregistering
public function UActorComponent::OnEndOfFrameUpdateDuringTick
public function UActorComponent::PostApplyToComponent
public function UActorComponent::PreRegisterComponentWithWorld
public function UActorComponent::PreUnregisterComponentFromWorld
public function UActorComponent::ReceiveAsyncPhysicsTick
public function UActorComponent::RegisterAllComponentTickFunctions
public function UActorComponent::SetActiveFlag
public function UActorComponent::SetComponentTickEnabledAsync
public function UActorComponent::SetupActorComponentTickFunction
Transform
2
Access Type Name
public function UActorComponent::ApplyWorldOffset
public function UActorComponent::UpdateComponentToWorld
Collision
1
Access Type Name
public function UActorComponent::OnActorEnableCollisionChanged
Networking
34
Access Type Name
public function UActorComponent::AddReplicatedSubObject
public function UActorComponent::CallRemoteFunction
public function UActorComponent::DestroyReplicatedSubObjectOnRemotePeers
public function UActorComponent::GetComponentClassCanReplicate
public function UActorComponent::GetFunctionCallspace
public function UActorComponent::GetIsReplicated
public function UActorComponent::GetLifetimeReplicatedProps
public function UActorComponent::GetNetMode
public function UActorComponent::GetOwnerRole
public function UActorComponent::GetReplicationCondition
public function UActorComponent::IsNameStableForNetworking
public function UActorComponent::IsNetMode
public function UActorComponent::IsNetSimulating
public function UActorComponent::IsNetStartupComponent
public function UActorComponent::IsReadyForReplication
public function UActorComponent::IsReplicatedSubObjectRegistered
public function UActorComponent::IsSupportedForNetworking
public function UActorComponent::IsUsingRegisteredSubObjectList
public function UActorComponent::NeedsLoadForClient
public function UActorComponent::NeedsLoadForServer
public function UActorComponent::OnCreatedFromReplication
public function UActorComponent::OnDestroyedFromReplication
public function UActorComponent::OnRep_IsActive
public function UActorComponent::OnReplicationStartedForIris
public function UActorComponent::OnStopReplicationForIris
public function UActorComponent::PreReplication
public function UActorComponent::ReadyForReplication
public function UActorComponent::RegisterReplicationFragments
public function UActorComponent::RemoveReplicatedSubObject
public function UActorComponent::ReplicateSubobjects
public function UActorComponent::SetIsNetStartupComponent
public function UActorComponent::SetIsReplicated
public function UActorComponent::SetNetAddressable
public function UActorComponent::TearOffReplicatedSubObjectOnRemotePeers
Rendering
24
Access Type Name
public function UActorComponent::InvalidateLightingCache
public function UActorComponent::IsRenderStateCreated
public function UActorComponent::MarkRenderStateDirty
public function UActorComponent::OnActorVisibilityChanged
public function UActorComponent::ClearNeedEndOfFrameUpdate
public function UActorComponent::DoDeferredRenderUpdates_Concurrent
public function UActorComponent::GetScene
public function UActorComponent::InvalidateLightingCacheDetailed
public function UActorComponent::IsHLODRelevant
public function UActorComponent::IsReadyForEarlyEndOfFrameUpdate
public function UActorComponent::IsRenderInstancesDirty
public function UActorComponent::IsRenderStateDirty
public function UActorComponent::IsRenderStateRecreating
public function UActorComponent::IsRenderStateUpdating
public function UActorComponent::IsRenderTransformDirty
public function UActorComponent::MarkForNeededEndOfFrameRecreate
public function UActorComponent::MarkForNeededEndOfFrameUpdate
public function UActorComponent::MarkRenderDynamicDataDirty
public function UActorComponent::MarkRenderInstancesDirty
public function UActorComponent::MarkRenderTransformDirty
public function UActorComponent::RecreateRenderState_Concurrent
public function UActorComponent::RequiresGameThreadEndOfFrameRecreate
public function UActorComponent::RequiresGameThreadEndOfFrameUpdates
public function UActorComponent::RequiresPreEndOfFrameSync
Navigation
3
Access Type Name
public function UActorComponent::CanEverAffectNavigation
public function UActorComponent::SetCanEverAffectNavigation
public function UActorComponent::IsNavigationRelevant
Tags
1
Access Type Name
public function UActorComponent::ComponentHasTag
Utility
30
Access Type Name
public function UActorComponent::GetOwner
public function UActorComponent::GetWorld
public function UActorComponent::AddAssetUserData
public function UActorComponent::AdditionalStatObject
public function UActorComponent::ComponentIsInLevel
public function UActorComponent::ComponentIsInPersistentLevel
public function UActorComponent::GetAssetUserDataArray
public function UActorComponent::GetAssetUserDataOfClass
public function UActorComponent::GetComponentLevel
public function UActorComponent::GetReadableName
public function UActorComponent::IsCreatedByConstructionScript
public function UActorComponent::IsEditableWhenInherited
public function UActorComponent::RemoveUserDataOfClass
public function UActorComponent::AddReferencedObjects
public function UActorComponent::ClearUCSModifiedProperties
public function UActorComponent::DetermineUCSModifiedProperties
public function UActorComponent::GetComponentChildElements
public function UActorComponent::GetMarkedForEndOfFrameUpdateState
public function UActorComponent::GetMarkedForPreEndOfFrameSync
public function UActorComponent::GetUCSModifiedProperties
public function UActorComponent::GetUCSSerializationIndex
public function UActorComponent::IsOwnerSelected
public function UActorComponent::NeedsLoadForEditorGame
public function UActorComponent::OnPreEndOfFrameSync
public function UActorComponent::PostMigrate
public function UActorComponent::PostRename
public function UActorComponent::RemoveUCSModifiedProperties
public function UActorComponent::Rename
public function UActorComponent::ShouldIncrementalPreRegister
public function UActorComponent::ShouldIncrementalPreUnregister
Activation
2
Access Type Name
public function UActorComponent::IsActive
public function UActorComponent::SetAutoActivate
Physics
15
Access Type Name
public function UActorComponent::IsPhysicsStateCreated
public function UActorComponent::RecreatePhysicsState
public function UActorComponent::AllowsAsyncPhysicsStateCreation
public function UActorComponent::AllowsAsyncPhysicsStateDestruction
public function UActorComponent::CreatePhysicsState
public function UActorComponent::DestroyPhysicsState
public function UActorComponent::GetAsyncPhysicsStateObject
public function UActorComponent::IsAsyncCreatePhysicsStateRunning
public function UActorComponent::IsAsyncDestroyPhysicsStateRunning
public function UActorComponent::IsAsyncPhysicsStateCreated
public function UActorComponent::OnAsyncCreatePhysicsState
public function UActorComponent::OnAsyncCreatePhysicsStateEnd_GameThread
public function UActorComponent::OnAsyncDestroyPhysicsState
public function UActorComponent::OnAsyncDestroyPhysicsStateBegin_GameThread
public function UActorComponent::OnAsyncDestroyPhysicsStateEnd_GameThread
Tick
8
Access Type Name
public function UActorComponent::AddTickPrerequisiteActor
public function UActorComponent::AddTickPrerequisiteComponent
public function UActorComponent::GetComponentTickInterval
public function UActorComponent::RemoveTickPrerequisiteActor
public function UActorComponent::RemoveTickPrerequisiteComponent
public function UActorComponent::SetComponentTickInterval
public function UActorComponent::SetComponentTickIntervalAndCooldown
public function UActorComponent::SetTickGroup

Properties

Access Type Name
public property UActorComponent::ComponentTags
public property UActorComponent::CreationMethod
public property UActorComponent::OnComponentActivated
public property UActorComponent::OnComponentDeactivated
public property UActorComponent::PrimaryComponentTick

Version History

Introduced in: 1.0

Version Status Notes
5.6 stable

Feedback

Was this helpful?

Suggest an edit

Select a field above to begin editing.