Why is there a group 2/3 divide for actions?

Out of curiosity, why is there a divide between group 2 and group 3 actions? It seems natural to me that actions like PUSH and SMELL could run after routines to provide custom messages, but that doesn’t work since they are group 3.

1 Like

Short answer: After-routines are only called if the normal mechanics of an action could be performed, AKA the action “succeeded”. Group 3 actions have no “normal mechanics”, so they never succeed (note that the Group 3 default messages are either telling the player why they can’t/won’t perform the action, or that they do it and it’s pointless). The library wouldn’t know when to call an after-routine for a Group 3 action.

Whatever you would have wanted to do in an after-routine for a Group 3 action, you can do in a before-routine instead.

3 Likes

So group 2 is actions which the library can perform itself, like taking things, entering things, etc.

And group 3 is actions which the author must implement, since the library doesn’t know what pushing something is supposed to do.

Makes a lot more sense now :grin:

1 Like

Correct.

The actions that are kind of edge-case, are the actions whose only mechanics are to print some information about the model world: Look, Examine, Search, Inventory. They do have built-in mechanics, but they don’t change anything about the model world. These actions are considered as Group 2 actions, so they do perform an after-stage. Wait could also be considered as one of these actions.

2 Likes