Map transitions with an inventory

I was wondering about a good design for persistent player data (like an inventory) for a single player game with more than one map.

I’m new to UE4 but from what I understand the concept of a “map” is closely related to one match that can be played independently. Most objects (GameMode, GameState, PlayerState, …) only exist for the duration of playing a map and are destroyed and recreated when changing the map (please correct me if I’m wrong). I’m thinking about a single player open world style game, where you can walk around in a main world but also go into dungeons. So a map in my case would not be as self-contained as for example a match in a shooter.

From what I’ve read, I see four possible options to handle this:

  1. Don’t have individual levels for dungeons and use one large map containing the whole world (this seems to be a performance problem).
  2. Use seamless transitions and copy the player state from level to level as described here: https://answers.unrealengine.com/questions/43814/playerstate-persistence-across-map-change.html
  3. Josh Markiewicz also mentioned streaming levels in the post above. If I understand this correctly, this would mean to have everything in one map but each dungeon on its own layer, and then load/unload parts of the level when a player enters a door.
  4. There is also GameInstance, which exists for the whole game, so I could store game and player states there.

Can someone give me some advice, which way to chose?