Server Side Detection of Skeletal Mesh Animation Driven Collision Volumes When Host Moves Far Away

Problem
I’m having a problem where NPC weapon collision overlaps with the client controlled pawns stop working when the listen server host moves far away.

My Setup
The weapon collision sphere is socketed to its parent skeletal mesh component, and is AI controlled. The attack animation moves that collision sphere through the player pawn capsule. The attacking AI controlled pawn and player controlled pawns are both marked as AlwaysRelevant. Everything works well when host is nearby, so I don’t suspect any issue with collision profiles. The overlap event uses a switch has authority so detected collisions are only processed by the server (the collision event never even fires on the server when the server is far away).

Findings
After a few days of troubleshooting I found that re-parenting the collision sphere to the AI pawn’s root capsule component and resizing it to cover the entire attack space fixes the problem. However, this is not ideal because it doesn’t accurately represent weapon collision.

Hypothesis
Based on this, I suspect the problem is that when the server is far away, it decides that in the server’s game instance it no longer needs to drive the movement of the child collision sphere with the skeletal mesh’s animation (but I think the animation is still playing on the server, because the anim notifies fire).

Help?
After a couple days of troubleshooting I feel like I’ve exhausted all of my options. Does anyone know how to get server side detection of skeletal mesh animation driven collision volumes to work when the listen server’s host player is far away from the event?

1 Like
  1. Do you mind recording and uploading to youtube a video of what happens?

  2. I don’t know if this is even related but do you know about the optimization option on the mesh?

](filedata/fetch?id=1802394&d=1597764919)

2 Likes

@Psy-Lance : You sir are a gentleman and a scholar. Changing the “Visibility Based Animation” option from “Always Tick Pose” to “Always Tick Pose and Refresh Bones” completely fixed the issue for me - thank you!