diff --git a/Source/Engine/Level/Actors/Ragdoll.cpp b/Source/Engine/Level/Actors/Ragdoll.cpp
index f31be0ac9..c0d61de2a 100644
--- a/Source/Engine/Level/Actors/Ragdoll.cpp
+++ b/Source/Engine/Level/Actors/Ragdoll.cpp
@@ -42,6 +42,7 @@ float Ragdoll::InitBone(RigidBody* rigidBody, int32& nodeIndex, Transform& local
// Initialize body
rigidBody->SetSolverIterationCounts(PositionSolverIterations, VelocitySolverIterations);
+ rigidBody->SetMaxDepenetrationVelocity(MaxDepenetrationVelocity);
}
return weight;
}
diff --git a/Source/Engine/Level/Actors/Ragdoll.h b/Source/Engine/Level/Actors/Ragdoll.h
index 29f84a02f..2a8f1a0c3 100644
--- a/Source/Engine/Level/Actors/Ragdoll.h
+++ b/Source/Engine/Level/Actors/Ragdoll.h
@@ -42,9 +42,16 @@ public:
/// The minimum number of velocity iterations the physics solver should perform for bodies in this ragdoll. Higher values improve stability but affect performance.
///
///
- API_FIELD(Attributes="EditorOrder(100), EditorDisplay(\"Ragdoll\"), Limit(1, 255)")
+ API_FIELD(Attributes="EditorOrder(110), EditorDisplay(\"Ragdoll\"), Limit(1, 255)")
uint8 VelocitySolverIterations = 2;
+ ///
+ /// The maximum depenetration velocity when ragdoll's rigidbody moving out of penetrating state. Using this property can smooth objects moving out of colliding state and prevent unstable motion.
+ ///
+ ///
+ API_FIELD(Attributes="EditorOrder(120), EditorDisplay(\"Ragdoll\"), Limit(0)")
+ float MaxDepenetrationVelocity = MAX_float;
+
public:
///