Tracking player progression?

Hello @insertech , sorry for late respond,

If you’re pretty sure that you will have more than 250, definitely don’t use enum. Just use another type.

About gameplay tags, I never use it, however, I look through the C++ and I see that it is saved in an TArray type which is usually don’t have any limit. I think it’s fine if you want to use Gameplay tags, however I can’t provide any weakness or how to implement it since I never touch it before.

If you want to consider using gameplay tags for that, maybe you have to do a little experiment about it first for that usage. I can’t help much for gameplay tags, sorry.

Edit
I might be wrong at this but there is a possibility that if you rename the tag, it will also be a problem. Example case:
My player take a quest and the gameplay tag is “BuyAHouse” and then save the game. After then you rename the gameplay tags to “RentAHouse” since it make more sense to rent first before buying it. Then you load the old save game which “BuyAHouse” is still the tag for the quest, it won’t be loaded since “BuyAHouse” is not valid anymore and the code don’t know if you rename it.

This might be wrong, since I don’t know how do we save the tags. However if you save it just the String value, like in a FString/FName/FText variable, this definitely will be a problem.

You won’t get this kind of problem with Enum since enum store it in integer. Even tough you rename your enumerator from Quest_BuyHouse to Quest_RentHouse, the integer value is still the same so it won’t be a problem. I hope this make sense to you.

Also please @ / tag me if you reply for visibility ;D