Transfering attached actors between levels

In my game a player can pick up weapon attachments, that modify the gun stats and looks (silencer, longer magazine, scope, etc). The modified stats I can transfer between levels in GameInstance, so that’s not a problem. However, when I use OpenLevel, the attachments reset. The same happens with LoadStreamingLevel.

I’d also rather use OpenLevel due to how my procedural level generation works (it uses level instances, not actors, as building blocks).

I heard about SeamlessTravel and that you need to overload some function and add actors you want to transfer to an array, but it doesn’t seem to be exposed to Blueprint.

Since the stats can be saved in GameInstance, the thing I care about is the visual aspect of the weapon attachments, so any method of keeping them will do. Maybe attaching StaticMesh components to the weapon? I have no clue.

Any help will be appreciated.