Hey Sebastian,
I found out several things by following your questions:
1. Can you load the affected assets without using the AssetRegistry, e.g. through a softobjectpath, using the regular content path of the asset (/MyPlugin/path/to/asset)?
- Yes, I was able to load the assets through a softobjectpath.
2. Is the packaging here a regular packaged build with the plugin included or are you creating separate packages, e.g. through chunking or the DLC workflow?
- We create a regular packaged build with the plugin included.
3. Do you create IOStore containers or just pak files?
- We have the IOStore enabled in the Project Settings, but we do no chunking (“GenerateNoChunks”). Unticking “GenerateNoChunks” has no effect, but disabling the IOStore (unticking “UseIOStore”) did work. How could I debug further to find out why it isn’t working with the IOStore?
4. Is there any specific mounting logic or are your containers mounted by Unreal on startup from the content folder?
- There is no specific mounting logic, everything is mounted by Unreal on startup
5. Does your logs show the mounting (specifically the packagepath being added, not the pak/iostore mount) happening before this message?
- I don’t see any mounting of PackagePaths in the log. I gathered all related logs in order:
... LogPakFile: Initializing PakPlatformFile LogIoDispatcher: Display: Reading toc: ../../../MyProject/Content/Paks/global.utoc LogIoDispatcher: Display: Toc loaded : ../../../MyProject/Content/Paks/global.utoc, Id=ffffffffffffffff, Order=0, EntryCount=1, SignatureHash=0000000000000000000000000000000000000000 LogIoDispatcher: Display: Mounting container '../../../MyProject/Content/Paks/global.utoc' in location slot 0 LogPakFile: Display: Initialized I/O dispatcher file backend. Mounted the global container: ../../../MyProject/Content/Paks/global.utoc LogPakFile: Display: Found Pak file ../../../MyProject/Content/Paks/MyProject-Windows.pak attempting to mount. LogPakFile: Display: Mounting pak file ../../../MyProject/Content/Paks/MyProject-Windows.pak. LogIoDispatcher: Display: Reading toc: ../../../MyProject/Content/Paks/MyProject-Windows.utoc LogIoDispatcher: Display: Toc loaded : ../../../MyProject/Content/Paks/MyProject-Windows.utoc, Id=148a5bb5dd32785b, Order=4, EntryCount=6887, SignatureHash=0000000000000000000000000000000000000000 LogIoDispatcher: Display: Mounting container '../../../MyProject/Content/Paks/MyProject-Windows.utoc' in location slot 0 LogPakFile: Display: Mounted IoStore container "../../../MyProject/Content/Paks/MyProject-Windows.utoc" LogFilePackageStore: Mounting container: Id=148a5bb5dd32785b, Order=4, NumPackages=5249 LogPakFile: Display: Mounted Pak file '../../../MyProject/Content/Paks/MyProject-Windows.pak', mount point: '../../../' ... LogAssetRegistry: Premade AssetRegistry loaded from '../../../MyProject/AssetRegistry.bin' ... LogPluginManager: Mounting Engine plugin ... LogPluginManager: Mounting Project plugin ... ... LogAssetRegistry: FAssetRegistry took 0.0001 seconds to start up ... LogFilePackageStore: Updated: NewPackages=5249, OldPackages=0, TotalPackages=5250 ... LogInit: Display: Game Engine Initialized. ...
Regarding: In general if you package your content through a normal build your container will include an AssetRegistry.bin that already knows about all the assets inside the container. An additional scan will not be necessary and will not work at all for IOStore containers, since these don’t expose a filesystem abstraction. IOStore Assets need to be discovered via the serialized AssetRegistry.bin right now.
This information cleared up a lot for me, thanks.
When packaging the project the IOStore logs:
“UATHelper: Packaging (Windows): LogIoStore: Display: Using input asset registry: “ProjectPath”/Saved/Cooked/Windows/MyProject/Metadata/DevelopmentAssetRegistry.bin”
When loading that AssetRegistry into the AssetAudit-Tool I can find all MRQ-PrimaryConfig assets.
So I don’t know what I might be missing here, is the serialized AssetRegistry another one which might not contain those assets?
Kind Regards,
Dominikus