I started building my quest system, what I want to do is have a base C++ class called UQuest and every quest will be a derived blueprint class, meaning I actually never instantiate the quest until I accept a quest from an NPC etc.

Now comes the save/load state of the quests, my idea was to serialize every accepted quest to disk but I am concerned with the loading phase, should I give an id manually to every blueprint class or can I use the ClassUnique attribute ? If the ClassUnique attribute will not change with time that is with an engine upgrade or a rebuild of the game is it safe to use ?