Missions and item dependencies

Not exactly a UE question, more a design issue (though I’m working with UE). Happy to put this in a more appropriate place if required.

My missions are very linear. Do x, then do y, then do z. Suppose x is “obtain 10 widgets from a shop”. The items are added to the inventory, and the “items added” delegate informs the objective and it is ticked.

You then go on to do y. Then you go to the inventory, delete a widget, and suddenly the mission is broken. Should you:

  1. Make the collected items un-removeable. If they’re just ordinary items rather than story items, that requires some fudging (story items are generally non-removeable), probably creating a “non-removeable” version of the asset. Klunky.

  2. Shrug shoulders and say “tough, you did a silly, you can’t complete the mission, exit and try again”. Harsh.

  3. Design missions such that this sort of inconsistency is impossible. Pretty restrictive.

  4. Something else?