The GameFeatureData asset used by the game features subsystem supports defining extra paths to scan for asset manager assets specific to that plugin. Originally this system only supported relative paths where entering /Maps would automatically turn into /PluginName/Maps. But, this does not work well with the UI so support for absolute paths was added in 5.0 to support typing /PluginName/Maps into the field directly.

When support for this was originally added, this was before RemoveGameFeatureFromAssetManager existed. When that function was implemented it did not correctly support absolute paths. RemoveGameFeatureFromAssetManager (and possibly other code) needs to do the same path fixups as Add

Steps to Reproduce

This issue was reported by a licensee and there is no simple repro with internal games. Basic repro:

  1. Set up a game feature plugin that uses absolute paths. For instance the scan paths inside the ShooterCore game feature data in Lyra could be modified to scan /ShooterCore/Experiences instead of just "Experiences"
  2. Set the current state of the plugin to Registered or later so it adds those directories to the asset manager scan paths
  3. Set a breakpoint in UAssetManager::RemoveScanPathsForPrimaryAssets (or add a log)
  4. Set the current state of the plugin to Installed to unregister the scan paths
  5. Note that when it calls RemoveScanPathsForPrimaryAssets the plugin name will be included twice, such as /ShooterCore/ShooterCore/Experiences. This will not correctly unregister the paths which will cause problems in the future

Have Comments or More Details?

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

Login to Vote

ComponentUE - Gameplay
Affects Versions5.15.25.3
Target Fix5.3
Fix Commit24694196
Main Commit24694196
CreatedMar 16, 2023
ResolvedMar 17, 2023
UpdatedMay 5, 2023