Looking for more info on Save game flag

Hi guys,
I don’t know if I’m missing something here or the system doesn’t work as it should.
I’ve implemented the system to save variables with the save flag and everything works except the saving for a bool variable.
What happen is that the bool value start as true, save the status and it’s true, after 3 seconds the variable change to false and magically without calling the function to save the value is updated in the save game so when I load the data it doesn’t revert back.

I’m testing with a float variable, copy pasted the variable declaration just change the name and type, every second the float is assigned +1, save the game and on loading the variable goes back to the value of the savedata.

Does anyone knows anything?
Thank you!

Edit: I’ve actually realized that the problem seems to come from the two set in the BeginPlay, if the value is changed like that, even if you load the data, it won’t change to what it was saved while keeps working fine for the float.
Can someone explain to me the usefulness of the savegame flag then? the variable are unusable in the end, or maybe I’m missing something.

Edit2: It seems will work after the variable is initialized in the BeginPlay event(constructor doesn’t work cause the system has to register a change in the variable) and BlueprintReadOnly as property, so only cpp modification to the variable.

This is a particular case in the sense that I want to save the initial value of a variable and able to return to it after the change is registered. Ex: new game - create save game - do something - load previous save

Ok, seems I found the answer to my question that I’m posting here for future ref.

The property will not be serialized if it’s equal to its default value, hence no saving/loading will happen if the variable did not change at all.