Hello, I have a couple GameInstanceSubsystems. All of which work correctly. For this setup, I have an AchievementManager that is a subsystem. And in Initialize I am logging the fact that it initialized. As I am parsing a data table on initialization, I created a child blueprint to supply the data-table. My Quest Manager works exactly the same way and works fine.
Here is the strange thing. The Achievement Manager does NOT work when I play, UNLESS I opened the BP_AchievementManager and close the window before playing. Once I close the engine, this resets and it won’t initialize until I open the blueprint again.
Any ideas what might be causing this?
To fix this issue, you must tell Unreal to load up these assets explicitly, otherwise, it doesn’t know to use them. I had done this before and completely forgot somehow!
To do this, go to your Project Settings->Game->Asset Manager and you will find the “Primary Asset Types To Scan.” You need to add an entry for your blueprint GameInstanceSubsystem. To do this, select the class type and set the Primary Asset Type to the exact name of the asset. Also make sure to set the Directory to search for the asset. Also, make sure to tick the box saying “Has Blueprint Classes” so it knows that it’s a blueprint.
Amazing, this worked perfectly! I was scratching my head as to why the subsystem would appear for me after PIE, but not for others in the team. This explicit load solves it all!