Structs were somewhat problematic because I had to break them EVERYWHERE. Annoying beyond belief.
The below is a function of BP_BaseItem (the topmost-parent-blueprint of your items) and basically you call this whenever you want to ‘remove’ it from the level without destroying it. Technically you don’t need to change the location of the item because you already set it to invisible + no collision and all events are disabled. But, I included it anyway and also stored the pickup location in case I ever need to restore the item to it’s original location.
I use the variable PickedUp? in the Graph section of (child)items to prevent them from responding to events by using this as the branch condition.
The solution is not perfect, but still the best I know of so far.
I hope that Epic will give us some method in the future to remove items from play (or to a dummy level) without destroying them.
