Looping on a specific bolean within different instances of a widget.


The title is weird but my problem is actually simple to picture. Let’s imagine a Skyrim menu.
1 - You press tab, you go a first widget with Skill / Inventory / Map / Magic choices.
2 - You choose Skills, wich brings you to a second widget where you have all your skills (1st picture).
3 - You chose a skill which leads you to all the perks you can choose (2nd picture).

At that point, so far so good, I can select a perk, the “Acquired” bolean is now ticked, its color changes, etc.

But then, I close the menu because I want to play. Closing the menu equals to a Remove from parent for “optimisation reason” (I don’t know it is a nice way to do it tho). And the next time I will open the menu, it will all build from scratch, and everything I have selected will be lost.

So I guess I should store all the boleans from all those perks inside the Character Blueprint and the next time I will open the menu, it will check if the Acquired bolean is ticked and build everything accordingly.

But what would be the best way to do that considering that I might have 10 skill trees in 10 different widgets, and each skill tree would have 10 different perks ? I can’t imagine to check them one by one.
Array, dictionnary, datatable…?

Perhaps I am going in the wrong direction anyway, if so, please let me know (and how to fix that).