I’m thinking about creating a large set of boolean variables which would define if certain events happened or not.
For example, let’s have an NPC named Bob. During exploring, player sees a tree with a big “BOB WAS HERE” carved in the bark. Then, after meeting Bob, we want to add a dialogue option “Bob, it’s not nice to hurt trees! :(” - but of course only when player saw the tree! … Imho the simplest solution would be a boolean check in dialogue options (enable only if “playerSawTheBobsTree” (bool)) - but where is the best place to store all these booleans? There would be quite a lot of them.
I’m not sure how to approach this. The only thing i have on my mind is a data-only Actor blueprint named AdventureState containing all those booleans and nothing more. Then, put a reference of AdventureState object in PlayerController. So when player sees the “BOB WAS HERE” tree, we just set PlayerController.AdventureState.playerSawTheBobsTree = true.
Is there a better way to do this? How would YOU approach this?