I need to make a library of 3D objects and be able to load them while the game runs. Currently I see storing all the objects in the same scene but in a different layer as the only option ( using scene.addObject() ). But say for example I have already many levels (many game files), in which case I would need to update the item layer in each file each time I want to update. Plus, the inventory would be huge. Do you know any other methods of storing & loading game objects in the bge? Like saving them in some external catalogue?
You can use bge.logic.LibLoad, in scene mode :
Scene mode will import objects, not scenes.
If I remember correctly, objets that are in inactive layers in the library blend will be in inactive layers in the game blend, and then you can add them with addObject().
You can even track the status of the loading using async and bge.types.KX_LibLoadStatus.