I apologize if any of this seems patronizing, I don’t know how your game is set up so let me procedurally create a scenario for you.
So let’s say for example you have a STRUCT with members like “Clothing Name”, “Clothing Type”, “Male/Female” “Soft Reference” and “Enabled.”
Clothing Name is the name displayed to the player.
Clothing Type is an ENUM value like Shirt, Pants, etc.
Male/Female is an ENUM value for which gender model the clothing is intended.
Soft Reference is a string path to the model.
Enabled is a boolean value. If it’s true, the character is wearing it (visible) and if false, the character is not wearing it (not visible).
Your character then has an array of this struct as one of its variables. Each member of the array is a struct of this type and you either manually set up these values or load them from a spreadsheet at runtime.
The game then checks when the player changes clothing if the reference is valid, then loads the model. Set Enabled to true and also set the model’s visibility to true. Set the previous piece of clothing’s “Enabled” and visibility to false if the clothing type is the same to avoid a conflict.
When saving, save out the whole array, either to a built-in UE4 save type or by writing out each member as a string.
When loading, iterate over all members of the array and check to see if “Enabled” is true for each member and if so, check the validity of the soft reference and if it’s valid load the model and set its visibility to true.
You can convert the visibility enum to bool by using a select node. Plug the result of the get enum into the left side of the select node, then have the right side results of the select node correspond to the left side e.g. left side says ‘visible’ so the right side should be TRUE or checked and left side ‘invisible’ should have a right side that’s FALSE or unchecked.