Already solved, but may I suggest UID instead of IID? UID is more reliable, and never changes unlike IID.
Have a global variable, and set it's value to the following, right after you spawn a new object (when you tell the game to):
int(ObjectName.UID)
Then in conditions that require to be instance specific (such as lifting a pot in Zelda), you set a pick UID condition, except set it to the global variable name.