Level-wide data

I’m working on a project, a “Conquest” style game (e.g. Battlefield 1942), where I require a level to store data, which needs to be accessible by several actors. I want to associate two factions with a map so that faction-specific actors (flags for example) and the UI correctly display the faction data. I also want a map selection screen that knows about that data to correctly display the factions that appear on that map. I also do not want to hard-code anything, so that I can easily change things around without having to modify any individual actors, the UI or any textures.

So far, I have a custom Data Asset class that defines a faction (with a friendly name and flag material). I planned to create another asset to store metadata about a level (the actual umap file, the two faction assets and a UI friendly name). The map selection menu will use those metadata assets to assemble a list of available maps, then load the associated map when starting the game. Once the map is loaded, I want to somehow retrieve the faction info from that metadata asset to set up all the actors.

I originally intended to either create a custom level script actor, a world settings class or just a custom actor. So:

  1. Level scrip actor: Can I directly access the level script from any actor, without using “Get All Actors Of Class” and just retrieve the data I want? And can I write C++ in the custom level script actor to find the metadata asset using naming conventions, and if found, store the data so the actors can access it?
  2. World settings class: I think this would work as well (using “GetWorldSettings()”), but unlike with the level script actor, I don’t know how to reparent a level to another class, should I decide to remove or rename it, if it’s possible at all.
  3. Custom actor: I did this before for testing, but of course I would need to manually add this actor to the level. It would work for debugging, but I would prefer to have something that is automatically added to a level (like the aforementioned two options).