NOTEME There are two variants of this goal: Stealing all objects from a group or stealing some of them. The first two steps are common to both variants:
NOTEME If there will be many objects to steal, or you just want to make it easier to add more objects to the group, consider making a custom metaproperty containing the above properties, and adding the metaproperty to the objects in question.
Give each object a ControlDevice link to a RequireAllTrap, and link the RAT to a QuestVarTrap. To the QuestVarTrap, add the property Trap→Quest Var and type in =1:goal_state_X , where X is the number of the goal to be completed.
Say there are 5 objects and the player only needs to steal 3 of them. Link all the objects to a QuestVarTrap. Trap→Quest Var should be +1:something
You’ll also need to create that variable, so type the command quest_create_mis something, 0
Create a QuestVarTrigger. Set Trap→Quest Var to >2:something , then give this a ControlDevice link to another QuestVarTrap (=1:goal_state_X).
Once that has been done, picking up each object will add 1 to the quest variable. When the value is greater than 2 (i.e. 3 or above) the trigger will activate, and cause the state of goal X to be set to 1 (completed).