UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GeometryCollectionComponent.cpp File Reference
#include "GeometryCollection/GeometryCollectionComponent.h"
#include "AI/Navigation/NavCollisionBase.h"
#include "AI/NavigationSystemHelpers.h"
#include "Async/ParallelFor.h"
#include "Chaos/ChaosPhysicalMaterial.h"
#include "Chaos/ChaosScene.h"
#include "Chaos/PhysicsObjectCollisionInterface.h"
#include "ChaosSolversModule.h"
#include "ChaosStats.h"
#include "ComponentRecreateRenderStateContext.h"
#include "Components/BoxComponent.h"
#include "Engine/CollisionProfile.h"
#include "Engine/Engine.h"
#include "Engine/InstancedStaticMesh.h"
#include "Engine/StaticMeshSocket.h"
#include "MaterialDomain.h"
#include "Field/FieldSystemComponent.h"
#include "GeometryCollection/Facades/CollectionHierarchyFacade.h"
#include "GeometryCollection/GeometryCollection.h"
#include "GeometryCollection/GeometryCollectionActor.h"
#include "GeometryCollection/GeometryCollectionAlgo.h"
#include "GeometryCollection/GeometryCollectionCache.h"
#include "GeometryCollection/GeometryCollectionClusteringUtility.h"
#include "GeometryCollection/GeometryCollectionComponentPluginPrivate.h"
#include "GeometryCollection/GeometryCollectionDebugDrawComponent.h"
#include "GeometryCollection/GeometryCollectionISMPoolRenderer.h"
#include "GeometryCollection/GeometryCollectionObject.h"
#include "GeometryCollection/GeometryCollectionProximityUtility.h"
#include "GeometryCollection/GeometryCollectionSQAccelerator.h"
#include "GeometryCollection/GeometryCollectionSceneProxy.h"
#include "GeometryCollection/GeometryCollectionUtility.h"
#include "ISMPool/ISMPoolActor.h"
#include "ISMPool/ISMPoolComponent.h"
#include "Math/Sphere.h"
#include "Modules/ModuleManager.h"
#include "Net/Core/PushModel/PushModel.h"
#include "Net/UnrealNetwork.h"
#include "PhysicalMaterials/PhysicalMaterial.h"
#include "Physics/Experimental/PhysScene_Chaos.h"
#include "Physics/Experimental/ChaosInterfaceUtils.h"
#include "Physics/PhysicsFiltering.h"
#include "PhysicsEngine/PhysicsObjectExternalInterface.h"
#include "PhysicsField/PhysicsFieldComponent.h"
#include "PhysicsProxy/GeometryCollectionPhysicsProxy.h"
#include "PhysicsSolver.h"
#include "UObject/FortniteValkyrieBranchObjectVersion.h"
#include "Chaos/PBDRigidClusteringAlgo.h"
#include "Algo/RemoveIf.h"
#include "PhysicsEngine/BodySetup.h"
#include "PhysicsEngine/BodyInstance.h"
#include "Chaos/ChaosGameplayEventDispatcher.h"
#include "Rendering/NaniteResources.h"
#include "NaniteVertexFactory.h"
#include "PrimitiveSceneInfo.h"
#include "GeometryCollection/GeometryCollectionEngineRemoval.h"
#include "GeometryCollection/Facades/CollectionAnchoringFacade.h"
#include "GeometryCollection/Facades/CollectionRemoveOnBreakFacade.h"
#include "GeometryCollection/Facades/CollectionInstancedMeshFacade.h"
#include "GeometryCollection/GeometryCollectionExternalRenderInterface.h"
#include "Dataflow/DataflowSettings.h"
#include "Logging/MessageLog.h"
#include "Misc/UObjectToken.h"
#include "Iris/ReplicationState/PropertyNetSerializerInfoRegistry.h"

Classes

struct  _ForcedBroken
 
struct  FGeometryCollectionDecayContext
 

Macros

#define CHAOS_BOX_CALC_BOUNDS_ISPC_ENABLED_DEFAULT   1
 (UE_BUILD_SHIPPING || UE_BUILD_TEST)
 
#define COPY_ON_WRITE_ATTRIBUTE(Type, Name, Group)
 
#define GEOMETRY_COLLECTION_CHECK_FOR_NANS_IN_TRANSFORMS   0
 

Functions

 DEFINE_LOG_CATEGORY_STATIC (UGCC_LOG, Error, All)
 
 DEFINE_LOG_CATEGORY_STATIC (LogGeometryCollectionComponent, Warning, All)
 
FString NetModeToString (ENetMode InMode)
 
FString RoleToString (ENetRole InRole)
 
int32 GetClusterLevel (const FTransformCollection *Collection, int32 TransformGroupIndex)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_LASTRESORT_NETSERIALIZER_AND_REGISTRY_DELEGATES (GeometryCollectionRepData)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_LASTRESORT_NETSERIALIZER_AND_REGISTRY_DELEGATES (GeometryCollectionRepStateData)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_LASTRESORT_NETSERIALIZER_AND_REGISTRY_DELEGATES (GeometryCollectionRepDynamicData)
 
TUniquePtr< FFieldNodeBaseMakeRadialField (const FVector &Origin, float Radius, float Strength, ERadialImpulseFalloff Falloff)
 
void ActivateClusters (Chaos::FRigidClustering &Clustering, Chaos::TPBDRigidClusteredParticleHandle< Chaos::FReal, 3 > *Cluster)
 

Variables

bool bChaos_GC_UseCustomRenderer = true
 
FAutoConsoleVariableRef CVarChaosGCUseCustomRenderer (TEXT("p.Chaos.GC.UseCustomRenderer"), bChaos_GC_UseCustomRenderer, TEXT("When enabled, use a custom renderer if specified"))
 
bool bChaos_GC_InitConstantDataUseParallelFor = true
 
FAutoConsoleVariableRef CVarChaosGCInitConstantDataUseParallelFor (TEXT("p.Chaos.GC.InitConstantDataUseParallelFor"), bChaos_GC_InitConstantDataUseParallelFor, TEXT("When enabled, InitConstant data will use parallelFor for copying some of the data"))
 
int32 bChaos_GC_InitConstantDataParallelForBatchSize = 5000
 
FAutoConsoleVariableRef CVarChaosGCInitConstantDataParallelForBatchSize (TEXT("p.Chaos.GC.InitConstantDataParallelForBatchSize"), bChaos_GC_InitConstantDataParallelForBatchSize, TEXT("When parallelFor is used in InitConstantData, defined the minimium size of a batch of vertex "))
 
int32 MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs = 30
 
FAutoConsoleVariableRef CVarMaxGeometryCollectionAsyncPhysicsTickIdleTimeMs (TEXT("p.Chaos.GC.MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs"), MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs, TEXT("Amount of time in milliseconds before the async tick turns off when it is otherwise not doing anything."))
 
float GeometryCollectionRemovalMultiplier = 1.0f
 
FAutoConsoleVariableRef CVarGeometryCollectionRemovalTimerMultiplier (TEXT("p.Chaos.GC.RemovalTimerMultiplier"), GeometryCollectionRemovalMultiplier, TEXT("Multiplier for the removal time evaluation ( > 1 : faster removal , > 1 slower"))
 
bool GeometryCollectionEmitRootBreakingEvent = false
 
FAutoConsoleVariableRef CVarGeometryCollectionEmitRootBreakingEvent (TEXT("p.Chaos.GC.EmitRootBreakingEvent"), GeometryCollectionEmitRootBreakingEvent, TEXT("When true send a breaking event when root is breaking"))
 
bool GeometryCollectionCreatePhysicsStateInEditor = false
 
FAutoConsoleVariableRef CVarGeometryCollectionCreatePhysicsStateInEditor (TEXT("p.Chaos.GC.CreatePhysicsStateInEditor"), GeometryCollectionCreatePhysicsStateInEditor, TEXT("when on , physics state for a GC will be create in editor ( non PIE )"))
 
bool GeometryCollectionUseReplicationV2 = true
 
FAutoConsoleVariableRef CVarGeometryCollectionUseReplicationV2 (TEXT("p.Chaos.GC.UseReplicationV2"), GeometryCollectionUseReplicationV2, TEXT("When true use new replication data model"))
 
int32 GeometryCollectionNetAwakeningMode = 1
 
FAutoConsoleVariableRef CVarGeometryCollectionNetAwakeningMode (TEXT("p.Chaos.GC.NetAwakeningMode"), GeometryCollectionNetAwakeningMode, TEXT("Changes how GC components ensure that their owner is awake for replication. 0 = ForceDormancyAwake, 1 = Use Flush Net Dormancy"))
 
bool bGeometryCollectionCustomRendererHiddenActorFix = true
 
FAutoConsoleVariableRef CVarGeometryCollectionCustomRendererHiddenActorFix (TEXT("p.Chaos.GC.CustomRendererHiddenActorFix"), bGeometryCollectionCustomRendererHiddenActorFix, TEXT("When true custom renderer will account for the actor hidden flag"))
 
bool bGeometryCollectionRemoveOnBreakDecayFix = true
 
FAutoConsoleVariableRef CVarGeometryCollectionRemoveOnBreakDecayFix (TEXT("p.Chaos.GC.RemoveOnBreakDecayFix"), bGeometryCollectionRemoveOnBreakDecayFix, TEXT("When true, fix the issue causing a remove on break cluster crumbling with simulating children from disappearing for several frames"))
 
FGeometryCollectionDynamicDataPool GDynamicDataPool
 
int32 GGeometryCollectionNanite = 1
 
FAutoConsoleVariableRef CVarGeometryCollectionNanite (TEXT("r.GeometryCollection.Nanite"), GGeometryCollectionNanite, TEXT("Render geometry collections using Nanite."), FConsoleVariableDelegate::CreateLambda([](IConsoleVariable *InVariable) { FGlobalComponentRecreateRenderStateContext Context;}), ECVF_RenderThreadSafe)
 
float GGeometryCollectionNavigationSizeThreshold = 20.0f
 
FAutoConsoleVariableRef CVarGeometryCollectionNavigationSizeThreshold (TEXT("p.GeometryCollectionNavigationSizeThreshold"), GGeometryCollectionNavigationSizeThreshold, TEXT("Size in CM used as a threshold for whether a geometry in the collection is collected and exported for navigation purposes. Measured as the diagonal of the leaf node bounds."))
 
bool bGeometryCollectionSingleThreadedBoundsCalculation = false
 
FAutoConsoleVariableRef CVarGeometryCollectionSingleThreadedBoundsCalculation (TEXT("p.GeometryCollectionSingleThreadedBoundsCalculation"), bGeometryCollectionSingleThreadedBoundsCalculation, TEXT("[Debug Only] Single threaded bounds calculation. [def:false]"))
 
struct _ForcedBroken ForcedBroken
 
float GeometryCollectionRepLinearMatchStrength = 50
 
FAutoConsoleVariableRef CVarGeometryCollectionRepLinearMatchStrength (TEXT("p.GeometryCollectionRepLinearMatchStrength"), GeometryCollectionRepLinearMatchStrength, TEXT("Units can be interpreted as %/s^2 - acceleration of percent linear correction"))
 
float GeometryCollectionRepAngularMatchTime = .5f
 
FAutoConsoleVariableRef CVarGeometryCollectionRepAngularMatchTime (TEXT("p.GeometryCollectionRepAngularMatchTime"), GeometryCollectionRepAngularMatchTime, TEXT("In seconds, how quickly should the angle match the replicated target angle"))
 
float GeometryCollectionRepMaxExtrapolationTime = 3.f
 
FAutoConsoleVariableRef CVarGeometryCollectionRepMaxExtrapolationTime (TEXT("p.GeometryCollectionRepMaxExtrapolationTime"), GeometryCollectionRepMaxExtrapolationTime, TEXT("Number of seconds that replicated physics data will persist for a GC, extrapolating velocities"))
 
bool bGeometryCollectionDebugDrawRep = 0
 
FAutoConsoleVariableRef CVarGeometryCollectionDebugDrawRep (TEXT("p.Chaos.DebugDraw.GeometryCollectionReplication"), bGeometryCollectionDebugDrawRep, TEXT("If true debug draw deltas and corrections for geometry collection replication"))
 
bool bGeometryCollectionRepUseClusterVelocityMatch = true
 
FAutoConsoleVariableRef CVarGeometryCollectionRepUseClusterVelocityMatch (TEXT("p.bGeometryCollectionRepUseClusterVelocityMatch"), bGeometryCollectionRepUseClusterVelocityMatch, TEXT("Use physical velocity to match cluster states"))
 
int32 GeometryCollectionHardMissingUpdatesSnapThreshold = 20
 
FAutoConsoleVariableRef CVarGeometryCollectionHardMissingUpdatesSnapThreshold (TEXT("p.GeometryCollectionHardMissingUpdatesSnapThreshold"), GeometryCollectionHardMissingUpdatesSnapThreshold, TEXT("Determines how many missing updates before we trigger a hard snap"))
 
int32 GeometryCollectionHardsnapThresholdMs = 100
 
FAutoConsoleVariableRef CVarGeometryCollectionHardsnapThresholdMs (TEXT("p.GeometryCollectionHardsnapThresholdMs"), GeometryCollectionHardMissingUpdatesSnapThreshold, TEXT("Determines how many ms since the last hardsnap to trigger a new one"))
 

Macro Definition Documentation

◆ CHAOS_BOX_CALC_BOUNDS_ISPC_ENABLED_DEFAULT

#define CHAOS_BOX_CALC_BOUNDS_ISPC_ENABLED_DEFAULT   1

(UE_BUILD_SHIPPING || UE_BUILD_TEST)

◆ COPY_ON_WRITE_ATTRIBUTE

#define COPY_ON_WRITE_ATTRIBUTE (   Type,
  Name,
  Group 
)
Value:
const TManagedArray<Type>& UGeometryCollectionComponent::Get##Name##Array() const \
{ \
return RestCollection->GetGeometryCollection()->Name; \
} \
TManagedArray<Type>& UGeometryCollectionComponent::Get##Name##ArrayCopyOnWrite() \
{ \
static FName StaticName(#Name); \
if (!DynamicCollection->HasAttribute(StaticName, Group)) \
{ \
DynamicCollection->AddAttribute<Type>(StaticName, Group); \
DynamicCollection->CopyAttribute( \
*RestCollection->GetGeometryCollection(), StaticName, Group); \
} \
return RestCollection->GetGeometryCollection()->Name; \
} \
void UGeometryCollectionComponent::Reset##Name##ArrayDynamic() \
{ \
} \
const TManagedArray<Type>& UGeometryCollectionComponent::Get##Name##ArrayRest() const \
{ \
return RestCollection->GetGeometryCollection()->Name; \
} \
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition NameTypes.h:617
Definition ManagedArray.h:1099

◆ GEOMETRY_COLLECTION_CHECK_FOR_NANS_IN_TRANSFORMS

#define GEOMETRY_COLLECTION_CHECK_FOR_NANS_IN_TRANSFORMS   0

Function Documentation

◆ ActivateClusters()

void ActivateClusters ( Chaos::FRigidClustering Clustering,
Chaos::TPBDRigidClusteredParticleHandle< Chaos::FReal, 3 > *  Cluster 
)

◆ DEFINE_LOG_CATEGORY_STATIC() [1/2]

DEFINE_LOG_CATEGORY_STATIC ( LogGeometryCollectionComponent  ,
Warning  ,
All   
)

◆ DEFINE_LOG_CATEGORY_STATIC() [2/2]

DEFINE_LOG_CATEGORY_STATIC ( UGCC_LOG  ,
Error  ,
All   
)

◆ GetClusterLevel()

int32 GetClusterLevel ( const FTransformCollection Collection,
int32  TransformGroupIndex 
)

◆ MakeRadialField()

TUniquePtr< FFieldNodeBase > MakeRadialField ( const FVector Origin,
float  Radius,
float  Strength,
ERadialImpulseFalloff  Falloff 
)

◆ NetModeToString()

FString NetModeToString ( ENetMode  InMode)

◆ RoleToString()

FString RoleToString ( ENetRole  InRole)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_LASTRESORT_NETSERIALIZER_AND_REGISTRY_DELEGATES() [1/3]

UE_NET_IMPLEMENT_NAMED_STRUCT_LASTRESORT_NETSERIALIZER_AND_REGISTRY_DELEGATES ( GeometryCollectionRepData  )

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_LASTRESORT_NETSERIALIZER_AND_REGISTRY_DELEGATES() [2/3]

UE_NET_IMPLEMENT_NAMED_STRUCT_LASTRESORT_NETSERIALIZER_AND_REGISTRY_DELEGATES ( GeometryCollectionRepDynamicData  )

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_LASTRESORT_NETSERIALIZER_AND_REGISTRY_DELEGATES() [3/3]

UE_NET_IMPLEMENT_NAMED_STRUCT_LASTRESORT_NETSERIALIZER_AND_REGISTRY_DELEGATES ( GeometryCollectionRepStateData  )

Variable Documentation

◆ bChaos_GC_InitConstantDataParallelForBatchSize

int32 bChaos_GC_InitConstantDataParallelForBatchSize = 5000

◆ bChaos_GC_InitConstantDataUseParallelFor

bool bChaos_GC_InitConstantDataUseParallelFor = true

◆ bChaos_GC_UseCustomRenderer

bool bChaos_GC_UseCustomRenderer = true

◆ bGeometryCollectionCustomRendererHiddenActorFix

bool bGeometryCollectionCustomRendererHiddenActorFix = true

◆ bGeometryCollectionDebugDrawRep

bool bGeometryCollectionDebugDrawRep = 0

◆ bGeometryCollectionRemoveOnBreakDecayFix

bool bGeometryCollectionRemoveOnBreakDecayFix = true

◆ bGeometryCollectionRepUseClusterVelocityMatch

bool bGeometryCollectionRepUseClusterVelocityMatch = true

◆ bGeometryCollectionSingleThreadedBoundsCalculation

bool bGeometryCollectionSingleThreadedBoundsCalculation = false

◆ CVarChaosGCInitConstantDataParallelForBatchSize

FAutoConsoleVariableRef CVarChaosGCInitConstantDataParallelForBatchSize(TEXT("p.Chaos.GC.InitConstantDataParallelForBatchSize"), bChaos_GC_InitConstantDataParallelForBatchSize, TEXT("When parallelFor is used in InitConstantData, defined the minimium size of a batch of vertex ")) ( TEXT("p.Chaos.GC.InitConstantDataParallelForBatchSize")  ,
bChaos_GC_InitConstantDataParallelForBatchSize  ,
TEXT("When parallelFor is used in InitConstantData, defined the minimium size of a batch of vertex ")   
)

◆ CVarChaosGCInitConstantDataUseParallelFor

FAutoConsoleVariableRef CVarChaosGCInitConstantDataUseParallelFor(TEXT("p.Chaos.GC.InitConstantDataUseParallelFor"), bChaos_GC_InitConstantDataUseParallelFor, TEXT("When enabled, InitConstant data will use parallelFor for copying some of the data")) ( TEXT("p.Chaos.GC.InitConstantDataUseParallelFor")  ,
bChaos_GC_InitConstantDataUseParallelFor  ,
TEXT("When enabled, InitConstant data will use parallelFor for copying some of the data"  
)

◆ CVarChaosGCUseCustomRenderer

FAutoConsoleVariableRef CVarChaosGCUseCustomRenderer(TEXT("p.Chaos.GC.UseCustomRenderer"), bChaos_GC_UseCustomRenderer, TEXT("When enabled, use a custom renderer if specified")) ( TEXT("p.Chaos.GC.UseCustomRenderer")  ,
bChaos_GC_UseCustomRenderer  ,
TEXT("When enabled, use a custom renderer if specified"  
)

◆ CVarGeometryCollectionCreatePhysicsStateInEditor

FAutoConsoleVariableRef CVarGeometryCollectionCreatePhysicsStateInEditor(TEXT("p.Chaos.GC.CreatePhysicsStateInEditor"), GeometryCollectionCreatePhysicsStateInEditor, TEXT("when on , physics state for a GC will be create in editor ( non PIE )")) ( TEXT("p.Chaos.GC.CreatePhysicsStateInEditor")  ,
GeometryCollectionCreatePhysicsStateInEditor  ,
TEXT("when on , physics state for a GC will be create in editor ( non PIE )")   
)

◆ CVarGeometryCollectionCustomRendererHiddenActorFix

FAutoConsoleVariableRef CVarGeometryCollectionCustomRendererHiddenActorFix(TEXT("p.Chaos.GC.CustomRendererHiddenActorFix"), bGeometryCollectionCustomRendererHiddenActorFix, TEXT("When true custom renderer will account for the actor hidden flag")) ( TEXT("p.Chaos.GC.CustomRendererHiddenActorFix")  ,
bGeometryCollectionCustomRendererHiddenActorFix  ,
TEXT("When true custom renderer will account for the actor hidden flag"  
)

◆ CVarGeometryCollectionDebugDrawRep

FAutoConsoleVariableRef CVarGeometryCollectionDebugDrawRep(TEXT("p.Chaos.DebugDraw.GeometryCollectionReplication"), bGeometryCollectionDebugDrawRep, TEXT("If true debug draw deltas and corrections for geometry collection replication")) ( TEXT("p.Chaos.DebugDraw.GeometryCollectionReplication")  ,
bGeometryCollectionDebugDrawRep  ,
TEXT("If true debug draw deltas and corrections for geometry collection replication"  
)

◆ CVarGeometryCollectionEmitRootBreakingEvent

FAutoConsoleVariableRef CVarGeometryCollectionEmitRootBreakingEvent(TEXT("p.Chaos.GC.EmitRootBreakingEvent"), GeometryCollectionEmitRootBreakingEvent, TEXT("When true send a breaking event when root is breaking")) ( TEXT("p.Chaos.GC.EmitRootBreakingEvent")  ,
GeometryCollectionEmitRootBreakingEvent  ,
TEXT("When true send a breaking event when root is breaking"  
)

◆ CVarGeometryCollectionHardMissingUpdatesSnapThreshold

FAutoConsoleVariableRef CVarGeometryCollectionHardMissingUpdatesSnapThreshold(TEXT("p.GeometryCollectionHardMissingUpdatesSnapThreshold"), GeometryCollectionHardMissingUpdatesSnapThreshold, TEXT("Determines how many missing updates before we trigger a hard snap")) ( TEXT("p.GeometryCollectionHardMissingUpdatesSnapThreshold")  ,
GeometryCollectionHardMissingUpdatesSnapThreshold  ,
TEXT("Determines how many missing updates before we trigger a hard snap"  
)

◆ CVarGeometryCollectionHardsnapThresholdMs

FAutoConsoleVariableRef CVarGeometryCollectionHardsnapThresholdMs(TEXT("p.GeometryCollectionHardsnapThresholdMs"), GeometryCollectionHardMissingUpdatesSnapThreshold, TEXT("Determines how many ms since the last hardsnap to trigger a new one")) ( TEXT("p.GeometryCollectionHardsnapThresholdMs")  ,
GeometryCollectionHardMissingUpdatesSnapThreshold  ,
TEXT("Determines how many ms since the last hardsnap to trigger a new one"  
)

◆ CVarGeometryCollectionNanite

FAutoConsoleVariableRef CVarGeometryCollectionNanite(TEXT("r.GeometryCollection.Nanite"), GGeometryCollectionNanite, TEXT("Render geometry collections using Nanite."), FConsoleVariableDelegate::CreateLambda([](IConsoleVariable *InVariable) { FGlobalComponentRecreateRenderStateContext Context; }), ECVF_RenderThreadSafe) ( TEXT("r.GeometryCollection.Nanite")  ,
GGeometryCollectionNanite  ,
TEXT("Render geometry collections using Nanite." ,
FConsoleVariableDelegate::CreateLambda([](IConsoleVariable *InVariable) { FGlobalComponentRecreateRenderStateContext Context;})  ,
ECVF_RenderThreadSafe   
)

◆ CVarGeometryCollectionNavigationSizeThreshold

FAutoConsoleVariableRef CVarGeometryCollectionNavigationSizeThreshold(TEXT("p.GeometryCollectionNavigationSizeThreshold"), GGeometryCollectionNavigationSizeThreshold, TEXT("Size in CM used as a threshold for whether a geometry in the collection is collected and exported for navigation purposes. Measured as the diagonal of the leaf node bounds.")) ( TEXT("p.GeometryCollectionNavigationSizeThreshold")  ,
GGeometryCollectionNavigationSizeThreshold  ,
TEXT("Size in CM used as a threshold for whether a geometry in the collection is collected and exported for navigation purposes. Measured as the diagonal of the leaf node bounds."  
)

◆ CVarGeometryCollectionNetAwakeningMode

FAutoConsoleVariableRef CVarGeometryCollectionNetAwakeningMode(TEXT("p.Chaos.GC.NetAwakeningMode"), GeometryCollectionNetAwakeningMode, TEXT("Changes how GC components ensure that their owner is awake for replication. 0 = ForceDormancyAwake, 1 = Use Flush Net Dormancy")) ( TEXT("p.Chaos.GC.NetAwakeningMode")  ,
GeometryCollectionNetAwakeningMode  ,
TEXT("Changes how GC components ensure that their owner is awake for replication. 0 = ForceDormancyAwake, 1 = Use Flush Net Dormancy"  
)

◆ CVarGeometryCollectionRemovalTimerMultiplier

FAutoConsoleVariableRef CVarGeometryCollectionRemovalTimerMultiplier(TEXT("p.Chaos.GC.RemovalTimerMultiplier"), GeometryCollectionRemovalMultiplier, TEXT("Multiplier for the removal time evaluation ( > 1 : faster removal , > 1 slower")) ( TEXT("p.Chaos.GC.RemovalTimerMultiplier")  ,
GeometryCollectionRemovalMultiplier   
)

◆ CVarGeometryCollectionRemoveOnBreakDecayFix

FAutoConsoleVariableRef CVarGeometryCollectionRemoveOnBreakDecayFix(TEXT("p.Chaos.GC.RemoveOnBreakDecayFix"), bGeometryCollectionRemoveOnBreakDecayFix, TEXT("When true, fix the issue causing a remove on break cluster crumbling with simulating children from disappearing for several frames")) ( TEXT("p.Chaos.GC.RemoveOnBreakDecayFix")  ,
bGeometryCollectionRemoveOnBreakDecayFix  ,
TEXT("When true, fix the issue causing a remove on break cluster crumbling with simulating children from disappearing for several frames"  
)

◆ CVarGeometryCollectionRepAngularMatchTime

FAutoConsoleVariableRef CVarGeometryCollectionRepAngularMatchTime(TEXT("p.GeometryCollectionRepAngularMatchTime"), GeometryCollectionRepAngularMatchTime, TEXT("In seconds, how quickly should the angle match the replicated target angle")) ( TEXT("p.GeometryCollectionRepAngularMatchTime")  ,
GeometryCollectionRepAngularMatchTime  ,
TEXT("In seconds, how quickly should the angle match the replicated target angle"  
)

◆ CVarGeometryCollectionRepLinearMatchStrength

FAutoConsoleVariableRef CVarGeometryCollectionRepLinearMatchStrength(TEXT("p.GeometryCollectionRepLinearMatchStrength"), GeometryCollectionRepLinearMatchStrength, TEXT("Units can be interpreted as %/s^2 - acceleration of percent linear correction")) ( TEXT("p.GeometryCollectionRepLinearMatchStrength")  ,
GeometryCollectionRepLinearMatchStrength  ,
TEXT("Units can be interpreted as %/s^2 - acceleration of percent linear correction"  
)

◆ CVarGeometryCollectionRepMaxExtrapolationTime

FAutoConsoleVariableRef CVarGeometryCollectionRepMaxExtrapolationTime(TEXT("p.GeometryCollectionRepMaxExtrapolationTime"), GeometryCollectionRepMaxExtrapolationTime, TEXT("Number of seconds that replicated physics data will persist for a GC, extrapolating velocities")) ( TEXT("p.GeometryCollectionRepMaxExtrapolationTime")  ,
GeometryCollectionRepMaxExtrapolationTime  ,
TEXT("Number of seconds that replicated physics data will persist for a GC, extrapolating velocities"  
)

◆ CVarGeometryCollectionRepUseClusterVelocityMatch

FAutoConsoleVariableRef CVarGeometryCollectionRepUseClusterVelocityMatch(TEXT("p.bGeometryCollectionRepUseClusterVelocityMatch"), bGeometryCollectionRepUseClusterVelocityMatch, TEXT("Use physical velocity to match cluster states")) ( TEXT("p.bGeometryCollectionRepUseClusterVelocityMatch")  ,
bGeometryCollectionRepUseClusterVelocityMatch  ,
TEXT("Use physical velocity to match cluster states"  
)

◆ CVarGeometryCollectionSingleThreadedBoundsCalculation

FAutoConsoleVariableRef CVarGeometryCollectionSingleThreadedBoundsCalculation(TEXT("p.GeometryCollectionSingleThreadedBoundsCalculation"), bGeometryCollectionSingleThreadedBoundsCalculation, TEXT("[Debug Only] Single threaded bounds calculation. [def:false]")) ( TEXT("p.GeometryCollectionSingleThreadedBoundsCalculation")  ,
bGeometryCollectionSingleThreadedBoundsCalculation  ,
TEXT("[Debug Only] Single threaded bounds calculation. [def:false]")   
)

◆ CVarGeometryCollectionUseReplicationV2

FAutoConsoleVariableRef CVarGeometryCollectionUseReplicationV2(TEXT("p.Chaos.GC.UseReplicationV2"), GeometryCollectionUseReplicationV2, TEXT("When true use new replication data model")) ( TEXT("p.Chaos.GC.UseReplicationV2")  ,
GeometryCollectionUseReplicationV2  ,
TEXT("When true use new replication data model"  
)

◆ CVarMaxGeometryCollectionAsyncPhysicsTickIdleTimeMs

FAutoConsoleVariableRef CVarMaxGeometryCollectionAsyncPhysicsTickIdleTimeMs(TEXT("p.Chaos.GC.MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs"), MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs, TEXT("Amount of time in milliseconds before the async tick turns off when it is otherwise not doing anything.")) ( TEXT("p.Chaos.GC.MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs")  ,
MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs  ,
TEXT("Amount of time in milliseconds before the async tick turns off when it is otherwise not doing anything."  
)

◆ ForcedBroken

struct _ForcedBroken ForcedBroken

◆ GDynamicDataPool

FGeometryCollectionDynamicDataPool GDynamicDataPool
extern

◆ GeometryCollectionCreatePhysicsStateInEditor

bool GeometryCollectionCreatePhysicsStateInEditor = false

◆ GeometryCollectionEmitRootBreakingEvent

bool GeometryCollectionEmitRootBreakingEvent = false

◆ GeometryCollectionHardMissingUpdatesSnapThreshold

int32 GeometryCollectionHardMissingUpdatesSnapThreshold = 20

◆ GeometryCollectionHardsnapThresholdMs

int32 GeometryCollectionHardsnapThresholdMs = 100

◆ GeometryCollectionNetAwakeningMode

int32 GeometryCollectionNetAwakeningMode = 1

◆ GeometryCollectionRemovalMultiplier

float GeometryCollectionRemovalMultiplier = 1.0f

◆ GeometryCollectionRepAngularMatchTime

float GeometryCollectionRepAngularMatchTime = .5f

◆ GeometryCollectionRepLinearMatchStrength

float GeometryCollectionRepLinearMatchStrength = 50

◆ GeometryCollectionRepMaxExtrapolationTime

float GeometryCollectionRepMaxExtrapolationTime = 3.f

◆ GeometryCollectionUseReplicationV2

bool GeometryCollectionUseReplicationV2 = true

◆ GGeometryCollectionNanite

int32 GGeometryCollectionNanite = 1

◆ GGeometryCollectionNavigationSizeThreshold

float GGeometryCollectionNavigationSizeThreshold = 20.0f

◆ MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs

int32 MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs = 30