mob/var/list/inventory = list()
mob/verb/Pick_Up(obj/O as obj in view(1,usr))
set name = "Pick Up"
usr.inventory += O
del O // I think this part right here probaly deletes the object when it's in the user's inventory. Not sure
Problem: I pick up an object without del O and the object ends up in my inventory, except the object in view() still remains. With del O the object is deleted on the field and the object doesn't appear in the inventory.
Instead of deleting the object, try setting its location to null. That way it won't appear on the map, but will be in the player's inventory.
If you're not using the player's contents variable for anything, why not just use that?