I do the same thing to clear out stores
I also go a step further for loot bags.
object oBag = GetObjectByTag("bodybag") ;// not sure if its capitals or not
// **
// Handle them here
// **
What I do is basically loop through all bags in the module - and check to see if they have been 'processed' yet.
If not : set the processed variable to 1
if processed : skip
If a player is in the area with that bodybag : repeat this check every 30 seconds, or until the bodybag is gone
if a player is not in the area and the bodybag still exists: delete inventory, destroy bag
Assigning the commands to the module or area would likely be equal in performance value : since only one script can run at any one time anyway.
I would probably avoid assigning the check to the bodybag itself
as this could end up with quite alot of pending commands in the queue : not sure what ramifications that might have - if any.
Result is basically that areas will clean themselves of bodybags when the area is empty.
The times can be customized to give the players a chance to come back for the loot.
Just put this in the onModHeartbeat event : note - this is just pseudocode - you will need to build the logic