Weapon Mesh Orbits When Looking Around (True FPS Setup) – Issue with bUseControllerYaw

I’m encountering an issue with weapon mesh attachment in a True FPS setup.

The weapon mesh appears to orbit around the character when looking around instead of staying properly aligned with the hands. I’ve attached a short video demonstrating the problem.

While debugging, I found that if I disable:

bUseControllerRotationYaw = false;

the orbiting issue stops. However, when I do that, the character mesh no longer rotates with the camera , which breaks the expected FPS behavior.

So I’m unsure what the correct approach should be.

Current Setup

  • True FPS character with full body mesh
  • Aim Offset driving the upper body
  • Weapon attached to hand socket on the mesh
  • Camera attached to the character
  • Weapon is not directly attached to the camera

Problem

  • When rotating the camera, the weapon orbits or swings unnaturally
  • Disabling bUseControllerRotationYaw stops the orbit but prevents mesh rotation

Question

For reference, I’ve included my ArenaCharacter.cpp and WeaponActor.cpp
ArenaCharacter.cpp (9.4 KB)
ArenaWeaponActor.cpp (15.9 KB)

Any guidance on the correct architecture for this would be appreciated.