Quick answer: Open Physics Asset Editor. Select all bodies. Details → Collision Profile = PhysicsActor or BlockAllDynamic. Save.
Bullet trace passes through ragdoll. Mesh collision doesn’t catch it because trace target is per-body, and each body defaulted to NoCollision in the asset.
The Symptom
LineTraceByChannel returns false on ragdoll. SkeletalMesh visible; physics asset bodies invisible to traces.
The Fix
Physics Asset Editor:
1. Ctrl-A select all bodies.
2. Details panel → Collision → Collision Profile:
BlockAllDynamic // hits everything that traces dynamic
// or PhysicsActor for finer control
3. Save.
Per-channel custom (when needed):
Collision Enabled: Query and Physics
Object Type: PhysicsBody
Trace Responses:
Visibility: Block
Weapon (custom channel): Block
Camera: Ignore
Per-body collision is independent of the SkeletalMesh component’s collision. Traces target the physics bodies during ragdoll; mesh-only collision queries hit the swept skeletal mesh.
Verifying
LineTrace at ragdoll: returns hit, BoneName = source bone (Head, Chest, etc.). Frame Debugger shows trace intersecting body shape.
“Body collision configured. Traces land. Bones report.”
Related Issues
For replication scope, see replication. For state alias, see state alias.
Body collision on. Traces hit. Bone known.