I did this in 4.7 and for testing purposes only. I didnt implement this in a game yet so you will need further testing as for how it works with a loot and inventory system. There might also be a better way to do this.
First you will need a character mesh made of seperate pieces.
I seperated the head, left arm, right arm, torso, hip+legs, left foot and right foot.
Each mesh was skinned to its corresponding joints only. if you have multiple meshes per joint chain, skin them aswell.
So for example: You want to swap arms in UE4, you`ll need at least 2 set of arms, but they need to be skinned to the same skeleton. To export, select the mesh and all its corresponding joints as well as all joints in the chain including the root joint. For an arm it would be the arm joints, shoulder, spine and pelvis (pelvis is the root). This is important because you can only have 1 root joint, so all pieces need to have the same root !
Export piece by piece except the head, which will be the “master bone component” in this case. I exported the head mesh along with the whole rig (!)
If you want exchangeable head, this might become an issue.
Import all pieces into unreal, starting with the head. For all the pieces in the import window select the head skeleton. Setup your character blueprint. The head will be the inherited skeletal mesh component. Setup additional “skeletal mesh components”, one for each piece or character slot and assign the appropriate skeletal mesh.
Now you just need to setup you construction script like this:
You can now assign any other skeletal mesh (as long as skinned to the same rig) to your skeletal mesh components in the components tab. You might need to adjust translation in the blueprints viewport.
If you have animations for this skeleton, all pieces should follow just fine.
I hope i recalled all correctly, its quite a while ago now and i havent touched it since.