We are seeing unexpected movement corrections sometimes when pushing one player character up against another character that isn't moving, or against other static primitives that have round features (capsule/cylinder).

Triage notes:

  • I saw this issue sometimes on cylinder meshes placed in the world, whether static or movable. 
  • I also saw this issue ** by placing a capsule primitive Actor in the world.
  • I could not repro against flat geometry like walls or boxes. Same for curved surfaces made out of flat polys.
  • The Collisions Presets chosen did not seem to be a factor. 
  • Ping did not seem to be a major factor.  Using a client-only latency of {10, 50, 100, 251}, they all experienced corrections.  Lower latency only reduced the amount of time between when corrections started and when they ceased.
  • Disabling move combining had no effect

First things to look at a bit more deeply:

1. Verify no precision is being lost between the client-performed move and what's sent and performed by the server (could be something quantized for net serialization). This is less likely.
2. Verify consistent results of capsule sweep checks. There were a lot of improvements in the physics/collision query system since UE 5.0. Could be a bug we missed.

Steps to Reproduce

Create a new project from the 3rd Person project template.

Open the ThirdPersonMap.

Drop an instance of BP_ThirdPersonCharacter somewhere in the map.

Enable Network Emulation, and give the client a reasonable min/max latency. Say 50-100.

Run PIE as a client with 1 player. 

Run "p.NetShowCorrections 1" on the command console. This will cause debug-drawn capsules to appear whenever your character is corrected.

Repeatedly attempt to move around/through the other character. Occasionally, you should see sequences of corrections.  The larger your latency, the longer the sequences.  This does not occur 100% of the time, maybe 25%.

One of the most reliable moves is to start pushing directly into the middle of the obstacle, then slowly pan the camera while continuing to hold forward input down.  This will make your character slowly push around the obstacle. 

(This test can also be performed with 2 players in PIE, and you can move around the other player's character)

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-198521 in the post.

Login to Vote

CreatedOct 19, 2023
UpdatedFeb 13, 2024