My personal thought is that using soemthing like other_arch (or if needed, a new field like other_arch) is probably the better way to go. This simplifies a lot of the work (problems you describe). Using the inventory to me seems like an odd way to handle this. I'm sure at some point we will get into cases where we will have items and using inventory is ambigous - is that inventory what the object should turn into when used up/destroyed, or what is really in the object? Also, I'd think that putting the empty bottles in the inventory of existing bottles will effectively increase the weight of the original. Not sure if that is intended. And I'd have to double check the examine object would do the correct thing in terms of saying the weight. OTOH, using other_arch only works if it isn't being used for something else (which at least for booze, it isn't). Other thought is use of the new key-value lists - can just do something like: on_use_item ... And just put the appropriate hook when booze and potions are applied to look for that and create the item in question. This and/or other_arch does have the problem that the object has to be an archetype. But same is true for treasurelists, so no loss there.