#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: PhysicsControl

#include "Basic.hpp"

#include "Engine_structs.hpp"
#include "Engine_classes.hpp"
#include "PhysicsControl_structs.hpp"
#include "CoreUObject_classes.hpp"


namespace SDK
{

// Class PhysicsControl.PhysicsControlAsset
// 0x01E8 (0x0210 - 0x0028)
class UPhysicsControlAsset final : public UObject
{
public:
	uint8                                         Pad_28[0x8];                                       // 0x0028(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FPhysicsControlCharacterSetupData      CharacterSetupData;                                // 0x0030(0x00C0)(NativeAccessSpecifierPublic)
	struct FPhysicsControlAndBodyModifierCreationDatas AdditionalControlsAndModifiers;               // 0x00F0(0x00A0)(NativeAccessSpecifierPublic)
	struct FPhysicsControlSetUpdates              AdditionalSets;                                    // 0x0190(0x0020)(NativeAccessSpecifierPublic)
	TArray<struct FPhysicsControlControlAndModifierUpdates> InitialControlAndModifierUpdates;        // 0x01B0(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TMap<class FName, struct FPhysicsControlControlAndModifierUpdates> Profiles;                     // 0x01C0(0x0050)(NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("PhysicsControlAsset")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"PhysicsControlAsset")
	}
	static class UPhysicsControlAsset* GetDefaultObj()
	{
		return GetDefaultObjImpl<UPhysicsControlAsset>();
	}
};
DUMPER7_ASSERTS_UPhysicsControlAsset;

// Class PhysicsControl.PhysicsControlBPLibrary
// 0x0000 (0x0028 - 0x0028)
class UPhysicsControlBPLibrary final : public UBlueprintFunctionLibrary
{
public:
	static void AddControlParameters(struct FPhysicsControlControlAndModifierParameters& InParameters, struct FPhysicsControlControlAndModifierParameters* OutParameters, const class FName Name_0, const struct FPhysicsControlSparseData& ControlData);
	static void AddModifierParameters(struct FPhysicsControlControlAndModifierParameters& InParameters, struct FPhysicsControlControlAndModifierParameters* OutParameters, const class FName Name_0, const struct FPhysicsControlModifierSparseData& ModifierData);
	static void AddMultipleControlParameters(struct FPhysicsControlControlAndModifierParameters& InParameters, struct FPhysicsControlControlAndModifierParameters* OutParameters, const TArray<class FName>& Names, const struct FPhysicsControlSparseData& ControlData);
	static void AddMultipleModifierParameters(struct FPhysicsControlControlAndModifierParameters& InParameters, struct FPhysicsControlControlAndModifierParameters* OutParameters, const TArray<class FName>& Names, const struct FPhysicsControlModifierSparseData& ModifierData);
	static void BlendControlParametersThroughSet(struct FPhysicsControlControlAndModifierParameters& InParameters, const struct FPhysicsControlNamedControlParameters& InStartControlParameters, const struct FPhysicsControlNamedControlParameters& InEndControlParameters, const TArray<class FName>& ControlNames, struct FPhysicsControlControlAndModifierParameters* OutParameters);
	static void BlendModifierParametersThroughSet(struct FPhysicsControlControlAndModifierParameters& InParameters, const struct FPhysicsControlNamedModifierParameters& InStartModifierParameters, const struct FPhysicsControlNamedModifierParameters& InEndModifierParameters, const TArray<class FName>& ModifierNames, struct FPhysicsControlControlAndModifierParameters* OutParameters);
	static void BlendParameters(struct FPhysicsControlControlAndModifierParameters& InParametersA, struct FPhysicsControlControlAndModifierParameters& InParametersB, const float InInterpolationWeight, struct FPhysicsControlControlAndModifierParameters* OutParameters);
	static struct FRigidBodyWithControlReference ConvertToRigidBodyWithControl(const struct FAnimNodeReference& Node, EAnimNodeReferenceConversionResult* Result);
	static void ConvertToRigidBodyWithControlPure(const struct FAnimNodeReference& Node, struct FRigidBodyWithControlReference* RigidBodyWithControl, bool* Result);
	static TArray<class FName> GetBodyModifierNamesInSet(const struct FRigidBodyWithControlReference& RigidBodyWithControl, const class FName SetName);
	static TArray<class FName> GetControlNamesInSet(const struct FRigidBodyWithControlReference& RigidBodyWithControl, const class FName SetName);
	static struct FRigidBodyWithControlReference SetOverridePhysicsAsset(const struct FRigidBodyWithControlReference& Node, class UPhysicsAsset* PhysicsAsset);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("PhysicsControlBPLibrary")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"PhysicsControlBPLibrary")
	}
	static class UPhysicsControlBPLibrary* GetDefaultObj()
	{
		return GetDefaultObjImpl<UPhysicsControlBPLibrary>();
	}
};
DUMPER7_ASSERTS_UPhysicsControlBPLibrary;

// Class PhysicsControl.PhysicsControlComponent
// 0x0270 (0x04A0 - 0x0230)
#pragma pack(push, 0x1)
class alignas(0x10) UPhysicsControlComponent : public USceneComponent
{
public:
	TSoftObjectPtr<class UPhysicsControlAsset>    PhysicsControlAsset;                               // 0x0230(0x0028)(Edit, BlueprintVisible, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         TeleportDistanceThreshold;                         // 0x0258(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         TeleportRotationThreshold;                         // 0x025C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bShowDebugVisualization;                           // 0x0260(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_261[0x3];                                      // 0x0261(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         VisualizationSizeScale;                            // 0x0264(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bShowDebugControlList;                             // 0x0268(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_269[0x7];                                      // 0x0269(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	class FString                                 DebugControlDetailFilter;                          // 0x0270(0x0010)(Edit, BlueprintVisible, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bShowDebugBodyModifierList;                        // 0x0280(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_281[0x7];                                      // 0x0281(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	class FString                                 DebugBodyModifierDetailFilter;                     // 0x0288(0x0010)(Edit, BlueprintVisible, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         VelocityPredictionTime;                            // 0x0298(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         MaxNumControlsOrModifiersPerName;                  // 0x029C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bWarnAboutInvalidNames;                            // 0x02A0(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2A1[0x1F7];                                    // 0x02A1(0x01F7)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

	const TArray<class FName> GetAllBodyModifierNames() const;
	const TArray<class FName> GetAllControlNames() const;
	bool GetBodyModifierExists(const class FName Name_0) const;
	const TArray<class FName> GetBodyModifierNamesInSet(const class FName Set) const;
	bool GetControlData(const class FName Name_0, struct FPhysicsControlData* ControlData) const;
	bool GetControlEnabled(const class FName Name_0) const;
	bool GetControlExists(const class FName Name_0) const;
	bool GetControlMultiplier(const class FName Name_0, struct FPhysicsControlMultiplier* ControlMultiplier) const;
	const TArray<class FName> GetControlNamesInSet(const class FName Set) const;
	bool GetControlTarget(const class FName Name_0, struct FPhysicsControlTarget* ControlTarget) const;
	TMap<class FName, struct FPhysicsControlLimbBones> GetLimbBonesFromSkeletalMesh(class USkeletalMeshComponent* SkeletalMeshComponent, const TArray<struct FPhysicsControlLimbSetupData>& LimbSetupData) const;
	TArray<class FName> GetSetsContainingBodyModifier(const class FName Control) const;
	TArray<class FName> GetSetsContainingControl(const class FName Control) const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("PhysicsControlComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"PhysicsControlComponent")
	}
	static class UPhysicsControlComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UPhysicsControlComponent>();
	}
};
#pragma pack(pop)
DUMPER7_ASSERTS_UPhysicsControlComponent;

// Class PhysicsControl.PhysicsControlInitializerComponent
// 0x0180 (0x03B0 - 0x0230)
class UPhysicsControlInitializerComponent final : public USceneComponent
{
public:
	struct FInitialCharacterControls              InitialCharacterControls;                          // 0x0230(0x00D0)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	TMap<class FName, struct FInitialPhysicsControl> InitialControls;                                // 0x0300(0x0050)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	TMap<class FName, struct FInitialBodyModifier> InitialBodyModifiers;                             // 0x0350(0x0050)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	bool                                          bCreateControlsAtBeginPlay;                        // 0x03A0(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_3A1[0xF];                                      // 0x03A1(0x000F)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void CreateControls(class UPhysicsControlComponent* PhysicsControlComponent);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("PhysicsControlInitializerComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"PhysicsControlInitializerComponent")
	}
	static class UPhysicsControlInitializerComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UPhysicsControlInitializerComponent>();
	}
};
DUMPER7_ASSERTS_UPhysicsControlInitializerComponent;

// Class PhysicsControl.PhysicsControlActor
// 0x0010 (0x02D8 - 0x02C8)
class APhysicsControlActor final : public AActor
{
public:
	class UPhysicsControlComponent*               ControlComponent;                                  // 0x02C8(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UPhysicsControlInitializerComponent*    ControlInitializerComponent;                       // 0x02D0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("PhysicsControlActor")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"PhysicsControlActor")
	}
	static class APhysicsControlActor* GetDefaultObj()
	{
		return GetDefaultObjImpl<APhysicsControlActor>();
	}
};
DUMPER7_ASSERTS_APhysicsControlActor;

}

