Description

In UE 5.5 (and earlier versions), FCollisionResponse::operator== has incorrect behavior where it will detect that two collision response containers are identical if they have the same number of entries, but those entries differ. This issue was fixed in UE5 main in CL 38122765 but the fix did not make it into 5.5. This problem has existed for several years, but it was not causing a problem because the operator== was not being called in most cases. CL 35562427 is what triggered this regression originally.

To fix this for 5.5, the fix to FCollisionResponse::operator== on main can be ported over.

Steps to Reproduce
  1. Open the editor in any game (tested with Lyra)
  2. Create a new Blueprint asset of class Character
  3. Select the skeletal mesh blueprint, go to Collision section and change the collision presets to Custom
  4. Change the trace responses for Visibility to Block and for Camera to Ignore. The details panel should now look like correct.png
  5. Go to content browser and right click asset, select asset actions reload (or reboot the editor which does the same thing)
  6. Open your blueprint in the editor and find the collision section. It will show the data only view, so you can enter Collision into the title bar to filter it

Expected behavior:

Collision settings for the skeletal mesh should still look like correct.png where Visiblity is Block and Camera is Ignore

Broken behavior:

Collision settings were corrupted and reset to look like broken.png, where Visibility is set to ignore and Camera to block

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Gameplay
Affects Versions5.5
Target Fix5.5.2
Fix Commit39012435
CreatedJan 6, 2025
ResolvedJan 6, 2025
UpdatedFeb 12, 2025
View Jira Issue