---@meta

---@class APhysicsControlActor : AActor
---@field ControlComponent UPhysicsControlComponent
---@field ControlInitializerComponent UPhysicsControlInitializerComponent
local APhysicsControlActor = {}



---@class FAnimNode_RigidBodyWithControl : FAnimNode_SkeletalControlBase
---@field OverridePhysicsAsset UPhysicsAsset
---@field bDefaultToSkeletalMeshPhysicsAsset boolean
---@field OverrideWorldGravity FVector
---@field ExternalForce FVector
---@field ComponentLinearAccScale FVector
---@field ComponentLinearVelScale FVector
---@field ComponentAppliedLinearAccClamp FVector
---@field SimSpaceSettings FSimSpaceSettings
---@field CachedBoundsScale float
---@field bUpdateCacheEveryFrame boolean
---@field BaseBoneRef FBoneReference
---@field OverlapChannel ECollisionChannel
---@field SimulationSpace ESimulationSpace
---@field bCalculateVelocitiesForWorldGeometry boolean
---@field bForceDisableCollisionBetweenConstraintBodies boolean
---@field bUseExternalClothCollision boolean
---@field bMakeKinematicConstraints boolean
---@field bEnableWorldGeometry boolean
---@field bOverrideWorldGravity boolean
---@field bTransferBoneVelocities boolean
---@field bFreezeIncomingPoseOnStart boolean
---@field PhysicsAssetConditioningConstraintPosition MapConstraintsBehaviorType
---@field PhysicsAssetConditioningConstraintOrientation MapConstraintsBehaviorType
---@field WorldSpaceMinimumScale float
---@field EvaluationResetTime float
---@field bEnableControls boolean
---@field PhysicsControlAsset UPhysicsControlAsset
---@field BoneToBodyNameMap TMap<FName, FName>
---@field CharacterSetupData FPhysicsControlCharacterSetupData
---@field bEnableCharacterSetupData boolean
---@field AdditionalControlsAndBodyModifiers FPhysicsControlAndBodyModifierCreationDatas
---@field AdditionalSets FPhysicsControlSetUpdates
---@field InitialControlAndBodyModifierUpdates FPhysicsControlControlAndModifierParameters
---@field ControlAndModifierParameters FPhysicsControlControlAndModifierParameters
---@field ControlAndModifierUpdates FPhysicsControlControlAndModifierUpdates
---@field ControlTargets FRigidBodyControlTargets
---@field KinematicTargets FRigidBodyKinematicTargets
---@field PhysicsAssetAuthoredSkeletalMesh USkeletalMesh
---@field ConstraintProfile FName
---@field ControlProfile FName
---@field SimulationTiming ESimulationTiming
local FAnimNode_RigidBodyWithControl = {}



---@class FInitialBodyModifier
---@field Actor TWeakObjectPtr<AActor>
---@field MeshComponentName FName
---@field BoneName FName
---@field BodyModifierData FPhysicsControlModifierData
---@field KinematicTargetPosition FVector
---@field KinematicTargetOrientation FRotator
local FInitialBodyModifier = {}



---@class FInitialCharacterControls
---@field CharacterActor TWeakObjectPtr<AActor>
---@field SkeletalMeshComponentName FName
---@field LimbSetupData TArray<FPhysicsControlLimbSetupData>
---@field WorldSpaceControlData FPhysicsControlData
---@field ParentSpaceControlData FPhysicsControlData
---@field BodyModifierData FPhysicsControlModifierData
local FInitialCharacterControls = {}



---@class FInitialPhysicsControl
---@field ParentActor TWeakObjectPtr<AActor>
---@field ParentMeshComponentName FName
---@field ParentBoneName FName
---@field ChildActor TWeakObjectPtr<AActor>
---@field ChildMeshComponentName FName
---@field ChildBoneName FName
---@field ControlData FPhysicsControlData
---@field ControlMultiplier FPhysicsControlMultiplier
---@field ControlTarget FPhysicsControlTarget
local FInitialPhysicsControl = {}



---@class FPhysicsBodyModifier
---@field BoneName FName
---@field ModifierData FPhysicsControlModifierData
local FPhysicsBodyModifier = {}



---@class FPhysicsBodyModifierCreationData
---@field Modifier FPhysicsBodyModifier
---@field Sets TArray<FName>
local FPhysicsBodyModifierCreationData = {}



---@class FPhysicsControl
---@field ParentBoneName FName
---@field ChildBoneName FName
---@field ControlData FPhysicsControlData
---@field ControlMultiplier FPhysicsControlMultiplier
local FPhysicsControl = {}



---@class FPhysicsControlAndBodyModifierCreationDatas
---@field Controls TMap<FName, FPhysicsControlCreationData>
---@field Modifiers TMap<FName, FPhysicsBodyModifierCreationData>
local FPhysicsControlAndBodyModifierCreationDatas = {}



---@class FPhysicsControlCharacterSetupData
---@field LimbSetupData TArray<FPhysicsControlLimbSetupData>
---@field DefaultWorldSpaceControlData FPhysicsControlData
---@field DefaultParentSpaceControlData FPhysicsControlData
---@field DefaultBodyModifierData FPhysicsControlModifierData
local FPhysicsControlCharacterSetupData = {}



---@class FPhysicsControlControlAndModifierParameters
---@field ControlParameters TArray<FPhysicsControlNamedControlParameters>
---@field ControlMultiplierParameters TArray<FPhysicsControlNamedControlMultiplierParameters>
---@field ModifierParameters TArray<FPhysicsControlNamedModifierParameters>
local FPhysicsControlControlAndModifierParameters = {}



---@class FPhysicsControlControlAndModifierUpdates
---@field ControlUpdates TArray<FPhysicsControlNamedControlParameters>
---@field ControlMultiplierUpdates TArray<FPhysicsControlNamedControlMultiplierParameters>
---@field ModifierUpdates TArray<FPhysicsControlNamedModifierParameters>
local FPhysicsControlControlAndModifierUpdates = {}



---@class FPhysicsControlCreationData
---@field Control FPhysicsControl
---@field Sets TArray<FName>
local FPhysicsControlCreationData = {}



---@class FPhysicsControlData
---@field LinearStrength float
---@field LinearDampingRatio float
---@field LinearExtraDamping float
---@field MaxForce float
---@field AngularStrength float
---@field AngularDampingRatio float
---@field AngularExtraDamping float
---@field MaxTorque float
---@field LinearTargetVelocityMultiplier float
---@field AngularTargetVelocityMultiplier float
---@field SkeletalAnimationVelocityMultiplier float
---@field CustomControlPoint FVector
---@field bEnabled boolean
---@field bUseCustomControlPoint boolean
---@field bUseSkeletalAnimation boolean
---@field bDisableCollision boolean
---@field bOnlyControlChildObject boolean
local FPhysicsControlData = {}



---@class FPhysicsControlLimbBones
local FPhysicsControlLimbBones = {}


---@class FPhysicsControlLimbSetupData
---@field LimbName FName
---@field StartBone FName
---@field bIncludeParentBone boolean
---@field bCreateWorldSpaceControls boolean
---@field bCreateParentSpaceControls boolean
---@field bCreateBodyModifiers boolean
local FPhysicsControlLimbSetupData = {}



---@class FPhysicsControlModifierData
---@field MovementType EPhysicsMovementType
---@field CollisionType ECollisionEnabled::Type
---@field GravityMultiplier float
---@field PhysicsBlendWeight float
---@field bUseSkeletalAnimation boolean
---@field bUpdateKinematicFromSimulation boolean
local FPhysicsControlModifierData = {}



---@class FPhysicsControlModifierSparseData
---@field MovementType EPhysicsMovementType
---@field CollisionType ECollisionEnabled::Type
---@field GravityMultiplier float
---@field PhysicsBlendWeight float
---@field bUseSkeletalAnimation boolean
---@field bUpdateKinematicFromSimulation boolean
---@field bEnableMovementType boolean
---@field bEnableCollisionType boolean
---@field bEnableGravityMultiplier boolean
---@field bEnablePhysicsBlendWeight boolean
---@field bEnablebUseSkeletalAnimation boolean
---@field bEnablebUpdateKinematicFromSimulation boolean
local FPhysicsControlModifierSparseData = {}



---@class FPhysicsControlMultiplier
---@field LinearStrengthMultiplier FVector
---@field LinearDampingRatioMultiplier FVector
---@field LinearExtraDampingMultiplier FVector
---@field MaxForceMultiplier FVector
---@field AngularStrengthMultiplier float
---@field AngularDampingRatioMultiplier float
---@field AngularExtraDampingMultiplier float
---@field MaxTorqueMultiplier float
local FPhysicsControlMultiplier = {}



---@class FPhysicsControlNamedControlMultiplierParameters
---@field Name FName
---@field Data FPhysicsControlSparseMultiplier
local FPhysicsControlNamedControlMultiplierParameters = {}



---@class FPhysicsControlNamedControlParameters
---@field Name FName
---@field Data FPhysicsControlSparseData
local FPhysicsControlNamedControlParameters = {}



---@class FPhysicsControlNamedModifierParameters
---@field Name FName
---@field Data FPhysicsControlModifierSparseData
local FPhysicsControlNamedModifierParameters = {}



---@class FPhysicsControlNames
---@field Names TArray<FName>
local FPhysicsControlNames = {}



---@class FPhysicsControlSetUpdate
---@field SetName FName
---@field Names TArray<FName>
local FPhysicsControlSetUpdate = {}



---@class FPhysicsControlSetUpdates
---@field ControlSetUpdates TArray<FPhysicsControlSetUpdate>
---@field ModifierSetUpdates TArray<FPhysicsControlSetUpdate>
local FPhysicsControlSetUpdates = {}



---@class FPhysicsControlSparseData
---@field LinearStrength float
---@field LinearDampingRatio float
---@field LinearExtraDamping float
---@field MaxForce float
---@field AngularStrength float
---@field AngularDampingRatio float
---@field AngularExtraDamping float
---@field MaxTorque float
---@field LinearTargetVelocityMultiplier float
---@field AngularTargetVelocityMultiplier float
---@field SkeletalAnimationVelocityMultiplier float
---@field CustomControlPoint FVector
---@field bEnabled boolean
---@field bUseCustomControlPoint boolean
---@field bUseSkeletalAnimation boolean
---@field bDisableCollision boolean
---@field bOnlyControlChildObject boolean
---@field bEnableLinearStrength boolean
---@field bEnableLinearDampingRatio boolean
---@field bEnableLinearExtraDamping boolean
---@field bEnableMaxForce boolean
---@field bEnableAngularStrength boolean
---@field bEnableAngularDampingRatio boolean
---@field bEnableAngularExtraDamping boolean
---@field bEnableMaxTorque boolean
---@field bEnableLinearTargetVelocityMultiplier boolean
---@field bEnableAngularTargetVelocityMultiplier boolean
---@field bEnableSkeletalAnimationVelocityMultiplier boolean
---@field bEnableCustomControlPoint boolean
---@field bEnablebEnabled boolean
---@field bEnablebUseCustomControlPoint boolean
---@field bEnablebUseSkeletalAnimation boolean
---@field bEnablebDisableCollision boolean
---@field bEnablebOnlyControlChildObject boolean
local FPhysicsControlSparseData = {}



---@class FPhysicsControlSparseMultiplier
---@field LinearStrengthMultiplier FVector
---@field LinearDampingRatioMultiplier FVector
---@field LinearExtraDampingMultiplier FVector
---@field MaxForceMultiplier FVector
---@field AngularStrengthMultiplier float
---@field AngularDampingRatioMultiplier float
---@field AngularExtraDampingMultiplier float
---@field MaxTorqueMultiplier float
---@field bEnableLinearStrengthMultiplier boolean
---@field bEnableLinearDampingRatioMultiplier boolean
---@field bEnableLinearExtraDampingMultiplier boolean
---@field bEnableMaxForceMultiplier boolean
---@field bEnableAngularStrengthMultiplier boolean
---@field bEnableAngularDampingRatioMultiplier boolean
---@field bEnableAngularExtraDampingMultiplier boolean
---@field bEnableMaxTorqueMultiplier boolean
local FPhysicsControlSparseMultiplier = {}



---@class FPhysicsControlTarget
---@field TargetPosition FVector
---@field TargetVelocity FVector
---@field TargetOrientation FRotator
---@field TargetAngularVelocity FVector
---@field bApplyControlPointToTarget boolean
local FPhysicsControlTarget = {}



---@class FRigidBodyControlTarget
---@field TargetPosition FVector
---@field TargetOrientation FRotator
local FRigidBodyControlTarget = {}



---@class FRigidBodyControlTargets
---@field Targets TMap<FName, FRigidBodyControlTarget>
local FRigidBodyControlTargets = {}



---@class FRigidBodyKinematicTarget
---@field TargetPosition FVector
---@field TargetOrientation FRotator
---@field bUseSkeletalAnimation boolean
local FRigidBodyKinematicTarget = {}



---@class FRigidBodyKinematicTargets
---@field Targets TMap<FName, FRigidBodyKinematicTarget>
local FRigidBodyKinematicTargets = {}



---@class FRigidBodyWithControlReference : FAnimNodeReference
local FRigidBodyWithControlReference = {}


---@class UPhysicsControlAsset : UObject
---@field CharacterSetupData FPhysicsControlCharacterSetupData
---@field AdditionalControlsAndModifiers FPhysicsControlAndBodyModifierCreationDatas
---@field AdditionalSets FPhysicsControlSetUpdates
---@field InitialControlAndModifierUpdates TArray<FPhysicsControlControlAndModifierUpdates>
---@field Profiles TMap<FName, FPhysicsControlControlAndModifierUpdates>
local UPhysicsControlAsset = {}



---@class UPhysicsControlBPLibrary : UBlueprintFunctionLibrary
local UPhysicsControlBPLibrary = {}

---@param Node FRigidBodyWithControlReference
---@param PhysicsAsset UPhysicsAsset
---@return FRigidBodyWithControlReference
function UPhysicsControlBPLibrary:SetOverridePhysicsAsset(Node, PhysicsAsset) end
---@param RigidBodyWithControl FRigidBodyWithControlReference
---@param SetName FName
---@return TArray<FName>
function UPhysicsControlBPLibrary:GetControlNamesInSet(RigidBodyWithControl, SetName) end
---@param RigidBodyWithControl FRigidBodyWithControlReference
---@param SetName FName
---@return TArray<FName>
function UPhysicsControlBPLibrary:GetBodyModifierNamesInSet(RigidBodyWithControl, SetName) end
---@param Node FAnimNodeReference
---@param RigidBodyWithControl FRigidBodyWithControlReference
---@param Result boolean
function UPhysicsControlBPLibrary:ConvertToRigidBodyWithControlPure(Node, RigidBodyWithControl, Result) end
---@param Node FAnimNodeReference
---@param Result EAnimNodeReferenceConversionResult
---@return FRigidBodyWithControlReference
function UPhysicsControlBPLibrary:ConvertToRigidBodyWithControl(Node, Result) end
---@param InParametersA FPhysicsControlControlAndModifierParameters
---@param InParametersB FPhysicsControlControlAndModifierParameters
---@param InInterpolationWeight float
---@param OutParameters FPhysicsControlControlAndModifierParameters
function UPhysicsControlBPLibrary:BlendParameters(InParametersA, InParametersB, InInterpolationWeight, OutParameters) end
---@param InParameters FPhysicsControlControlAndModifierParameters
---@param InStartModifierParameters FPhysicsControlNamedModifierParameters
---@param InEndModifierParameters FPhysicsControlNamedModifierParameters
---@param ModifierNames TArray<FName>
---@param OutParameters FPhysicsControlControlAndModifierParameters
function UPhysicsControlBPLibrary:BlendModifierParametersThroughSet(InParameters, InStartModifierParameters, InEndModifierParameters, ModifierNames, OutParameters) end
---@param InParameters FPhysicsControlControlAndModifierParameters
---@param InStartControlParameters FPhysicsControlNamedControlParameters
---@param InEndControlParameters FPhysicsControlNamedControlParameters
---@param ControlNames TArray<FName>
---@param OutParameters FPhysicsControlControlAndModifierParameters
function UPhysicsControlBPLibrary:BlendControlParametersThroughSet(InParameters, InStartControlParameters, InEndControlParameters, ControlNames, OutParameters) end
---@param InParameters FPhysicsControlControlAndModifierParameters
---@param OutParameters FPhysicsControlControlAndModifierParameters
---@param Names TArray<FName>
---@param ModifierData FPhysicsControlModifierSparseData
function UPhysicsControlBPLibrary:AddMultipleModifierParameters(InParameters, OutParameters, Names, ModifierData) end
---@param InParameters FPhysicsControlControlAndModifierParameters
---@param OutParameters FPhysicsControlControlAndModifierParameters
---@param Names TArray<FName>
---@param ControlData FPhysicsControlSparseData
function UPhysicsControlBPLibrary:AddMultipleControlParameters(InParameters, OutParameters, Names, ControlData) end
---@param InParameters FPhysicsControlControlAndModifierParameters
---@param OutParameters FPhysicsControlControlAndModifierParameters
---@param Name FName
---@param ModifierData FPhysicsControlModifierSparseData
function UPhysicsControlBPLibrary:AddModifierParameters(InParameters, OutParameters, Name, ModifierData) end
---@param InParameters FPhysicsControlControlAndModifierParameters
---@param OutParameters FPhysicsControlControlAndModifierParameters
---@param Name FName
---@param ControlData FPhysicsControlSparseData
function UPhysicsControlBPLibrary:AddControlParameters(InParameters, OutParameters, Name, ControlData) end


---@class UPhysicsControlComponent : USceneComponent
---@field PhysicsControlAsset TSoftObjectPtr<UPhysicsControlAsset>
---@field TeleportDistanceThreshold float
---@field TeleportRotationThreshold float
---@field bShowDebugVisualization boolean
---@field VisualizationSizeScale float
---@field bShowDebugControlList boolean
---@field DebugControlDetailFilter FString
---@field bShowDebugBodyModifierList boolean
---@field DebugBodyModifierDetailFilter FString
---@field VelocityPredictionTime float
---@field MaxNumControlsOrModifiersPerName int32
---@field bWarnAboutInvalidNames boolean
local UPhysicsControlComponent = {}

---@param DeltaTime float
function UPhysicsControlComponent:UpdateTargetCaches(DeltaTime) end
---@param DeltaTime float
function UPhysicsControlComponent:UpdateControls(DeltaTime) end
---@param Name FName
---@param bUseSkeletalAnimation boolean
---@param SkeletalAnimationVelocityMultiplier float
---@return boolean
function UPhysicsControlComponent:SetControlUseSkeletalAnimation(Name, bUseSkeletalAnimation, SkeletalAnimationVelocityMultiplier) end
---@param Set FName
---@param ControlTarget FPhysicsControlTarget
---@param bEnableControl boolean
function UPhysicsControlComponent:SetControlTargetsInSet(Set, ControlTarget, bEnableControl) end
---@param Names TArray<FName>
---@param ControlTarget FPhysicsControlTarget
---@param bEnableControl boolean
function UPhysicsControlComponent:SetControlTargets(Names, ControlTarget, bEnableControl) end
---@param SetName FName
---@param Position FVector
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
function UPhysicsControlComponent:SetControlTargetPositionsInSet(SetName, Position, VelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Names TArray<FName>
---@param Positions TArray<FVector>
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
---@return boolean
function UPhysicsControlComponent:SetControlTargetPositionsFromArray(Names, Positions, VelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param SetName FName
---@param Position FVector
---@param Orientation FRotator
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
function UPhysicsControlComponent:SetControlTargetPositionsAndOrientationsInSet(SetName, Position, Orientation, VelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Names TArray<FName>
---@param Positions TArray<FVector>
---@param Orientations TArray<FRotator>
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
---@return boolean
function UPhysicsControlComponent:SetControlTargetPositionsAndOrientationsFromArray(Names, Positions, Orientations, VelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Names TArray<FName>
---@param Position FVector
---@param Orientation FRotator
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
function UPhysicsControlComponent:SetControlTargetPositionsAndOrientations(Names, Position, Orientation, VelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Names TArray<FName>
---@param Position FVector
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
function UPhysicsControlComponent:SetControlTargetPositions(Names, Position, VelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Name FName
---@param Position FVector
---@param Orientation FRotator
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
---@return boolean
function UPhysicsControlComponent:SetControlTargetPositionAndOrientation(Name, Position, Orientation, VelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Name FName
---@param Position FVector
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
---@return boolean
function UPhysicsControlComponent:SetControlTargetPosition(Name, Position, VelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Name FName
---@param ParentPosition FVector
---@param ParentOrientation FRotator
---@param ChildPosition FVector
---@param ChildOrientation FRotator
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@return boolean
function UPhysicsControlComponent:SetControlTargetPoses(Name, ParentPosition, ParentOrientation, ChildPosition, ChildOrientation, VelocityDeltaTime, bEnableControl) end
---@param SetName FName
---@param Orientation FRotator
---@param AngularVelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
function UPhysicsControlComponent:SetControlTargetOrientationsInSet(SetName, Orientation, AngularVelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Names TArray<FName>
---@param Orientations TArray<FRotator>
---@param VelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
---@return boolean
function UPhysicsControlComponent:SetControlTargetOrientationsFromArray(Names, Orientations, VelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Names TArray<FName>
---@param Orientation FRotator
---@param AngularVelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
function UPhysicsControlComponent:SetControlTargetOrientations(Names, Orientation, AngularVelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Name FName
---@param Orientation FRotator
---@param AngularVelocityDeltaTime float
---@param bEnableControl boolean
---@param bApplyControlPointToTarget boolean
---@return boolean
function UPhysicsControlComponent:SetControlTargetOrientation(Name, Orientation, AngularVelocityDeltaTime, bEnableControl, bApplyControlPointToTarget) end
---@param Name FName
---@param ControlTarget FPhysicsControlTarget
---@param bEnableControl boolean
---@return boolean
function UPhysicsControlComponent:SetControlTarget(Name, ControlTarget, bEnableControl) end
---@param Names TArray<FName>
---@param bUseSkeletalAnimation boolean
---@param SkeletalAnimationVelocityMultiplier float
function UPhysicsControlComponent:SetControlsUseSkeletalAnimation(Names, bUseSkeletalAnimation, SkeletalAnimationVelocityMultiplier) end
---@param Set FName
---@param ControlMultiplier FPhysicsControlSparseMultiplier
---@param bEnableControl boolean
function UPhysicsControlComponent:SetControlSparseMultipliersInSet(Set, ControlMultiplier, bEnableControl) end
---@param Names TArray<FName>
---@param ControlMultiplier FPhysicsControlSparseMultiplier
---@param bEnableControl boolean
function UPhysicsControlComponent:SetControlSparseMultipliers(Names, ControlMultiplier, bEnableControl) end
---@param Name FName
---@param ControlMultiplier FPhysicsControlSparseMultiplier
---@param bEnableControl boolean
---@return boolean
function UPhysicsControlComponent:SetControlSparseMultiplier(Name, ControlMultiplier, bEnableControl) end
---@param Set FName
---@param ControlData FPhysicsControlSparseData
function UPhysicsControlComponent:SetControlSparseDatasInSet(Set, ControlData) end
---@param Names TArray<FName>
---@param ControlData FPhysicsControlSparseData
function UPhysicsControlComponent:SetControlSparseDatas(Names, ControlData) end
---@param Name FName
---@param ControlData FPhysicsControlSparseData
---@return boolean
function UPhysicsControlComponent:SetControlSparseData(Name, ControlData) end
---@param Set FName
---@param bUseSkeletalAnimation boolean
---@param SkeletalAnimationVelocityMultiplier float
function UPhysicsControlComponent:SetControlsInSetUseSkeletalAnimation(Set, bUseSkeletalAnimation, SkeletalAnimationVelocityMultiplier) end
---@param Set FName
---@param bEnable boolean
function UPhysicsControlComponent:SetControlsInSetEnabled(Set, bEnable) end
---@param Set FName
---@param bDisableCollision boolean
function UPhysicsControlComponent:SetControlsInSetDisableCollision(Set, bDisableCollision) end
---@param Names TArray<FName>
---@param bEnable boolean
function UPhysicsControlComponent:SetControlsEnabled(Names, bEnable) end
---@param Names TArray<FName>
---@param bDisableCollision boolean
function UPhysicsControlComponent:SetControlsDisableCollision(Names, bDisableCollision) end
---@param Name FName
---@param Position FVector
---@return boolean
function UPhysicsControlComponent:SetControlPoint(Name, Position) end
---@param Set FName
---@param ParentComponent UPrimitiveComponent
---@param ParentBoneName FName
function UPhysicsControlComponent:SetControlParentsInSet(Set, ParentComponent, ParentBoneName) end
---@param Names TArray<FName>
---@param ParentComponent UPrimitiveComponent
---@param ParentBoneName FName
function UPhysicsControlComponent:SetControlParents(Names, ParentComponent, ParentBoneName) end
---@param Name FName
---@param ParentComponent UPrimitiveComponent
---@param ParentBoneName FName
---@return boolean
function UPhysicsControlComponent:SetControlParent(Name, ParentComponent, ParentBoneName) end
---@param Set FName
---@param ControlMultiplier FPhysicsControlMultiplier
---@param bEnableControl boolean
function UPhysicsControlComponent:SetControlMultipliersInSet(Set, ControlMultiplier, bEnableControl) end
---@param Names TArray<FName>
---@param ControlMultiplier FPhysicsControlMultiplier
---@param bEnableControl boolean
function UPhysicsControlComponent:SetControlMultipliers(Names, ControlMultiplier, bEnableControl) end
---@param Name FName
---@param ControlMultiplier FPhysicsControlMultiplier
---@param bEnableControl boolean
---@return boolean
function UPhysicsControlComponent:SetControlMultiplier(Name, ControlMultiplier, bEnableControl) end
---@param Name FName
---@param Strength float
---@param DampingRatio float
---@param ExtraDamping float
---@param MaxForce float
---@param bEnableControl boolean
---@return boolean
function UPhysicsControlComponent:SetControlLinearData(Name, Strength, DampingRatio, ExtraDamping, MaxForce, bEnableControl) end
---@param Name FName
---@param bEnable boolean
---@return boolean
function UPhysicsControlComponent:SetControlEnabled(Name, bEnable) end
---@param Name FName
---@param bDisableCollision boolean
---@return boolean
function UPhysicsControlComponent:SetControlDisableCollision(Name, bDisableCollision) end
---@param Set FName
---@param ControlData FPhysicsControlData
function UPhysicsControlComponent:SetControlDatasInSet(Set, ControlData) end
---@param Names TArray<FName>
---@param ControlData FPhysicsControlData
function UPhysicsControlComponent:SetControlDatas(Names, ControlData) end
---@param Name FName
---@param ControlData FPhysicsControlData
---@return boolean
function UPhysicsControlComponent:SetControlData(Name, ControlData) end
---@param Name FName
---@param Strength float
---@param DampingRatio float
---@param ExtraDamping float
---@param MaxTorque float
---@param bEnableControl boolean
---@return boolean
function UPhysicsControlComponent:SetControlAngularData(Name, Strength, DampingRatio, ExtraDamping, MaxTorque, bEnableControl) end
function UPhysicsControlComponent:SetCachedBoneVelocitiesToZero() end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneName FName
---@param TM FTransform
---@return boolean
function UPhysicsControlComponent:SetCachedBoneData(SkeletalMeshComponent, BoneName, TM) end
---@param Name FName
---@param bUseSkeletalAnimation boolean
---@return boolean
function UPhysicsControlComponent:SetBodyModifierUseSkeletalAnimation(Name, bUseSkeletalAnimation) end
---@param Name FName
---@param bUpdateKinematicFromSimulation boolean
---@return boolean
function UPhysicsControlComponent:SetBodyModifierUpdateKinematicFromSimulation(Name, bUpdateKinematicFromSimulation) end
---@param Names TArray<FName>
---@param bUseSkeletalAnimation boolean
function UPhysicsControlComponent:SetBodyModifiersUseSkeletalAnimation(Names, bUseSkeletalAnimation) end
---@param Names TArray<FName>
---@param bUpdateKinematicFromSimulation boolean
function UPhysicsControlComponent:SetBodyModifiersUpdateKinematicFromSimulation(Names, bUpdateKinematicFromSimulation) end
---@param Names TArray<FName>
---@param PhysicsBlendWeight float
function UPhysicsControlComponent:SetBodyModifiersPhysicsBlendWeight(Names, PhysicsBlendWeight) end
---@param Set FName
---@param ModifierData FPhysicsControlModifierSparseData
function UPhysicsControlComponent:SetBodyModifierSparseDatasInSet(Set, ModifierData) end
---@param Names TArray<FName>
---@param ModifierData FPhysicsControlModifierSparseData
function UPhysicsControlComponent:SetBodyModifierSparseDatas(Names, ModifierData) end
---@param Name FName
---@param ModifierData FPhysicsControlModifierSparseData
---@return boolean
function UPhysicsControlComponent:SetBodyModifierSparseData(Name, ModifierData) end
---@param Names TArray<FName>
---@param MovementType EPhysicsMovementType
function UPhysicsControlComponent:SetBodyModifiersMovementType(Names, MovementType) end
---@param Set FName
---@param bUseSkeletalAnimation boolean
function UPhysicsControlComponent:SetBodyModifiersInSetUseSkeletalAnimation(Set, bUseSkeletalAnimation) end
---@param Set FName
---@param bUpdateKinematicFromSimulation boolean
function UPhysicsControlComponent:SetBodyModifiersInSetUpdateKinematicFromSimulation(Set, bUpdateKinematicFromSimulation) end
---@param Set FName
---@param PhysicsBlendWeight float
function UPhysicsControlComponent:SetBodyModifiersInSetPhysicsBlendWeight(Set, PhysicsBlendWeight) end
---@param Set FName
---@param MovementType EPhysicsMovementType
function UPhysicsControlComponent:SetBodyModifiersInSetMovementType(Set, MovementType) end
---@param Set FName
---@param GravityMultiplier float
function UPhysicsControlComponent:SetBodyModifiersInSetGravityMultiplier(Set, GravityMultiplier) end
---@param Set FName
---@param CollisionType ECollisionEnabled::Type
function UPhysicsControlComponent:SetBodyModifiersInSetCollisionType(Set, CollisionType) end
---@param Names TArray<FName>
---@param GravityMultiplier float
function UPhysicsControlComponent:SetBodyModifiersGravityMultiplier(Names, GravityMultiplier) end
---@param Names TArray<FName>
---@param CollisionType ECollisionEnabled::Type
function UPhysicsControlComponent:SetBodyModifiersCollisionType(Names, CollisionType) end
---@param Name FName
---@param PhysicsBlendWeight float
---@return boolean
function UPhysicsControlComponent:SetBodyModifierPhysicsBlendWeight(Name, PhysicsBlendWeight) end
---@param Name FName
---@param MovementType EPhysicsMovementType
---@return boolean
function UPhysicsControlComponent:SetBodyModifierMovementType(Name, MovementType) end
---@param Name FName
---@param KinematicTargetPosition FVector
---@param KinematicTargetOrienation FRotator
---@param bMakeKinematic boolean
---@return boolean
function UPhysicsControlComponent:SetBodyModifierKinematicTarget(Name, KinematicTargetPosition, KinematicTargetOrienation, bMakeKinematic) end
---@param Name FName
---@param GravityMultiplier float
---@return boolean
function UPhysicsControlComponent:SetBodyModifierGravityMultiplier(Name, GravityMultiplier) end
---@param Set FName
---@param ModifierData FPhysicsControlModifierData
function UPhysicsControlComponent:SetBodyModifierDatasInSet(Set, ModifierData) end
---@param Names TArray<FName>
---@param ModifierData FPhysicsControlModifierData
function UPhysicsControlComponent:SetBodyModifierDatas(Names, ModifierData) end
---@param Name FName
---@param ModifierData FPhysicsControlModifierData
---@return boolean
function UPhysicsControlComponent:SetBodyModifierData(Name, ModifierData) end
---@param Name FName
---@param CollisionType ECollisionEnabled::Type
---@return boolean
function UPhysicsControlComponent:SetBodyModifierCollisionType(Name, CollisionType) end
---@param Name FName
---@return boolean
function UPhysicsControlComponent:ResetControlPoint(Name) end
---@param Name FName
---@param Behavior EResetToCachedTargetBehavior
---@return boolean
function UPhysicsControlComponent:ResetBodyModifierToCachedBoneTransform(Name, Behavior) end
---@param Names TArray<FName>
---@param Behavior EResetToCachedTargetBehavior
function UPhysicsControlComponent:ResetBodyModifiersToCachedBoneTransforms(Names, Behavior) end
---@param SetName FName
---@param Behavior EResetToCachedTargetBehavior
function UPhysicsControlComponent:ResetBodyModifiersInSetToCachedBoneTransforms(SetName, Behavior) end
---@param ProfileName FName
---@return boolean
function UPhysicsControlComponent:InvokeControlProfile(ProfileName) end
---@param Control FName
---@return TArray<FName>
function UPhysicsControlComponent:GetSetsContainingControl(Control) end
---@param Control FName
---@return TArray<FName>
function UPhysicsControlComponent:GetSetsContainingBodyModifier(Control) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param LimbSetupData TArray<FPhysicsControlLimbSetupData>
---@return TMap<FName, FPhysicsControlLimbBones>
function UPhysicsControlComponent:GetLimbBonesFromSkeletalMesh(SkeletalMeshComponent, LimbSetupData) end
---@param Name FName
---@param ControlTarget FPhysicsControlTarget
---@return boolean
function UPhysicsControlComponent:GetControlTarget(Name, ControlTarget) end
---@param Set FName
---@return TArray<FName>
function UPhysicsControlComponent:GetControlNamesInSet(Set) end
---@param Name FName
---@param ControlMultiplier FPhysicsControlMultiplier
---@return boolean
function UPhysicsControlComponent:GetControlMultiplier(Name, ControlMultiplier) end
---@param Name FName
---@return boolean
function UPhysicsControlComponent:GetControlExists(Name) end
---@param Name FName
---@return boolean
function UPhysicsControlComponent:GetControlEnabled(Name) end
---@param Name FName
---@param ControlData FPhysicsControlData
---@return boolean
function UPhysicsControlComponent:GetControlData(Name, ControlData) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneNames TArray<FName>
---@return TArray<FTransform>
function UPhysicsControlComponent:GetCachedBoneTransforms(SkeletalMeshComponent, BoneNames) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneName FName
---@return FTransform
function UPhysicsControlComponent:GetCachedBoneTransform(SkeletalMeshComponent, BoneName) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneNames TArray<FName>
---@return TArray<FVector>
function UPhysicsControlComponent:GetCachedBonePositions(SkeletalMeshComponent, BoneNames) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneName FName
---@return FVector
function UPhysicsControlComponent:GetCachedBonePosition(SkeletalMeshComponent, BoneName) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneNames TArray<FName>
---@return TArray<FRotator>
function UPhysicsControlComponent:GetCachedBoneOrientations(SkeletalMeshComponent, BoneNames) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneName FName
---@return FRotator
function UPhysicsControlComponent:GetCachedBoneOrientation(SkeletalMeshComponent, BoneName) end
---@param Set FName
---@return TArray<FName>
function UPhysicsControlComponent:GetBodyModifierNamesInSet(Set) end
---@param Name FName
---@return boolean
function UPhysicsControlComponent:GetBodyModifierExists(Name) end
---@return TArray<FName>
function UPhysicsControlComponent:GetAllControlNames() end
---@return TArray<FName>
function UPhysicsControlComponent:GetAllBodyModifierNames() end
---@param Set FName
function UPhysicsControlComponent:DestroyControlsInSet(Set) end
---@param Names TArray<FName>
function UPhysicsControlComponent:DestroyControls(Names) end
---@param Name FName
---@return boolean
function UPhysicsControlComponent:DestroyControl(Name) end
---@param Set FName
function UPhysicsControlComponent:DestroyBodyModifiersInSet(Set) end
---@param Names TArray<FName>
function UPhysicsControlComponent:DestroyBodyModifiers(Names) end
---@param Name FName
---@return boolean
function UPhysicsControlComponent:DestroyBodyModifier(Name) end
function UPhysicsControlComponent:DestroyAllControlsAndBodyModifiers() end
---@param Name FName
---@param ParentComponent UPrimitiveComponent
---@param ParentBoneName FName
---@param ChildComponent UPrimitiveComponent
---@param ChildBoneName FName
---@param ControlData FPhysicsControlData
---@param ControlTarget FPhysicsControlTarget
---@param Set FName
---@return boolean
function UPhysicsControlComponent:CreateNamedControl(Name, ParentComponent, ParentBoneName, ChildComponent, ChildBoneName, ControlData, ControlTarget, Set) end
---@param Name FName
---@param Component UPrimitiveComponent
---@param BoneName FName
---@param Set FName
---@param BodyModifierData FPhysicsControlModifierData
---@return boolean
function UPhysicsControlComponent:CreateNamedBodyModifier(Name, Component, BoneName, Set, BodyModifierData) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneName FName
---@param bIncludeSelf boolean
---@param ControlType EPhysicsControlType
---@param ControlData FPhysicsControlData
---@param Set FName
---@return TArray<FName>
function UPhysicsControlComponent:CreateControlsFromSkeletalMeshBelow(SkeletalMeshComponent, BoneName, bIncludeSelf, ControlType, ControlData, Set) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneName FName
---@param bIncludeSelf boolean
---@param ConstraintProfile FName
---@param Set FName
---@param bEnabled boolean
---@return TArray<FName>
function UPhysicsControlComponent:CreateControlsFromSkeletalMeshAndConstraintProfileBelow(SkeletalMeshComponent, BoneName, bIncludeSelf, ConstraintProfile, Set, bEnabled) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneNames TArray<FName>
---@param ConstraintProfile FName
---@param Set FName
---@param bEnabled boolean
---@return TArray<FName>
function UPhysicsControlComponent:CreateControlsFromSkeletalMeshAndConstraintProfile(SkeletalMeshComponent, BoneNames, ConstraintProfile, Set, bEnabled) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneNames TArray<FName>
---@param ControlType EPhysicsControlType
---@param ControlData FPhysicsControlData
---@param Set FName
---@return TArray<FName>
function UPhysicsControlComponent:CreateControlsFromSkeletalMesh(SkeletalMeshComponent, BoneNames, ControlType, ControlData, Set) end
---@param AllControls FPhysicsControlNames
---@param LimbBones TMap<FName, FPhysicsControlLimbBones>
---@param ConstraintProfile FName
---@param bEnabled boolean
---@return TMap<FName, FPhysicsControlNames>
function UPhysicsControlComponent:CreateControlsFromLimbBonesAndConstraintProfile(AllControls, LimbBones, ConstraintProfile, bEnabled) end
---@param AllControls FPhysicsControlNames
---@param LimbBones TMap<FName, FPhysicsControlLimbBones>
---@param ControlType EPhysicsControlType
---@param ControlData FPhysicsControlData
---@param WorldComponent UPrimitiveComponent
---@param WorldBoneName FName
---@param NamePrefix FString
---@return TMap<FName, FPhysicsControlNames>
function UPhysicsControlComponent:CreateControlsFromLimbBones(AllControls, LimbBones, ControlType, ControlData, WorldComponent, WorldBoneName, NamePrefix) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param WorldComponent UPrimitiveComponent
---@param WorldBoneName FName
---@return boolean
function UPhysicsControlComponent:CreateControlsAndBodyModifiersFromPhysicsControlAsset(SkeletalMeshComponent, WorldComponent, WorldBoneName) end
---@param AllWorldSpaceControls FPhysicsControlNames
---@param LimbWorldSpaceControls TMap<FName, FPhysicsControlNames>
---@param AllParentSpaceControls FPhysicsControlNames
---@param LimbParentSpaceControls TMap<FName, FPhysicsControlNames>
---@param AllBodyModifiers FPhysicsControlNames
---@param LimbBodyModifiers TMap<FName, FPhysicsControlNames>
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param LimbSetupData TArray<FPhysicsControlLimbSetupData>
---@param WorldSpaceControlData FPhysicsControlData
---@param ParentSpaceControlData FPhysicsControlData
---@param BodyModifierData FPhysicsControlModifierData
---@param WorldComponent UPrimitiveComponent
---@param WorldBoneName FName
---@return boolean
function UPhysicsControlComponent:CreateControlsAndBodyModifiersFromLimbBones(AllWorldSpaceControls, LimbWorldSpaceControls, AllParentSpaceControls, LimbParentSpaceControls, AllBodyModifiers, LimbBodyModifiers, SkeletalMeshComponent, LimbSetupData, WorldSpaceControlData, ParentSpaceControlData, BodyModifierData, WorldComponent, WorldBoneName) end
---@param ParentComponent UPrimitiveComponent
---@param ParentBoneName FName
---@param ChildComponent UPrimitiveComponent
---@param ChildBoneName FName
---@param ControlData FPhysicsControlData
---@param ControlTarget FPhysicsControlTarget
---@param Set FName
---@param NamePrefix FString
---@return FName
function UPhysicsControlComponent:CreateControl(ParentComponent, ParentBoneName, ChildComponent, ChildBoneName, ControlData, ControlTarget, Set, NamePrefix) end
---@param SkeletalMeshComponent USkeletalMeshComponent
---@param BoneName FName
---@param bIncludeSelf boolean
---@param Set FName
---@param BodyModifierData FPhysicsControlModifierData
---@return TArray<FName>
function UPhysicsControlComponent:CreateBodyModifiersFromSkeletalMeshBelow(SkeletalMeshComponent, BoneName, bIncludeSelf, Set, BodyModifierData) end
---@param AllBodyModifiers FPhysicsControlNames
---@param LimbBones TMap<FName, FPhysicsControlLimbBones>
---@param BodyModifierData FPhysicsControlModifierData
---@return TMap<FName, FPhysicsControlNames>
function UPhysicsControlComponent:CreateBodyModifiersFromLimbBones(AllBodyModifiers, LimbBones, BodyModifierData) end
---@param Component UPrimitiveComponent
---@param BoneName FName
---@param Set FName
---@param BodyModifierData FPhysicsControlModifierData
---@return FName
function UPhysicsControlComponent:CreateBodyModifier(Component, BoneName, Set, BodyModifierData) end
---@param NewSet FPhysicsControlNames
---@param Control FName
---@param Set FName
function UPhysicsControlComponent:AddControlToSet(NewSet, Control, Set) end
---@param NewSet FPhysicsControlNames
---@param Controls TArray<FName>
---@param Set FName
function UPhysicsControlComponent:AddControlsToSet(NewSet, Controls, Set) end
---@param NewSet FPhysicsControlNames
---@param BodyModifier FName
---@param Set FName
function UPhysicsControlComponent:AddBodyModifierToSet(NewSet, BodyModifier, Set) end
---@param NewSet FPhysicsControlNames
---@param BodyModifiers TArray<FName>
---@param Set FName
function UPhysicsControlComponent:AddBodyModifiersToSet(NewSet, BodyModifiers, Set) end


---@class UPhysicsControlInitializerComponent : USceneComponent
---@field InitialCharacterControls FInitialCharacterControls
---@field InitialControls TMap<FName, FInitialPhysicsControl>
---@field InitialBodyModifiers TMap<FName, FInitialBodyModifier>
---@field bCreateControlsAtBeginPlay boolean
local UPhysicsControlInitializerComponent = {}

---@param PhysicsControlComponent UPhysicsControlComponent
function UPhysicsControlInitializerComponent:CreateControls(PhysicsControlComponent) end


