We have a situation where we are trying to load a Game Feature Plugin from an external pak file which is cooked as DLC and that we manual mount ourselves. The pak file mounts correctly (can be seen when using the PakList command) and we can iterate over the files in that pak so that all seems to be in order (output added at the end).
The problem comes when we try to register the GFP with the subsystem. After running “LoadGameFeaturePlugin file:D:\Projects\ARPGDebug_Native\Windows\ActionRPG\Modio\ExampleFeature_Windows\ExampleFeature.uplugin” the resulting state machine is in the ErrorRegistering state. Looking into it we found that this is being caused by the Game Feature Data not being able to be loaded because the package can’t be found. Following it down, the point of failure originates in FPakFile::FindLocationFromIndex() [IPlatformFilePak.cpp:7871] where it fails the first check (if(!FullPath.StartsWith(MountPoint))) because the FullPath is a relative file path (../../Modio/ExampleFeature_Windows/Content/ExampleFeature) but the mount point is a game path (/ExampleFeature/). The registration code checks for a game path for the Game Feature Data (/ExampleFeature/ExampleFeature.ExampleFeature) but it gets converted during the process of checking if it exists in FPackageResourceManagerFile::IteratePossibleFiles() [PackageResourceManagerFile.cpp:127].
We are using the result of
Plugin->GetMountedAssetPath()
for the mount point of the pak. We’ve tried other mount points, including an absolute path, but anything else seems to result in the pak not mounting correctly. Interestingly the mount point for the game pak does seem to be relative (../../../), which is why it seems to work for that, but we haven’t been able to find a solution that works. At this point we are unsure of what we could be doing wrong and any help would be appreciated.
// Output from mounting pak file
LogModioUGC: Verbose: UGC `ExampleFeature` contains 1 pak files within D:/Projects/ARPGDebug_Native/Windows/ActionRPG/Modio/ExampleFeature_Windows/Content.
LogModioUGC: VeryVerbose: Attempting to mount UGC pak file D:/Projects/ARPGDebug_Native/Windows/ActionRPG/Modio/ExampleFeature_Windows/Content/Paks/Windows/ExampleFeatureActionRPG-Windows.pak at /ExampleFeature/
LogModioUGC: VeryVerbose: Pakfile D:/Projects/ARPGDebug_Native/Windows/ActionRPG/Modio/ExampleFeature_Windows/Content/Paks/Windows/ExampleFeatureActionRPG-Windows.pak mounted
LogModioUGC: VeryVerbose: Pakfile D:/Projects/ARPGDebug_Native/Windows/ActionRPG/Modio/ExampleFeature_Windows/Content/Paks/Windows/ExampleFeatureActionRPG-Windows.pak : AssetRegistry.bin
LogModioUGC: VeryVerbose: Pakfile D:/Projects/ARPGDebug_Native/Windows/ActionRPG/Modio/ExampleFeature_Windows/Content/Paks/Windows/ExampleFeatureActionRPG-Windows.pak : Content/ExampleFeature.uasset
LogModioUGC: VeryVerbose: Pakfile D:/Projects/ARPGDebug_Native/Windows/ActionRPG/Modio/ExampleFeature_Windows/Content/Paks/Windows/ExampleFeatureActionRPG-Windows.pak : Content/ExampleFeature.uexp
[Attachment Removed]