Gameplay relevant actors such as loot must be spawned and replicated by the server… For all clients. All loot management is handled by the Authority Proxy.
Server spawns world item. Player interacts (pickup), RPC server to pickup. Server picks up and adds to inventory, destroying world item.
Player drops item, RPC’s server to drop. Server validates action and drops (spawns a replicated actor), updates inventory accordingly.
For dead player inventory you can create a new actor that holds all the items and spawns at the body. Server must handle this as well.
You also should be storing inventory in the Player State. If a player gets disconnected and rejoins and inventory is stored in controller or pawn, then he will have nothing. Player state persists for a duration for this very reason.