If I make a general task with an %item% reference I can then make separate specific tasks for characters and objects using the restriction: Referenced item must be type Character.
But many character restrictions such as:
[Referenced item] [must be] [holding any object]
are not available, which severely limits what the task can do, and also limits the alternate descriptions that can be applied to the text box.
There also do not seem to be any usable actions for items.
Workaround: Make another 3 tasks that uses a character/object/location reference and execute them from the specific task, passing %item% as the parameter.
Each specific task needs a restriction to check the item type.
[Referenced item] [must be] [item type] [character/object/location]
Hmm, this was deliberate, to try to reduce the number of people trying to do things like go inside characters or carry locations. Do you think I should just add all the options?
Yes, if somebody uses an item reference then it is up to them to put in appropriate restrictions to ensure the task makes sense.
As it is at the moment it is virtually unusable because the only way to do anything useful with the item is to create 3 extra general tasks (one each for objects, characters and locations) and execute them from the item task.
It would be less work to use those for the parser and not create an item task at all.
If we could use any restriction/action with items then a single task could respond appropriately for a certain item type, while still giving customised restriction messages if they try to use that verb on one of the other item types.
The only other option would be to add "any character", "any object" and "any location" to the drop-down list on the %item% reference in the overriding specific task.
If "any character" is selected then the %item% reference would change to a %character% reference inside of that task.
Adding these specific tasks is very quick and easy compared to executing general tasks from actions and passing parameters to them.