[I7 6L38] Change the Default Examine Result

The default result for examining an object that doesn’t actually exist is “You can’t see any such thing.” My story’s world currently contains 64 rooms and is still growing. Each room is described as containing several different objects. Now, brevity is the soul of wit and these objects really don’t need further description, and considering the sheer size of my world, giving them each a line or two when examined would represent a fairly serious time investment, but it’s contradictory to claim that the player can’t see any such thing when a minute ago I was describing such a thing they were seeing. Is there any way to change the default description so that it instead says “There’s nothing interesting there.”?

See chapter §14.10. Responses in Writing with Inform. Also available in the Inform 7 app.

The messages printed by the game after a command are called responses. In Inform 7, version 6L38 and later, Each response can be changed.

To find out which response to change, you can use the RESPONSES command while the game is running in Inform 7. This produces a multi-page list. Search for part of the text of “You can’t see any such thing.” to find the name of the response.

Searching for “see any such thing” matches the response “[We] [can’t] see any such thing.” This response uses adaptive text substitutions (see chapter 14) for person (I/You/We/He/She = [We]) and for (the tense of) a verb (can’t/couldn’t = [can’t] ). The name of this response is “parser error internal rule response (E)”.

To change that response, just set parser error internal rule response (E):

The parser error internal rule response (E) is "There's nothing interesting there."

EDIT: Added links for the Inform 7 documentation.

In I6 you could add dictionary words to the name property of a room and get a “that’s not something you need to refer to in the course of this game” message when a player tried to interact with an object using one of those words.

It looks like the I7 Undescribed Objects extension provides similar functionality.

Edit: A performance benefit of the objects created by this extension is that they aren’t subclasses (subkinds?) of “thing” and therefore aren’t considered in actions that iterate over all things.

The default examine behavior for a thing is “You see nothing special about [the thing].”, which is probably ideal. So you could just actually spawn those and let them be. Probably easier than setting up multiple special words for each object so that they are recognized as “something unimportant” rather than “something that doesn’t exist”.


[code]The Office is a room. The description of the office is “You see only a chair here. How sad. The floor here is very hard.”.

The chair is scenery in the office.

[or if you need to spawn multiple of a same thing]

A rockhard floor is a kind of scenery thing.

There is a rockhard floor is in the office.[/code]

I believe this is the “Correct” way of handling these.


You can also do them all in one go, like:

The chair, the sun and the tree are scenery in the office.