/Engine/Source/Runtime/Engine/Classes/Components/PrimitiveComponent.h
PrimitiveComponents are SceneComponents that contain or generate some sort of geometry, generally to be rendered or used as collision data. There are several subclasses for the various types of geometry, but the most common by far are the ShapeComponents (Capsule, Sphere, Box), StaticMeshComponent, and SkeletalMeshComponent. ShapeComponents generate geometry that is used for collision detection but are not rendered, while StaticMeshComponents and SkeletalMeshComponents contain pre-built geometry that is rendered, but can also be used for collision detection.
class UPrimitiveComponent : public [USceneComponent](API\Runtime\Engine\Components\USceneComponent), public [INavRelevantInterface](API\Runtime\Engine\AI\Navigation\INavRelevantInterface), public [IInterface_AsyncCompilation](API\Runtime\Engine\Interfaces\IInterface_AsyncCompilation), public [IPhysicsComponent](API\Runtime\Engine\Interfaces\IPhysicsComponent)
uint8: 1
AlwaysLoadOnClient
If this is True, this component must always be loaded on clients, even if Hidden and CollisionEnabled is NoCollision.
uint8: 1
AlwaysLoadOnServer
If this is True, this component must always be loaded on servers, even if Hidden and CollisionEnabled is NoCollision
FThreadSafeCoun...
AttachmentCounter
Incremented by the main thread before being attached to the scene, decremented by the rendering thread after removal.
uint8: 1
bAffectDistanceFieldLighting
Controls whether the primitive should affect dynamic distance field lighting methods.
uint8: 1
bAffectDynamicIndirectLighting
Controls whether the primitive should influence indirect lighting.
uint8: 1
bAffectIndirectLightingWhileHidden
Controls whether the primitive should affect indirect lighting when hidden.
uint8: 1
bAllowCullDistanceVolume
Whether to accept cull distance volumes to modify cached cull distance.
uint8:  1
bAlwaysAllowTranslucentSelect
uint8: 1
bAlwaysCreatePhysicsState
Indicates if we'd like to create physics state all the time (for collision and simulation).
uint8:  1
bApplyImpulseOnDamage
True for damage to this component to apply physics impulse, false to opt out of these impulses.
uint8:  1
bAttachedToCoarseMeshStreamingManager
Whether this primitive is referenced by aNanite::FCoarseMeshStreamingManager
uint8:  1
bAttachedToStreamingManagerAsDynamic
Whether this primitive is referenced by a FDynamicRenderAssetInstanceManager
uint8:  1
bAttachedToStreamingManagerAsStatic
Whether this primitive is referenced by a FLevelRenderAssetManager
uint8:  1
bBulkReregister
Primitive is part of a batch being bulk reregistered.
uint8:  1
bCachedAllCollideableDescendantsRelative
Result of last call toAreAllCollideableDescendantsRelative().
uint8: 1
bCastCinematicShadow
Whether this component should cast shadows from lights that have bCastShadowsFromCinematicObjectsOnly enabled.
uint8: 1
bCastContactShadow
Whether the object should cast contact shadows. This flag is only used if CastShadow is true.
uint8: 1
bCastDynamicShadow
Controls whether the primitive should cast shadows in the case of non precomputed shadowing.
uint8: 1
bCastFarShadow
When enabled, the component will be rendering into the far shadow cascades (only for directional lights).
uint8: 1
bCastHiddenShadow
If true, the primitive will cast shadows even if bHidden is true.
uint8: 1
bCastInsetShadow
Whether this component should create a per-object shadow that gives higher effective shadow resolution.
uint8: 1
bCastShadowAsTwoSided
Whether this primitive should cast dynamic shadows as if it were a two sided material.
uint8: 1
bCastStaticShadow
Whether the object should cast a static shadow from shadow casting lights.
uint8: 1
bCastVolumetricTranslucentShadow
Whether the object should cast a volumetric translucent shadow.
uint8: 1
bConsiderForActorPlacementWhenHidden
If true, this component will be considered for placement when dragging and placing items in the editor even if it is not visible, such as in the case of hidden collision meshes
uint8: 1
bEmissiveLightSource
Whether the primitive will be used as an emissive light source.
uint8:  1
bEnableAutoLODGeneration
Whether to include this component in HLODs or not.
uint8: 1
bExcludeFromLightAttachmentGroup
If set, then it overrides any bLightAttachmentsAsGroup set in a parent.
uint8: 1
bFillCollisionUnderneathForNavmesh
If set, navmesh will not be generated under the surface of the geometry
uint8: 1
bForceMipStreaming
If true, forces mips for textures used by this component to be resident when this component's level is loaded.
uint8:  1
bHandledByStreamingManagerAsDynamic
Whether this primitive is handled as dynamic, although it could have no references
TEnumAsByte<EH...
bHasCustomNavigableGeometry
If true then DoCustomNavigableGeometryExport will be called to collect navigable geometry of this component.
uint8:  1
bHasNoStreamableTextures
uint8: 1
bHasPerInstanceHitProxies
If true a hit-proxy will be generated for each instance of instanced static meshes
uint8:  1
bHiddenInSceneCapture
uint8:  1
bHoldout
If this is True, this primitive will render black with an alpha of 0, but all secondary effects (shadows, reflections, indirect lighting) remain.
uint8:  1
bIgnoreBoundsForEditorFocus
uint8: 1
bIgnoreRadialForce
Will ignore radial forces applied to this component.
uint8: 1
bIgnoreRadialImpulse
Will ignore radial impulses applied to this component.
uint8:  1
bIgnoreStreamingManagerUpdate
When true, texture streaming manager won't update the component state.
uint8:  1
bIsActorTextureStreamingBuiltData
Indicates that the texture streaming built data is local to the Actor (seeUActorTextureStreamingBuildDataComponent).
uint8: 1
bIsBeingMovedByEditor
Set to true while the editor is moving the component, which notifies the Renderer to track velocities even if the component is Static.
uint8:  1
bIsValidTextureStreamingBuiltData
Indicates to the texture streaming wether it can use the pre-built texture streaming data (even if empty).
uint8: 1
bLightAttachmentsAsGroup
Whether to light this component and any attachments as a group.
uint8: 1
bMultiBodyOverlap
If true, this component will generate individual overlaps for each overlapping physics body if it is a multi-body component.
uint8:  1
bNeverDistanceCull
When enabled this object will not be culled by distance. This is ignored if a child of a HLOD.
FBodyInstance
BodyInstance
Physics scene information for this component, holds a single rigid body with multiple shapes.
uint8: 1
bOnlyOwnerSee
If this is True, this component will only be visible when the view actor is the component's owner, directly or indirectly.
float
BoundsScale
Scales the bounds of the object.
uint8: 1
bOwnerNoSee
If this is True, this component won't be visible when the view actor is the component's owner, directly or indirectly.
uint8:  1
bPSOPrecacheCalled
Helper flag to check if PSOs have been precached already
uint8:  1
bPSOPrecacheRequestBoosted
Have the PSO requests already been priority boosted?
uint8:  1
bRayTracingFarField
If true, this component will be available to ray trace as a far field primitive even if hidden.
uint8:  1
bReceiveMobileCSMShadows
Mobile only: If disabled this component will not receive CSM shadows.
uint8: 1
bReceivesDecals
Whether the primitive receives decals.
uint8: 1
bRenderCustomDepth
If true, this component will be rendered in the CustomDepth pass (usually used for outlines)
uint8: 1
bRenderInDepthPass
If true, this component will be rendered in the depth pass even if it's not rendered in the main pass
uint8: 1
bRenderInMainPass
If true, this component will be rendered in the main pass (z prepass, basepass, transparency)
uint8:  1
bReplicatePhysicsToAutonomousProxy
True if physics should be replicated to autonomous proxies.
uint8: 1
bReturnMaterialOnMove
If true, component sweeps will return the material in their hit result.
uint8: 1
bSelectable
If this is True, this component can be selected in the editor.
uint8: 1
bSelfShadowOnly
When enabled, the component will only cast a shadow on itself and not other components in the world.
uint8: 1
bSingleSampleShadowFromStationaryLights
Whether the whole component should be shadowed as one from stationary lights, which makes shadow receiving much cheaper.
uint8: 1
bTraceComplexOnMove
If true, component sweeps with this component should trace against complex collision during movement (for example, each triangle of a mesh).
uint8: 1
bTreatAsBackgroundForOcclusion
Treat this primitive as part of the background for occlusion purposes.
uint8: 1
bUseAsOccluder
Whether to render the primitive in the depth only pass.
uint8: 1
bUseEditorCompositing
Composite the drawing of this component onto the scene after post processing (only applies to editor drawing)
uint8: 1
bUseViewOwnerDepthPriorityGroup
True if the primitive should be rendered using ViewOwnerDepthPriorityGroup if viewed by its owner.
uint8:  1
bVisibleInRayTracing
If true, this component will be visible in ray tracing effects.
uint8: 1
bVisibleInRealTimeSkyCaptures
If true, this component will be visible in real-time sky light reflection captures.
uint8: 1
bVisibleInReflectionCaptures
If true, this component will be visible in reflection captures.
uint8:  1
bVisibleInSceneCaptureOnly
float
CachedMaxDrawDistance
The distance to cull this primitive at.
TEnumAsByte< en...
CanCharacterStepUpOn
Determine whether a Character can step up onto this component.
uint8: 1
CastShadow
Controls whether the primitive component should cast a shadow or not.
FPrimitiveCompo...
ComponentId
Used by the renderer, to identify a component across re-registers.
int32
CustomDepthStencilValue
Optionally write this 0-255 value to the stencil buffer in CustomDepth pass (Requires project setting or r.CustomDepth == 3)
ERendererStenci...
CustomDepthStencilWriteMask
Mask used for stencil buffer writes.
FPhysScene *...
DeferredCreatePhysicsStateScene
If non-null, physics state creation has been deferred toULevel::IncrementalUpdateComponentsor this scene's StartFrame.
TEnumAsByte< en...
DepthPriorityGroup
The scene depth priority group to draw the primitive in.
FRenderCommandF...
DetachFence
A fence to track when the primitive is detached from the scene in the rendering thread.
DisplayName
When mobility is stationary, use a static underlying physics body.
TEnumAsByte< en...
HitProxyPriority
EHLODBatchingPo...
HLODBatchingPolicy
Determines how the geometry of a component will be incorporated in proxy (simplified) HLODs.
TEnumAsByte< EI...
IndirectLightingCacheQuality
Quality of indirect lighting for Movable primitives.
float
LastCheckedAllCollideableDescendantsTime
Last time we checkedAreAllCollideableDescendantsRelative(), so we can throttle those tests since it rarely changes once false.
float
LastSubmitTime
Last time the component was submitted for rendering (called FScene::AddPrimitive).
float
LDMaxDrawDistance
Max draw distance exposed to LDs.
FLightingChanne...
LightingChannels
Channels that this component should be in.
ELightmapType
LightmapType
Controls the type of lightmap used for this component.
TArray< FMateri...
MaterialPSOPrecacheRequestIDs
Cached array of material PSO requests which can be used to boost the priority
float
MinDrawDistance
The minimum distance at which the primitive should be rendered, measured in world space units from the center of the primitive's bounding sphere to the camera position.
TArray<TObject...
MoveIgnoreActors
Set of actors to ignore during component sweeps inMoveComponent().
TArray<TObject...
MoveIgnoreComponents
Set of components to ignore during component sweeps inMoveComponent().
FComponentBegin...
OnBeginCursorOver
Event called when the mouse cursor is moved over this component and mouse over events are enabled in the player controller
FComponentOnCli...
OnClicked
Event called when the left mouse button is clicked while the mouse is over this component and click events are enabled in the player controller
FComponentBegin...
OnComponentBeginOverlap
Event called when something starts to overlaps this component, for example a player walking into a trigger.
FComponentColli...
OnComponentCollisionSettingsChangedEvent
Event called when collision settings change for this component.
FComponentEndOv...
OnComponentEndOverlap
Event called when something stops overlapping this component
FComponentHitSi...
OnComponentHit
Event called when a component hits (or is hit by) something solid.
FComponentPhysi...
OnComponentPhysicsStateChanged
Event called when physics state is created or destroyed for this component
FComponentSleep...
OnComponentSleep
Event called when the underlying physics objects is put to sleep
FComponentWakeS...
OnComponentWake
Event called when the underlying physics objects is woken up
FComponentEndCu...
OnEndCursorOver
Event called when the mouse cursor is moved off this component and mouse over events are enabled in the player controller
FComponentOnInp...
OnInputTouchBegin
Event called when a touch input is received over this component when touch events are enabled in the player controller
FComponentOnInp...
OnInputTouchEnd
Event called when a touch input is released over this component when touch events are enabled in the player controller
FComponentBegin...
OnInputTouchEnter
Event called when a finger is moved over this component when touch over events are enabled in the player controller
FComponentEndTo...
OnInputTouchLeave
Event called when a finger is moved off this component when touch over events are enabled in the player controller
FComponentOnRel...
OnReleased
Event called when the left mouse button is released while the mouse is over this component click events are enabled in the player controller
TArray<FOverla...
OverlappingComponents
Set of components that this component is currently overlapping.
FGraphEventRef
PSOPrecacheCompileEvent
Graph event used to track all the PSO precache events
ERayTracingGrou...
RayTracingGroupCullingPriority
Defines how quickly it should be culled.
int32
RayTracingGroupId
Defines run-time groups of components.
int32
RegistrationSerialNumber
Identifier used to track the time that this component was registered with the world / renderer.
TArray<TObject...
RuntimeVirtualTextures
Array of runtime virtual textures into which we draw the mesh for this actor.
FPrimitiveScene...
SceneProxy
The primitive's scene info.
uint8
SelectionOutlineColorIndex
FSelectionOverr...
SelectionOverrideDelegate
EShadowCacheInv...
ShadowCacheInvalidationBehavior
Control shadow invalidation behavior, in particular with respect to Virtual Shadow Maps and material effects like World Position Offset.
ToolTip
float
TranslucencySortDistanceOffset
Modified sort distance offset for translucent objects in world units.
int32
TranslucencySortPriority
Translucent objects with a lower sort priority draw behind objects with a higher priority.
TEnumAsByte< en...
ViewOwnerDepthPriorityGroup
The scene depth priority group to draw the primitive in, if it's being viewed by its owner.
int8
VirtualTextureCullMips
Number of lower mips in the runtime virtual texture to skip for rendering this primitive.
int8
VirtualTextureLodBias
Bias to the LOD selected for rendering to runtime virtual textures.
int8
VirtualTextureMinCoverage
Set the minimum pixel coverage before culling from the runtime virtual texture.
ERuntimeVirtual...
VirtualTextureRenderPassType
Controls if this component draws in the main pass as well as in the virtual texture.
int32
VisibilityId
Used for precomputed visibility