That’s pretty much what i ended up doing. Moved the content from my Initialize function to a custom initialization function that i call on begin play in the game mode and now it works perfectly.
The only minor problem with this is that the game mode is bound to the map, and thu it will try to initialize the game instance subsystem every time a level is loaded, but that shouldn’t be a problem since it’ll just load quest progression flags from the save data and initialize the quest list. And if it ever turns into a problem a simple flag to check if it’s already initialized would fix that.