Inventory Items Disappearing

What you are describing sounds like the inventory object is getting garbage collected. But looking at your code nothing jumped out at me. Usually this is because someone forgot to flag the reference with UPROPERTY() but both your TArray and the local definition in the Character look right. I’d suggest override Destroyed() in your inventory class and setting a break point there. Then looking to see why it’s being destroyed. That will help narrow it down.

Also, why are you storing the inventory in the game instance? Seems like it’s better suited in the Character.

Edit: I just looked at the your AddItemToInventory() function. You are destroying the item right after pickup. So while your inventory system has a reference to the actor, the actor has been flagged for destruction. So it’s getting cleaned up at GC.