Background Faction/Trade System

I’m working on making a space game where the player controls a top down ship and flies from system to system, battling, trading, and taking on missions.

In the background I want to make a system that allows factions within the game to interact with each other through diplomacy and the player just sees it as event notifications with the game. So a player may see a text box pop up saying “Faction 1 has declared war on Faction 5!” and then see star systems change ownership based on the success of that war (Faction 1 has X attack/defend stats and X units, vs Faction 5 has Y attack/defend stats and Y units). I’d eventually like to see a star system that is conquered to change in the player’s level, maybe just the types of AI that spawn in that system when the player enters it. So before the player saw a majority of Faction 5’s ships flying around they now see a majority of Faction 1’s.

I guess the question is, do I accomplish this in C++ or can I create this in Blueprints via a level that is constantly playing in the background regardless of what level the player is in and without the player seeing? And a second question, how do you get the information to transfer into the player’s level? Through persistent variables that get the information from the background level? I’m not looking for a play by play tutorial, but I’d love to be pointed in the right direction. Hell I’ll even read a book to figure this out! :wink:

P.S. tips on a good background trading economy would be awesome too!