That’s sort of my point. You have to decide how you want to manage the inventory. Your current method of holding pointers to APickupBase actors that were placed/created in the current world won’t work. Let’s say in world A you have placed an APickupBase AB. You can hide AB in the world A by toggling it’s visibility and turning off collision. But you still have the problem that when you transition from world A to world B the actors in world A go away which means AB goes way. So your inventory would become invalid.
The solution you are talking about (re: a DataTable) is similar to my second solution above. Here you are simply storing references/index/tag that can be used to look up what type of inventory you’ve stored. You can use fields in the DataTable to manage all of the different properties. This is a perfectly fine solution. Really it all comes down to what you are trying to do and what the limitations of your game are.