let's play: Inform 10's Basic Inform and Standard Rules (Complete)

the mishandling of KISS is my main point of disagreement with Lord Inform, which his admittely monocultural stance led me to have written & posted elsewhere a complete substituition of that lapse in victorian dark age.

(TODO: find & post the link to the substitition)

Best regards from Italy,
dott. Piergiorgio.

I forgot all about unsuccessful attempt by rules! That rulebook is empty by default, right?

Right, I spend a lot of time customizing all of these responses. Once, after a bit of testing, a playtester commented “Is that the voice of Graham Nelson I hear?” because I let one slip through. I think that was for Portrait with Wolf.

I think ATTACK has the most synonyms. One of my WIPs has combat and there are a lot of commands to clear.

Yeah, there’s effectively a default “unsuccessful attempt” rule that prints “[The noun] [are] unable to do that.” It’s not actually in the “unsuccessful attempt” rulebook, though, it’s in the “carry out requested actions rule”, which calls “unsuccessful attempt” and prints that default message if the rulebook ends in failure.

In Inform’s defense, it’s hard to think of a good default behavior for such an action. People might react to a kiss in so many different ways, and only the author of those NPCs can say what those ways might be. So for Dialog we eventually went with “[The noun] [does]n’t seem receptive to that sort of thing.” If someone is receptive to it, the author will need to specify how receptive, in what way, if they’re flattered or scandalized or flirtatious and so on.

I believe there was an earlier version of Inform 7 where the default message was “Keep your mind on the game.”, which is less defensible. Unfortunately, before the response system was added, Inform buried its default action messages deep within the I6 implementation. So it’s quite hard to download an earlier version of I7 and see what its messages are.

Let’s keep moving. We are comfortably three-fourths of the way through the Actions now.

Standard Rules: Actions 8

§104. Answering it that.

Inform’s built-in systems of issuing NPC commands and persuasion make it possible for players to command other characters directly. There must, however, be a way to handle cases where players issue text that cannot be parsed.

Answering it that is an action applying to one thing and one topic.
The answering it that action translates into Inter as "Answer".

The specification of the answering it that action is "The Standard Rules do
not include any systematic way to handle conversation: instead, Inform is
set up so that it is as easy as we can make it to write specific rules
handling speech in particular games, and so that if no such rules are
written then all attempts to communicate are gracefully if not very
interestingly rejected.

The topic here can be any double-quoted text, which can itself contain
tokens in square brackets: see the documentation on Understanding.

Answering is an action existing so that the player can say something free-form
to somebody else. A convention of IF is that a command such as DAPHNE, TAKE
MASK is a request to Daphne to perform an action: if the persuasion rules in
force mean that she consents, the action 'Daphne taking the mask' does
indeed then result. But if the player types DAPHNE, 12375 or DAPHNE, GREAT
HEAVENS - or anything else not making sense as a command - the action
'answering Daphne that ...' will be generated.

The name of the action arises because it is also caused by typing, say,
ANSWER 12375 when Daphne (say) has asked a question."

§105. Report.

This is the barest of implementations, but what else could be done? The possibility space—anything that isn’t a parsable command—is utterly vast. If the author wants to generate a custom response to a bit of text, they can do so, for instance:

after answering marbles that "hello":
	say "Marbles blinks slowly in your direction.";
Report an actor answering something that (this is the block answering rule):
    if the actor is the player:
        now the prior named object is nothing;
        say "[There] [are] no reply." (A);
    stop the action.

§106. Telling it about.

telling it about is meant as a straightforward attempt to communicate, informing a character about a subject. Numerous extensions and strategies exist for more elaborate simulation.

Telling it about is an action applying to one thing and one topic.
The telling it about action translates into Inter as "Tell".

The specification of the telling it about action is "The Standard Rules do
not include any systematic way to handle conversation: instead, Inform is
set up so that it is as easy as we can make it to write specific rules
handling speech in particular games, and so that if no such rules are
written then all attempts to communicate are gracefully if not very
interestingly rejected.

The topic here can be any double-quoted text, which can itself contain
tokens in square brackets: see the documentation on Understanding.

Telling is an action existing only to catch commands like TELL ALEX ABOUT
GUITAR. Customarily in IF, such a command is shorthand which the player
accepts as a conventional form: it means 'tell Alex what I now know about
the guitar' and would make sense if the player had himself recently
discovered something significant about the guitar which might interest
Alex."

§107. Check.

A precaution to start: the player is not allowed to talk to themself.

Check an actor telling something about (this is the telling yourself rule):
    if the actor is the noun:
        if the actor is the player:
            say "[We] [talk] to [ourselves] a while." (A);
        stop the action.

Inform 10 has no built-in system for managing what characters know. This is a simple call and response.

Report an actor telling something about (this is the block telling rule):
    if the actor is the player:
        now the prior named object is nothing;
        say "This [provoke] no reaction." (A);
    stop the action.

§109. Asking it about.

asking it about is likewise just a hook upon which something might be hung. As a general comment regarding all of these “conversational” actions, I feel their openness reflects one of the hardships of parser authorship (and play, too). There is a freedom implied by this design (“type any text”) that cannot be reciprocated reasonably. This is true of physical commands too, of course, but the physical is more readily bounded than the conceptual.

This is one of the reasons I like choice-based conversation systems.

Asking it about is an action applying to one thing and one topic.
The asking it about action translates into Inter as "Ask".

The specification of the asking it about action is "The Standard Rules do
not include any systematic way to handle conversation: instead, Inform is
set up so that it is as easy as we can make it to write specific rules
handling speech in particular games, and so that if no such rules are
written then all attempts to communicate are gracefully if not very
interestingly rejected.

The topic here can be any double-quoted text, which can itself contain
tokens in square brackets: see the documentation on Understanding.

Asking is an action existing only to catch commands like ASK STEPHEN ABOUT
PENELOPE. Customarily in IF, such a command is shorthand which the player
accepts as a conventional form: it means 'engage Mary in conversation and
try to find out what she might know about'. It's understood as a convention
of the genre that Mary should not be expected to respond in cases where
there is no reason to suppose that she has anything relevant to pass on -
ASK JANE ABOUT RICE PUDDING, for instance, need not conjure up a recipe
even if Jane is a 19th-century servant and therefore almost certainly
knows one."

§110. Report.

There is just one rule, here. By default, NPCs will not respond to any asking it about action.

Report an actor asking something about (this is the block asking rule):
    if the actor is the player:
        now the prior named object is nothing;
        say "[There] [are] no reply." (A);
    stop the action.

§111. Asking it for.

The player is through with text strings, but they are not through communicating.asking it for is, in fact, a highly specialized alternative to issuing a command to an NPC.

Asking it for is an action applying to two things.
The asking it for action translates into Inter as "AskFor".

The specification of the asking it for action is "The Standard Rules do
not include any systematic way to handle conversation, but this is
action is not quite conversation: it doesn't involve any spoken text as
such. It exists to catch commands like ASK SALLY FOR THE EGG WHISK,
where the whisk is something which Sally has and the player can see.

Slightly oddly, but for historical reasons, an actor asking himself for
something is treated to an inventory listing instead. All other cases
are converted to the giving action: that is, ASK SALLY FOR THE EGG WHISK
is treated as if it were SALLY, GIVE ME THE EGG WHISK - an action for
Sally to perform and which then follows rules for giving.

To ask for information or something intangible, see the asking it about
action."

§112. Check.

There are two rules here. The first handles what must be an unlikely possibility: the player asking the player for something.

Check an actor asking something for (this is the asking yourself for something rule):
    if the actor is the noun and the actor is the player:
        try taking inventory instead.


The second rule handles a redirect, and the player will attempt to command the NPC to give the second noun to them.

Note the rather long phrase used for the conversion. This calls an I6 routine that—I am only guessing here—is used to issue other NPC requests as well. It is defined, much later, in the “Phrase Definitions” section of the standard rules.

To convert to request of (X - object) to perform (AN - action name) with
    (Y - object) and (Z - object):
    (- return ConvertToRequest({X}, {AN}, {Y}, {Z}); -).

into

Check an actor asking something for (this is the translate asking for to giving rule):
    convert to request of the noun to perform giving it to action with the second noun and the actor.

§113. Waiting.

This is a familiar one: the player advances the clock without taking other actions.

Section 7 - Standard actions which are checked but then do nothing unless rules intervene

Waiting is an action applying to nothing.
The waiting action translates into Inter as "Wait".

The specification of the waiting action is "The inaction action: where would
we be without waiting? Waiting does not cause time to pass by - that happens
anyway - but represents a positive choice by the actor not to fill that time.
It is an action so that rules can be attached to it: for instance, we could
imagine that a player who consciously decides to sit and wait might notice
something which a busy player does not, and we could write a rule accordingly.

Note the absence of check or carry out rules - anyone can wait, at any time,
and it makes nothing happen."

§114. Report.

There is only one rule here, and, meanwhile, the world will do what it will.

Report an actor waiting (this is the standard report waiting rule):
    if the actor is the player:
        if the action is not silent:
            now the prior named object is nothing;
            say "Time [pass]." (A);
    otherwise:
        say "[The actor] [wait]." (B).


§115. Touching.

Given the simulated tactility of parser games, touching is something players are bound to try, but this is something hard to simulate generally.

Touching is an action applying to one thing.
The touching action translates into Inter as "Touch".

The specification of the touching action is "Touching is just that, touching
something without applying pressure: a touch-sensitive screen or a living
creature might react, but a standard push-button or lever will probably not.

In the Standard Rules there are no check touching rules, since touchability
is already a requirement of the noun for the action anyway, and no carry out
rules because nothing in the standard Inform world model reacts to
a mere touch - though report rules do mean that attempts to touch other
people provoke a special reply."

I once read that feedback for the command examine me can help an author anticipate what kind of game they are playing, and even make some guesses about quality. It’s a potential indication regarding narrative voice and depth of implementation. I think responses to touch me might tell us even more, since the command itself is so niche and there will often be nothing interesting to say in response. In Repeat the Ending, the orange-eyed woman has this to say:

>touch me
While I do find this primeoid shell appealing aesthetically, I have no outsized attachment to it.

In any case, players will inevitably make attempts, so something must be said.

Report an actor touching (this is the report touching yourself rule):
    if the noun is the actor:
        if the actor is the player:
            if the action is not silent:
                say "[We] [achieve] nothing by this." (A);
        otherwise:
            say "[The actor] [touch] [themselves]." (B);
        stop the action;
    continue the action.

Likewise, touching NPCs must be responsded to in some way. In Marbles, D, and the Sinister Spotlight, Marbles asks that the player try more cat-friendly actions instead.

>touch d
(my human boy, D)
TOUCHing is kind of a human thing, isn’t it? Investigate cat-specific ACTIONS for alternatives.

Report an actor touching (this is the report touching other people rule):
    if the noun is a person:
        if the actor is the player:
            if the action is not silent:
                say "[The noun] [might not like] that." (A);
        otherwise if the noun is the player:
            say "[The actor] [touch] [us]." (B);
        otherwise:
            say "[The actor] [touch] [the noun]." (C);
        stop the action;
    continue the action.

Once person-specific outcomes are handled, a generic, catch-all response is issued.

Report an actor touching (this is the report touching things rule):
    if the actor is the player:
        if the action is not silent:
            say "[We] [feel] nothing unexpected." (A);
    otherwise:
        say "[The actor] [touch] [the noun]." (B)

§117. Waving.

We had to wave the sceptre in Zork I, so of course we must wave things now. Like so many recent actions, the Standard Rules do not attempt to simulate waving in any depth. Its presence is something experienced players will expect. At the same time, it is not so expected that it goes without saying. An author requiring a waving action for victory will likely have to tell players to try it at least once.

Waving is an action applying to one thing.
The waving action translates into Inter as "Wave".

The specification of the waving action is "Waving in this sense is like
waving a sceptre: the item to be waved must be directly held (or worn)
by the actor.

In the Standard Rules there are no carry out rules for this action because
nothing in the standard Inform world model which reacts to it. The action
is provided for authors to hang more interesting behaviour onto for special
cases: say, waving a particular rusty iron rod with a star on the end."

§118. Check.

No implicit taking transpires here. Things that aren’t held will not be waved.

Check an actor waving (this is the can't wave what's not held rule):
    if the actor is not the holder of the noun:
        if the actor is the player:
            say "But [we] [aren't] holding [regarding the noun][those]." (A);
        stop the action.

§119. Report.

An acknowledgement. Authors will want to delist or “get in front” of this report if they intend to simulate waving in any depth.

Report an actor waving (this is the report waving things rule):
    if the actor is the player:
        if the action is not silent:
            say "[We] [wave] [the noun]." (A);
    otherwise:
        say "[The actor] [wave] [the noun]." (B).

This is a good place to stop today, even thought he post is short. The next four actions involve pushing and the like, and they ought to be discussed all at once.

It’s one of the many, many weirdnesses of Inform that’s no longer relevant (if it ever was) but can’t be removed in case someone’s project depends on it.

It’s just like the normal “convert to…” phrase, but the resulting action is “asking X to try AN”.

Notably, this does not make the action fail. As a result, you can order an NPC to touch whomever you want, and nothing will stop them.

It certainly could be phased out, though. In one release it could be moved to a separate “Bonus rules” plugin that’s included in the Standard Rules, and in a later release the inclusion of that plugin in the Standard Rules could be removed while still bundling the plugin, allowing people to use it if they want.

Still pushing!

Standard Rules: Actions 9

As we’ve discussed before, Inform entertains basic conceptions of spatial relationships, though there is not a built-in model for the way things exist in spaces like rooms or containers. For instance, the Standard Rules will respond to look under [something] commands, but it has by default no mechanism or data structure for tracking whether or not one thing is actually under or above another.

Actions like pulling and pushing connote perspective and distance. We push from ourselves, for instance, and pull to, but the Standard Rules leave such considerations to us.

§120. Pulling.

As already suggested, there isn’t any real simulation for pulling built into Inform. This is an action players will try, whether due to tradition or deduction, and so it really ought to be included in the Standard Rules.

Pulling is an action applying to one thing.
The Pulling action translates into Inter as "Pull".

The specification of the pulling action is "Pulling is the act of pulling
something not grossly larger than the actor by an amount which would not
substantially move it.

In the Standard Rules there are no carry out rules for this action because
nothing in the standard Inform world model which reacts to it. The action
is provided for authors to hang more interesting behaviour onto for special
cases: say, pulling a lever. ('The big red lever is a fixed in place device.
Instead of pulling the big red lever, try switching on the lever. Instead
of pushing the big red lever, try switching off the lever.')"

§121. Check.

It isn’t possible to pull something fixed in place.

Check an actor pulling (this is the can't pull what's fixed in place rule):
    if the noun is fixed in place:
        if the actor is the player:
            say "[regarding the noun][They] [are] fixed in place." (A);
        stop the action.

Note that pulling scenery generates a different, less communicative response. In both cases, of course, we authors would likely write our own texts, but what else is new?

Check an actor pulling (this is the can't pull scenery rule):
    if the noun is scenery:
        if the actor is the player:
            say "[We] [are] unable to." (A);
        stop the action.

Player’s can’t pull other people. The generic "[The noun] [might not like] that." response is used a whopping six times in the Standard Rules. We first saw it issued as a reply to touching other people.

Check an actor pulling (this is the can't pull people rule):
    if the noun is a person:
        if the actor is the player:
            say "[The noun] [might not like] that." (A);
        stop the action.

§122. Report.

The response for player’s pulling themselves is handled in the report phase, and while I can see an argument for doing, I would personally have left it as a check rule.

Then again, both of these reported outcomes, handled in a single rule, describe a very limited kind of action “success.”

Report an actor pulling (this is the report pulling rule):
    if the actor is the player:
        if the action is not silent:
            now the prior named object is nothing;
            say "Nothing obvious [happen]." (A);
    otherwise:
        say "[The actor] [pull] [the noun]." (B).

§123. Pushing.

Observant readers will note that the second paragraph of the pushing specification has been copied directly from the pulling specification. This sounds worse than it is in practice, as the actions’ respective rules are more or less identical. Still, as anyone who has implemented a push button before can attest, there exists a ready example that would have fit right at home in the specification.

Pushing is an action applying to one thing.
The Pushing action translates into Inter as "Push".

The specification of the pushing action is "Pushing is the act of pushing
something not grossly larger than the actor by an amount which would not
substantially move it. (See also the pushing it to action, which involves
a longer-distance push between rooms.)

In the Standard Rules there are no carry out rules for this action because
nothing in the standard Inform world model which reacts to it. The action
is provided for authors to hang more interesting behaviour onto for special
cases: say, pulling a lever. ('The big red lever is a fixed in place device.
Instead of pulling the big red lever, try switching on the lever. Instead
of pushing the big red lever, try switching off the lever.')"


I’ll collapse the following action processing rules, since they are identical—down to the bifurcated report rule—to those for pulling.

Action Processing Rules for pushing

§124. Check.

Check an actor pushing something (this is the can't push what's fixed in place rule):
    if the noun is fixed in place:
        if the actor is the player:
            say "[regarding the noun][They] [are] fixed in place." (A);
        stop the action.

Check an actor pushing something (this is the can't push scenery rule):
    if the noun is scenery:
        if the actor is the player:
            say "[We] [are] unable to." (A);
        stop the action.

Check an actor pushing something (this is the can't push people rule):
    if the noun is a person:
        if the actor is the player:
            say "[The noun] [might not like] that." (A);
        stop the action.

§125. Report.

Report an actor pushing something (this is the report pushing rule):
    if the actor is the player:
        if the action is not silent:
            now the prior named object is nothing;
            say "Nothing obvious [happen]." (A);
    otherwise:
        say "[The actor] [push] [the noun]." (B).

§126. Turning.

For every thing, turn, turn, turn. turning, as is the case with many other actions, belongs here by right of tradition and, besides, it is something players will often try. Hoever, in its current state, it is more a placeholder that an attempt to simulate. Note that, despite the mention of a dial here in the specification, turning as-is has no relation to the setting it to action. Authors implementing combination locks and the like will likely come up with their own suitable grammar.

Turning is an action applying to one thing.
The Turning action translates into Inter as "Turn".

The specification of the turning action is "Turning is the act of rotating
something - say, a dial.

In the Standard Rules there are no carry out rules for this action because
nothing in the standard Inform world model which reacts to it. The action
is provided for authors to hang more interesting behaviour onto for special
cases: say, turning a capstan."

Once again, the rules are practically identical to those for pushing and pulling, so I’ve collapsed the details.

Action Processing Rules for turning

§127. Check.

Check an actor turning (this is the can't turn what's fixed in place rule):
    if the noun is fixed in place:
        if the actor is the player:
            say "[regarding the noun][They] [are] fixed in place." (A);
        stop the action.

Check an actor turning (this is the can't turn scenery rule):
    if the noun is scenery:
        if the actor is the player:
            say "[We] [are] unable to." (A);
        stop the action.

Check an actor turning (this is the can't turn people rule):
    if the noun is a person:
        if the actor is the player:
            say "[The noun] [might not like] that." (A);
        stop the action.

§128. Report.

Report an actor turning (this is the report turning rule):
    if the actor is the player:
        if the action is not silent:
            now the prior named object is nothing;
            say "Nothing obvious [happen]." (A);
    otherwise:
        say "[The actor] [turn] [the noun]." (B).

§129. Pushing it to.

And now, a change of pace: the pushing it to action does have spatial significance, as it involves moving arge objects between rooms. I fondly recall pushing (old Infocom spoiler) the gold machine from room to room in Zork III and, less fondly, the blocks of the royal puzzle. There’s quite a bit more implementation here, including a tailor-made property and a new I6-invoked special going-with-push action.

Pushing it to is an action applying to one thing and one visible thing.
The Pushing it to action translates into Inter as "PushDir".

The specification of the pushing it to action is "This action covers pushing
a large object, not being carried, so that the actor pushes it from one room
to another: for instance, pushing a bale of hay to the east.

This is rapidly converted into a special form of the going action. If the
noun object has the either/or property 'pushable between rooms', then the
action is converted to going by the 'standard pushing in directions rule'.
If that going action succeeds, then the original pushing it to action
stops; it's only if that fails that we run on into the 'block pushing in
directions rule', which then puts an end to the matter."

§130. Check.

Note that there are only check rules involved. The pushing it to action will either fail or be converted.


The action first tests to determine if the noun is pushable between rooms.

Check an actor pushing something to (this is the can't push unpushable things rule):
    if the noun is not pushable between rooms:
        if the actor is the player:
            say "[The noun] [cannot] be pushed from place to place." (A);
        stop the action.

Should that test succeed, the rulebook verifies that the second noun is a direction (it doesn’t matter whether there is a room in that direction yet, that’s handled elsewhere).

Check an actor pushing something to (this is the can't push to non-directions rule):
    if the second noun is not a direction:
        if the actor is the player:
            say "[regarding the noun][They] [aren't] a direction." (A);
        stop the action.

I’m not sure whether this warrants a built-in rule or not. Something can be pushed up a ramp, of course, but not a ladder.

Check an actor pushing something to (this is the can't push vertically rule):
    if the second noun is up or the second noun is down:
        if the actor is the player:
            say "[The noun] [cannot] be pushed up or down." (A);
        stop the action.

A player cannot push something pushable between rooms when they are enclosed by it!

Check an actor pushing something to (this is the can't push from within rule):
    if the noun encloses the actor:
        if the actor is the player:
            say "[The noun] [cannot] be pushed from here." (A);
        stop the action.

Finally, the conversion. From a natural language point of view, we don’t have insight into the operation of this action, but we can glean from successes that the player and the noun are generally moved to the room gone to.

Check an actor pushing something to (this is the standard pushing in directions rule):
    convert to special going-with-push action.

The Standard Rules does not always account for cases in which authors disable its machinery, but, should the standard pushing in directions rule be delisted or replaced, the block pushing in directions rule might execute.

Check an actor pushing something to (this is the block pushing in directions rule):
    if the actor is the player:
        say "[The noun] [cannot] be pushed from place to place." (A);
    stop the action.

Let’s add a few more.

§131. Squeezing.

A lot of us will remember squeezing from Plundered Hearts, but that usage involved a second noun. Having read these rules front to back, we might best remember the squeezing action for Graham Nelson’s use of the term mildly fruity.

Squeezing is an action applying to one thing.
The Squeezing action translates into Inter as "Squeeze".

The specification of the squeezing action is "Squeezing is an action which
can conveniently vary from squeezing something hand-held, like a washing-up
liquid bottle, right up to squeezing a pillar in a bear hug.

In the Standard Rules there are no carry out rules for this action because
nothing in the standard Inform world model which reacts to it. The action
is provided for authors to hang more interesting behaviour onto for special
cases. A mildly fruity message is produced to players who attempt to
squeeze people, which is blocked by a check squeezing rule."

§132. Check.

There is only one rule in the check squeezing rulebook: a prohibition against squeezing. The response is identical to those for other actions discussed today: it isn’t the response that’s humorous, it’s the rule name.

Check an actor squeezing (this is the innuendo about squeezing people rule):
    if the noun is a person:
        if the actor is the player:
            say "[The noun] [might not like] that." (A);
        stop the action.

§133. Report.

This rule and its structure are familiar by now.

Report an actor squeezing (this is the report squeezing rule):
    if the actor is the player:
        if the action is not silent:
            say "[We] [achieve] nothing by this." (A);
    otherwise:
        say "[The actor] [squeeze] [the noun]." (B).

§134. Saying yes.

saying yes and its opposite, saying no, are barely actions at all. It’s worth noting that the yes, y, no, and n inputs handled by if the player consents phrases all come straight from the keyboard, so Inform doesn’t handle such inputs as actions. A lot of intervention will be required before much can be done with these actions.

Still, players are likely to type such things. Some kind of reply is probably in order.

Section 8 - Standard actions which always do nothing unless rules intervene

Saying yes is an action applying to nothing.
The Saying yes action translates into Inter as "Yes".

The specification of the saying yes action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§134. Saying yes.

There’s only one check rule here. It could arguably be handled as a mistake in current versions of Inform, though that probably isn’t adequate for compatibility reasons.

Check an actor saying yes (this is the block saying yes rule):
    if the actor is the player:
        say "That was a rhetorical question." (A);
    stop the action.

Since the code for saying no is nearly identical, I have hidden it beneath a summary.

Action Processing Rules for saying no

§136. Saying no.

Saying no is an action applying to nothing.
The Saying no action translates into Inter as "No".

The specification of the saying no action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§137. Check

Check an actor saying no (this is the block saying no rule):
    if the actor is the player:
        say "That was a rhetorical question." (A);
    stop the action.

§138. Burning.

A burning action will usually require an amount of contextual simulation that a general ruleset cannot provide. Should there be a system of ignition, burn durations, damage modeling, and the like? The Standard Rules allows for a very basic burning action. It does not allow for commands like burn kinding with the lit match, which beg such questions and involve additional nouns.

Burning is an action applying to one thing.
The Burning action translates into Inter as "Burn".

The specification of the burning action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§139. Check.

There is only one rule here to acknowledge and prevent all attempts.

Check an actor burning (this is the block burning rule):
    if the actor is the player:
        say "This dangerous act [would achieve] little." (A);
    stop the action.

§140. Waking up.

The presence of the word up in this action might have implications for command grammar, but ultimately this feels like a reflexive version of the waking action rather than its own separate thing.

Perhaps it has been retained for its humor, which stands out a bit.

Waking up is an action applying to nothing.
The Waking up action translates into Inter as "Wake".

The specification of the waking up action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§141. Check.

A single check rule ending in failure.

Check an actor waking up (this is the block waking up rule):
    if the actor is the player:
        now the prior named object is nothing;
        say "The dreadful truth [are], this [are not] a dream." (A);
    stop the action.

§142. Thinking.

This is another action that is largely in place for its humor. The specification is, word-for-word, the same as that for the waking up action, though I would add that many authors have used the command think as a basis for either hinting or goal tracking-sytems.

Thinking is an action applying to nothing.
The Thinking action translates into Inter as "Think".

The specification of the thinking action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§143. Check.

A lone, humor-forward, placeholder rule.

Check an actor thinking (this is the block thinking rule):
    if the actor is the player:
        say "What a good idea." (A);
    stop the action.

We draw ever closer to the end of the Actions section of the Standard Rules. This seems a good place to stop, as we can resume with the actions pertaining to sensory data (smelling, listening, tasting). As readers may recall, we paused to discusslistening with regard to the supplying a missing noun rulebook. That must seem like a lifetime ago!

Your post doesn’t include the rules for saying yes or waking up.

Thanks! I’ve added them in.

Saying yes is used as an action as the solution to the attacking the dragon puzzle in Colossal Cave.

I think you quoted the wrong rule here!

Pushing, I think?

In…possibly all of my Inform games after Scroll Thief, but at least several of them, I redirect all three of “pushing”, “pulling”, and “turning” to a new combined action called “moving”. In the vast majority of cases, all three of them are probably expressing the same action in the simulated world (when you see a big valve wheel that leads to the source of the acid leak, which of the three would you do to it?), and for the rare exceptions, well…that’s what “instead of” is for!

I think this would be a smart change for default Inform to make, but it would be a notable departure from tradition. Maybe I can incorporate it into Dialog…

The new I6 invocation is because action variables can’t feature in “try” phrases—you can “try going north”, but can’t “try going north with the trolley”, just like you can’t “try going north to the Hallway” (what if the Hallway isn’t actually to the north?).

For the same reason, action variables can’t feature in “convert to”. So there’s a special I6 workaround. (“Convert to” is a special I6 workaround already, but this is an even specialer one.)

If you implement a giant hamster ball, you should probably just redirect “pushing it to” to a standard going action, and have the ball be a vehicle.

This action mainly only exists because of Colossal Cave, but I do enjoy this bit of parser history. Especially in older versions of Inform, it was common for failed actions to ask snarky rhetorical questions, so this action catches any attempt by the player to take those questions literally, without needing to track which question it actually is. If the player types “yes”, it’s probably because one of those questions was just asked, and the details aren’t important.

Yeah, it is technically ambiguous: “waking up” could either be the waking up action, or the waking action applied to the direction up. In most cases, Inform handles this ambiguity by prioritizing fixed words over variables, so the waking up action is preferred. (The opposite is true in the parser: if “wake [direction]” was understood as waking, WAKE UP would prioritize the waking action on the direction up.)

The fact that it doesn’t always do this led to a very annoying bug, where if the word “inventory” appeared anywhere in the game world, “instead of taking inventory” would mean “instead of the taking action on the object with ‘inventory’ in its name” rather than “instead of the taking inventory action”. I reported this bug, Graham closed it as “working as intended”, and I had to do some really annoying work in Scroll Thief to hack around it.

No, I’m not bitter. Why do you ask? (I don’t actually know if this was ever fixed, or why it works for “waking up” but not for “taking inventory”.)

Moreso because it appears in Sorcerer, and from its very beginnings Inform has tried to emulate the Infocom canon. Its very first selling point was “this is a system to build new games for the Z-machine”, which wasn’t really a thing before Inform. It’s unlikely the Z-machine would still be around at all if not for Inform.

Doh! I was counting the number of times that response repeated and lost my place.

I think it might be fixed! Possibly.

Sorcerer accommodates them all! Of course, it had storage space for the log flume ride, so what’s another verb or two?

The text remaining in the section is a little misleading, as a large amount of out of world actions will require relatively little time. Let’s see how far we can get.

Standard Rules: Actions 10

§144. Smelling.

The smelling action has come up before because of the supplying a missing noun activity. Epistemological wrinkles aside, this is a placeholder that authors may or may not develop further.

Smelling is an action applying to nothing or one thing.
The Smelling action translates into Inter as "Smell".

The specification of the smelling action is
"The Standard Rules define this action in only a minimal way, replying only
that the player smells nothing unexpected."

§145. Report.

There’s only one action processing rule for smelling, and the NPC-specific response is arguably more interesting than the one for the player (this is usually not the case).

Report an actor smelling (this is the report smelling rule):
    if the actor is the player:
        if the action is not silent:
            say "[We] [smell] nothing unexpected." (A);
    otherwise:
        say "[The actor] [sniff]." (B).

§146. Listening to.

This is more or less a direct copy of the smelling action, right down to its complementary rule for supplying a missing noun, so I include it as a summary.

Action Processing Rules for listening to
Listening to is an action applying to nothing or one thing and abbreviable.
The Listening to action translates into Inter as "Listen".

The specification of the listening to action is
"The Standard Rules define this action in only a minimal way, replying only
that the player hears nothing unexpected."

§147. Report.

Report an actor listening to (this is the report listening rule):
    if the actor is the player:
        if the action is not silent:
            say "[We] [hear] nothing unexpected." (A);
    otherwise:
        say "[The actor] [listen]." (B).

§148. Tasting.

Inform’s implementing of the tasting action requires a noun. No filled-in blanks here! Otherwise, we have a very similar outcome for all of these non-visual sensing actions. Inform is very “sight-forward”, it might be said. All things are assumed to have a description, after all, but not tastes, sounds, or smells.

Tasting is an action applying to one thing.
The Tasting action translates into Inter as "Taste".

The specification of the tasting action is
"The Standard Rules define this action in only a minimal way, replying only
that the player tastes nothing unexpected."

§149. Report.

A variation on a theme.

Report an actor tasting (this is the report tasting rule):
    if the actor is the player:
        if the action is not silent:
            say "[We] [taste] nothing unexpected." (A);
    otherwise:
        say "[The actor] [taste] [the noun]." (B).

§150. Cutting.

The cutting action does not allow for a cutting instrument, and this must be necessary for some sort of compatibility with earlier versions of Inform or the Z-machine. It’s hard to imagine doing anything with the action as-is beyond acknowledging that the player typed something intelligible.

Cutting is an action applying to one thing.
The Cutting action translates into Inter as "Cut".

The specification of the cutting action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)

§151. Check.

A single rule ends in a failed attempt.

Check an actor cutting (this is the block cutting rule):
    if the actor is the player:
        say "Cutting [regarding the noun][them] up [would achieve] little." (A);
    stop the action.

§152. Jumping.

The jumping action is popular among authors as an improvised test command, as it is seldom used for anything and always succeeds by default. It was, I believe, one of the first commands my friend showed me when he introduced me to Zork I many years ago.

Jumping is an action applying to nothing.
The Jumping action translates into Inter as "Jump".

The specification of the jumping action is
"The Standard Rules define this action in only a minimal way, simply reporting
a little jump on the spot."

§153. Report.

As already stated, jumping succeeds by default.

Report an actor jumping (this is the report jumping rule):
    if the actor is the player:
        if the action is not silent:
            say "[We] [jump] on the spot." (A);
    otherwise:
        say "[The actor] [jump] on the spot." (B).

§154. Tying it to.

tying it to is one of those actions that many authors happily avoid. Like implementing liquids or duplicates, tying things to things sometimes invites a level of fun-resistant simulation. One of the more harrowing messages (emotionally, not technically) in Repeat the Ending involves an untying action. The specification doesn’t touch upon these implementation difficulties, using more or less the same text as it does for some other actions.

However, the documentation does take up this difficult subject and uses ropes in examples.

Tying it to is an action applying to two things.
The Tying it to action translates into Inter as "Tie".

The specification of the tying it to action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§155. Check.

A familiar response used for touching, squeezing, and the like.

Check an actor tying something to (this is the block tying rule):
    if the actor is the player:
        say "[We] [would achieve] nothing by this." (A);
    stop the action.

§156. Drinking.

Another boilerplate specification used elsewhere.

Drinking is an action applying to one thing.
The Drinking action translates into Inter as "Drink".

The specification of the drinking action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§157. Check.

drinking is not destructive in the way that eating is, as that would probably require a “liquid” kind and a potable property. The action always fails by default.

Check an actor drinking (this is the block drinking rule):
    if the actor is the player:
        now the prior named object is nothing;
        say "[There's] nothing suitable to drink here." (A);
    stop the action.

§158. Saying sorry.

Reusing a familiar specification here feels like a missed opportunity. Authors will probably not wonder why drinking is specified, but saying sorry might warrant comment of some kind. Does this action come to us via Curses rather than from Infocom? I randomly sampled some later Infocom games and the verb seems unrecognized.

Saying sorry is an action applying to nothing.
The Saying sorry action translates into Inter as "Sorry".

The specification of the saying sorry action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§159. Check.

Should this really be a failed check? It would seem the protagonist has successfully said that they are sorry. Perhaps the player has failed to direct the protagonist.

Check an actor saying sorry (this is the block saying sorry rule):
    if the actor is the player:
        say "Oh, don't f American dialect option is
            active]apologize[otherwise]apologise[end if]." (A);
    stop the action.

§160. Swinging.

Another non-specific specification for the swinging action. swinging something at something is implemented in very early versions of Zork I, but it has since become an action wihtout a second noun.

Swinging is an action applying to one thing.
The Swinging action translates into Inter as "Swing".

The specification of the swinging action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§161. Check.

An action-specific failure rather than a completely generic message.

Check an actor swinging (this is the block swinging rule):
    if the actor is the player:
        now the prior named object is nothing;
        say "[There's] nothing sensible to swing here." (A);
    stop the action.

This isn’t a bad place to stop. Next time, we’ll deal with a few more in-world actions, then several out of world ones. With any luck, that will be the end of the Actions section.

Same reason as “saying yes” and “saying no”: in case a player thinks the parser snarking at them is actually meant as a conversation.

The response is not always the most appropriate, though. Authors implementing gut-wrenching conversations with characters in the world should probably override it.

Right! Though “yes” originated with Adventure (perhaps “no” did, too), and this seems to have been Nelson’s own addition specifically responding to Inform’s own built-in snark (unless some other British system had a “sorry” response that I’m unaware of).

Putting aside the victorianisms of Lord Inform, I note that when dangling from a ledge above a deep chasm, a NPC surely like being pulled up to safety…

Another point, I remember wrong or in past Inform 5 or 6 Library treat BURN as a synonym of attack (that is, has the stock block answer “violence isn’t an answer”) ?

Best regards from Italy,
dott. Piergiorgio.

I would do something like

before pulling the hapless victim:
    try rescuing the noun instead;

I’m not sure about burning. My guess is that it has always been its own thing. As far back as Zork I, you could burn the leaves, couldn’t you? Perhaps I misremember.

Standard Rules: Actions 11

§162. Rubbing.

We won’t get into command grammar until next time, but I recall being surprised that clean was a synonym for rub. Even if the varied vocabulary available goes unremarked, I appreciate that we have at last some new specification language.

Rubbing is an action applying to one thing.
The Rubbing action translates into Inter as "Rub".

The specification of the rubbing action is
"The Standard Rules define this action in only a minimal way, simply reporting
that it has happened."

§163. Check.

This isn’t this actor’s first rodeo. We all know by now that actors tend to dislike [your action of choice].

Check an actor rubbing (this is the can't rub another person rule):
    if the noun is a person who is not the actor:
        if the actor is the player:
            say "[The noun] [might not like] that." (A);
        stop the action.

§164. Report.

If the player doesn’t rub a person, the unadorned facts are laid bare:

Report an actor rubbing (this is the report rubbing rule):
    if the actor is the player:
        if the action is not silent:
            say "[We] [rub] [the noun]." (A);
    otherwise:
        say "[The actor] [rub] [the noun]." (B).

§165. Setting it to.

I mentioned the turning action in a previous post. Some enterprising authors might remap its grammar to the setting it to action instead. That won’t be enough, though, as the only rule in place for the setting to action is prohibitive.

An author might want to make a third action instead that makes use of numbers rather than topics, depending on particulars. In any case, we have read this specification language before.

Setting it to is an action applying to one thing and one topic.
The Setting it to action translates into Inter as "SetTo".

The specification of the setting it to action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§166. Check.

There is no built-in settable property or some such thing for this rule to test against, and all attempts will fail.

Check an actor setting something to (this is the block setting it to rule):
    if the actor is the player:
        say "No, [we] [can't set] [regarding the noun][those] to anything." (A);
    stop the action.

§167. Waving hands.

This is an interesting one! Is it part of the Infocom canon? In Zork I, the player can wave the sceptre, but that is another action. The waving hands action, name aside, involves no noun at all—the hands are assumed rather than asserted. I believe that in Enchanter, the protagonist can wave at the tortoise, but that might be a third action unsupported by Inform, unless a noun has been inferred somewhere. So far as this action applying to nothing goes, I’m not sure of its provenence.

While the specification doesn’t address these issues, it was written specifically about the waving hands action.

Waving hands is an action applying to nothing.
The Waving hands action translates into Inter as "WaveHands".

The specification of the waving hands action is
"The Standard Rules define this action in only a minimal way, simply reporting
a little wave of the hands."

§168. Report.

Only one rule, written specifically about the action in question.

Report an actor waving hands (this is the report waving hands rule):
    if the actor is the player:
        if the action is not silent:
            say "[We] [wave]." (A);
    otherwise:
        say "[The actor] [wave]." (B).

§169. Buying.

When did buying first appear in the Infocom canon? The hawker’s booth in Sorcerer? It is implemented here only to be blocked, and the specification matches many we have seen already.

Buying is an action applying to one thing.
The Buying action translates into Inter as "Buy".

The specification of the buying action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§170. Check.

buying is prohibited by default, though the response is action-specific. As is true with so many other cases, it would be impossible to build a general economic system that would apply to Inform games as a whole, so this minimal implementaiton makes sense.

Check an actor buying (this is the block buying rule):
    if the actor is the player:
        now the prior named object is nothing;
        say "Nothing [are] on sale." (A);
    stop the action.

§171. Climbing.

Another action that does little, though players are bound to try it. In some cases, climbing up might be redirected to going up as a nicety.

Climbing is an action applying to one thing.
The Climbing action translates into Inter as "Climb".

The specification of the climbing action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§172. Check.

While the response does not seem specific to climbing, it is unique:

Check an actor climbing (this is the block climbing rule):
    if the actor is the player:
        say "Little [are] to be achieved by that." (A);
    stop the action.

§173. Sleeping.

We have reached the last of the in-world actions, which means that we have read this text for the last time:

Sleeping is an action applying to nothing.
The Sleeping action translates into Inter as "Sleep".

The specification of the sleeping action is
"The Standard Rules define this action in only a minimal way, blocking it
with a check rule which stops it in all cases. It exists so that before
or instead rules can be written to make it do interesting things in special
cases. (Or to reconstruct the action as something more substantial, unlist
the block rule and supply carry out and report rules, together perhaps
with some further check rules.)"

§174. Check.

Sleeping warrants an action specific response, and attempts all end in failure.

Check an actor sleeping (this is the block sleeping rule):
    if the actor is the player:
        say "[We] [aren't] feeling especially drowsy." (A);
    stop the action.

§175. Out of world actions. We start with a brace of actions which control the (virtual) hardware of the virtual machine: restore, save, quit, restart, verify, and transcript on and off. All of these are implemented at the I6 level where, in fact, they are delegated quickly to assembly language instructions for whichever is the current VM: so these are close to the metal, as they say.

There are a lot of these, and they are subsumed deep beneath the level of our natural language investigations. We can interfere with them in natural language, of course, with rules beginning as such:

check saving the game:

Players can get bristly about this sort of thing (can’t we? we’re players, too, after all), but there’s nothing stopping us.

Note that not every command ties back to an action! I believe that OOPS, AGAIN, and UNDO are keyboard routines, (aren’t they? I may be mistaken), so they won’t be listed here.

eta:

The rule names themselves might come in handy. In early versions of Portrait with Wolf, the game offered to start a transcript for the player:

[bt]Content Advisory:[rt]
[lb]Playtesters suggest that this work is most appropriate for adults. You can view more detailed content information by typing [bt]*CONTENT*[rt] or [bt]*CW*[rt] at any time during play";
	unless transcripting is on:
		say "[line break][line break][bt]Transcription Advisory:[rt][lb]This work frequently clears the screen. Would you like to to record a transcript of this play session?[lb]";
		if the player consents:
			try switching the story transcript on;
	say "[line break][line break][bold type]Press any key to have your fortune told.[roman type]";
	wait for any key;
	clear the screen;
	spoof the banner;
Section 9 - Standard actions which happen out of world

Quitting the game is an action out of world and applying to nothing.
The quitting the game action translates into Inter as "Quit".

The quit the game rule is listed in the carry out quitting the game rulebook.
The quit the game rule translates into Inter as "QUIT_THE_GAME_R" with
    "Are you sure you want to quit? " (A).

Saving the game is an action out of world and applying to nothing.
The saving the game action translates into Inter as "Save".

The save the game rule is listed in the carry out saving the game rulebook.
The save the game rule translates into Inter as "SAVE_THE_GAME_R" with
    "Save failed." (A),
    "Ok." (B).

Restoring the game is an action out of world and applying to nothing.
The restoring the game action translates into Inter as "Restore".

The restore the game rule is listed in the carry out restoring the game rulebook.
The restore the game rule translates into Inter as "RESTORE_THE_GAME_R" with
    "Restore failed." (A),
    "Ok." (B).

Restarting the game is an action out of world and applying to nothing.
The restarting the game action translates into Inter as "Restart".

The restart the game rule is listed in the carry out restarting the game rulebook.
The restart the game rule translates into Inter as "RESTART_THE_GAME_R" with
    "Are you sure you want to restart? " (A),
    "Failed." (B).

Verifying the story file is an action out of world and applying to nothing.
The verifying the story file action translates into Inter as "Verify".

The verify the story file rule is listed in the carry out verifying the story file rulebook.
The verify the story file rule translates into Inter as "VERIFY_THE_STORY_FILE_R" with
    "The game file has verified as intact." (A),
    "The game file did not verify as intact, and may be corrupt." (B).

Switching the story transcript on is an action out of world and applying to nothing.
The switching the story transcript on action translates into Inter as "ScriptOn".

The switch the story transcript on rule is listed in the carry out switching the story
    transcript on rulebook.
The switch the story transcript on rule translates into Inter as "SWITCH_TRANSCRIPT_ON_R" with
    "Transcripting is already on." (A),
    "Start of a transcript of:" (B),
    "Attempt to begin transcript failed." (C).

Switching the story transcript off is an action out of world and applying to nothing.
The switching the story transcript off action translates into Inter as "ScriptOff".

The switch the story transcript off rule is listed in the carry out switching the story
    transcript off rulebook.
The switch the story transcript off rule translates into Inter as "SWITCH_TRANSCRIPT_OFF_R" with
    "Transcripting is already off." (A),
    "[line break]End of transcript." (B),
    "Attempt to end transcript failed." (C).

§176. The VERSION command is not quite so close to the metal — it is implemented in I6, at the end of the day — but it does involve reading the bytes of the story file header, so it needs to take quite different forms for the different formats being compiled to.

Again, having the rule names at hand might come in handy.

Requesting the story file version is an action out of world and applying to nothing.
The requesting the story file version action translates into Inter as "Version".

The announce the story file version rule is listed in the carry out requesting the story
    file version rulebook.
The announce the story file version rule translates into Inter as "ANNOUNCE_STORY_FILE_VERSION_R".

§177. There’s really no very good reason why we provide the out-of-world command SCORE but not (say) TIME, or any one of dozens of other traditional what’s-my-status commands: DIAGNOSE, say, or PLACES. But we are conservative on this; it’s easy for users or extensions to provide these verbs if they want them, and they are not always appropriate for every project. Even SCORE is questionable, but its removal would be a gesture too far.

In light of all that remains, it is surprising, looking back, that diagnose—it was important in Zork I, at least—did not endure to today. Believe it or not, Repeat the Ending has 40 stock responses to the diagnose me command, and there are a few complications to output based on score and progress. That was a very old-fashioned, Zorkian game!

But as a broader philosophical point, extensions might be better suited for information systems using commands like places (which seems different from diagnose to me).

Requesting the score is an action out of world and applying to nothing.
The requesting the score action translates into Inter as "Score".

The announce the score rule is listed in the carry out requesting the score rulebook.
The announce the score rule translates into Inter as "ANNOUNCE_SCORE_R" with
    "[if the story has ended]In that game you scored[otherwise]You have so far scorednd if
    [score] out of a possible [maximum score], in [turn count] turn[s]" (A),
    ", earning you the rank of " (B),
    "[There] [are] no score in this story." (C),
    "[bracket]Your score has just gone up by umber understood in words
        point[s].[close bracket]" (D),
    "[bracket]Your score has just gone down by umber understood in words
        point[s].[close bracket]" (E).

§178. It’s perhaps clumsy to have three actions for switching the style of room description, but this accords with I6 custom (and Infocom’s, for that matter), and does no harm.

There must be someone who uses these still, though I only see them discussed in terms of tractor paper preservation (the printers of old) and, perhaps more remotely, the lack of scrollback on old systems. I have collapsed them here for reference.

Preferring abbreviated code summaries of abbreviated room description preferences
Preferring abbreviated room descriptions is an action out of world and applying to nothing.
The preferring abbreviated room descriptions action translates into Inter as "LMode3".

The prefer abbreviated room descriptions rule is listed in the carry out preferring
    abbreviated room descriptions rulebook.
The prefer abbreviated room descriptions rule translates into Inter as "PREFER_ABBREVIATED_R".

The standard report preferring abbreviated room descriptions rule is listed in the
    report preferring abbreviated room descriptions rulebook.
The standard report preferring abbreviated room descriptions rule translates into
    Inter as "REP_PREFER_ABBREVIATED_R" with
    " is now in its 'superbrief' mode, which always gives short descriptions
    of locations (even if you haven't been there before)." (A).

Preferring unabbreviated room descriptions is an action out of world and applying to nothing.
The preferring unabbreviated room descriptions action translates into Inter as "LMode2".

The prefer unabbreviated room descriptions rule is listed in the carry out preferring
    unabbreviated room descriptions rulebook.
The prefer unabbreviated room descriptions rule translates into Inter as "PREFER_UNABBREVIATED_R".

The standard report preferring unabbreviated room descriptions rule is listed in the
    report preferring unabbreviated room descriptions rulebook.
The standard report preferring unabbreviated room descriptions rule translates into
    Inter as "REP_PREFER_UNABBREVIATED_R" with
    " is now in its 'verbose' mode, which always gives long descriptions of
    locations (even if you've been there before)." (A).

Preferring sometimes abbreviated room descriptions is an action out of world and
    applying to nothing.
The preferring sometimes abbreviated room descriptions action translates into Inter as "LMode1".

The prefer sometimes abbreviated room descriptions rule is listed in the carry out
    preferring sometimes abbreviated room descriptions rulebook.
The prefer sometimes abbreviated room descriptions rule translates into Inter as
    "PREFER_SOMETIMES_ABBREVIATED_R".

The standard report preferring sometimes abbreviated room descriptions rule is listed
    in the report preferring sometimes abbreviated room descriptions rulebook.
The standard report preferring sometimes abbreviated room descriptions rule translates
    into Inter as "REP_PREFER_SOMETIMES_ABBR_R" with
    " is now in its 'brief' printing mode, which gives long descriptions
    of places never before visited and short descriptions otherwise." (A).

§179. Similarly, two different actions handle “notify” and “notify off”.

These commands likewise see little action today, but are preserved for similar reasons.

Pertaining to switching score notification on and off
Switching score notification on is an action out of world and applying to nothing.
The switching score notification on action translates into Inter as "NotifyOn".

The switch score notification on rule is listed in the carry out switching score
    notification on rulebook.
The switch score notification on rule translates into Inter as "SWITCH_SCORE_NOTIFY_ON_R".

The standard report switching score notification on rule is listed in the report
    switching score notification on rulebook.
The standard report switching score notification on rule translates into
    Inter as "REP_SWITCH_NOTIFY_ON_R" with "Score notification on." (A).

Switching score notification off is an action out of world and applying to nothing.
The switching score notification off action translates into Inter as "NotifyOff".

The switch score notification off rule is listed in the carry out switching score
    notification off rulebook.
The switch score notification off rule translates into Inter as "SWITCH_SCORE_NOTIFY_OFF_R".

The standard report switching score notification off rule is listed in the report
    switching score notification off rulebook.
The standard report switching score notification off rule translates into
    Inter as "REP_SWITCH_NOTIFY_OFF_R" with "Score notification off." (A).

§180. Lastly, the “pronouns” verb, which is perhaps more often used by people debugging the I6 parser than by actual players.

As stated, this action can be very helpful during playtesting (even those of us who don’t debug the i6 parser).

Requesting the pronoun meanings is an action out of world and applying to nothing.
The requesting the pronoun meanings action translates into Inter as "Pronouns".

The announce the pronoun meanings rule is listed in the carry out requesting the
    pronoun meanings rulebook.
The announce the pronoun meanings rule translates into Inter as "ANNOUNCE_PRONOUN_MEANINGS_R" with
    "At the moment, " (A),
    "means " (B),
    "is unset" (C),
    "no pronouns are known to the game." (D).

And that, friends, is that! We have reached what must be the longest section of the Standard Rules: Actions. I’ve learned a lot reading through them, and from reading comments from other members! Hopefully some of you have gotten something out of this, too.

As a reminder, you can search Discourse threads individually, so ths thread might be a helpful reference for anyone looking for commentary on an action or rule.

Current Status:

  • Basic Inform: Preamble
  • Standard Rules: Preamble
  • Basic Inform: Miscellaneous Definitions
  • Standard Rules: Physical World Model
  • Standard Rules: Variables and Rulebooks
  • Standard Rules: Activities
  • Standard Rules: Actions
  • Standard Rules: Command Grammar
  • Basic Inform: Phrase Definitions
  • Basic Inform: Adjectival Definitions
  • Standard Rules: Phrase Definitions

The next section, Command Grammar, is quite short. There may not be a lot of discussion surrounding it, though it is very helpful to have all of these understand phrases in one place!

I believe this goes back to Adventure, where you can wave at the shadowy figure in the opposite window.

I would call them “special parser behavior”, but yep! They’re handled in the parser itself, not in the action machinery. The same is true for an empty input.

Dialog didn’t provide them until recently; originally, Dialog games were always VERBOSE with no way to adjust them. But players and authors wanted that option, so now it provides SUPERBRIEF, BRIEF, VERBOSE, and SUPERVERBOSE (a Dialog-specific extension beyond Infocom’s level of verbosity).

So there is in fact demand for this! Though I hadn’t expected it either.

We may as well soldier on. I haven’t a lot of commentary to add to the section of Command Grammar, though there might be a few features worth mentioning.

In my own work, I declare grammar and make general action rules in the same place. However, in one of my current works in progress, many commands are disabled altogether. It was convenient to run down this list of commands and declaring most of them ``something new``, so this approach has its advantages, too.

Standard Rules: Command Grammar

§1. Inform comes with no command grammar built in, and Basic Inform defines none either.

No thicket of commands can match the take/get/remove complex for redundancy or synonymal richness. Why is that, I wonder? An easy answer might be that “things evolved that way over time,” which is a reasonable thing to say about language generally.

Part Six - Grammar

Understand "take [things]" as taking.
Understand "take off [something]" as taking off.
Understand "take [something] off" as taking off.
Understand "take [things inside] from [something]" as removing it from.
Understand "take [things inside] off [something]" as removing it from.
Understand "take inventory" as taking inventory.
Understand the commands "carry" and "hold" as "take".

Understand "get in/on" as entering.
Understand "get out/off/down/up" as exiting.
Understand "get [things]" as taking.
Understand "get in/into/on/onto [something]" as entering.
Understand "get off/down [something]" as getting off.
Understand "get [things inside] from [something]" as removing it from.

Understand "pick up [things]" or "pick [things] up" as taking.

The various commands associated with entering and exiting (get in above, for instance, or stand below) might give it a run for its money, however.

Understand "stand" or "stand up" as exiting.
Understand "stand on [something]" as entering.

More on wearing and taking off. Note the use of the something preferably held token, as well as variable uses of remove.

Understand "remove [something preferably held]" as taking off.
Understand "remove [things inside] from [something]" as removing it from.

Understand "shed [something preferably held]" as taking off.
Understand the commands "doff" and "disrobe" as "shed".

Understand "wear [something preferably held]" as wearing.
Understand the command "don" as "wear".

As we discovered in the Actions sections, sometimes there are overlaps between dropping and putting, to say nothing of the proximity between put in and put on.

Understand "put [other things] in/inside/into [something]" as inserting it into.
Understand "put [other things] on/onto [something]" as putting it on.
Understand "put on [something preferably held]" as wearing.
Understand "put [something preferably held] on" as wearing.
Understand "put down [things preferably held]" or "put [things preferably held] down" as dropping.

Understand "insert [other things] in/into [something]" as inserting it into.

Understand "drop [things preferably held]" as dropping.
Understand "drop [other things] in/into/down [something]" as inserting it into.
Understand "drop [other things] on/onto [something]" as putting it on.
Understand "drop [something preferably held] at/against [something]" as throwing it at.
Understand the commands "throw" and "discard" as "drop".

Most actions, though, have commands that are more or less distinct. There are synonyms for convenience’s sake, naturally.

Understand "give [something preferably held] to [someone]" as giving it to.
Understand "give [someone] [something preferably held]" as giving it to (with nouns reversed).
Understand the commands "pay" and "offer" and "feed" as "give".

Understand "show [someone] [something preferably held]" as showing it to (with nouns reversed).
Understand "show [something preferably held] to [someone]" as showing it to.
Understand the commands "present" and "display" as "show".

go is another command that can be sliced a few ways, but, if I had to guess, few players use it at all in daily play.

Understand "go" as going.
Understand "go [direction]" as going.
Understand "go [something]" as entering.
Understand "go into/in/inside/through [something]" as entering.
Understand the commands "walk" and "run" as "go".

Likewise, there must be someone out there who types take inventory, but I do not think I have ever seen it in a tester transcript.

Understand "inventory" as taking inventory.
Understand the commands "i" and "inv" as "inventory".

look is another one of those commands that might mean a number of things, though I don’t think I’ve ever tried to look through something.

Understand "look" as looking.
Understand "look at [something]" as examining.
Understand "look [something]" as examining.
Understand "look inside/in/into/through [something]" as searching.
Understand "look under [something]" as looking under.
Understand "look up [text] in [something]" as consulting it about (with nouns reversed).
Understand the command "l" as "look".

I would be, however, more likely to look up something than I would be to consult.

Understand "consult [something] on/about [text]" as consulting it about.

Note that close off [something] has slipped in there. That’s another one I’ve never considered!

Understand "open [something]" as opening.
Understand "open [something] with [something preferably held]" as unlocking it with.
Understand the commands "unwrap", "uncover" as "open".

Understand "close [something]" as closing.
Understand "close up [something]" as closing.
Understand "close off [something]" as switching off.
Understand the commands "shut" and "cover" as "close".

More on getting in and out of things.

Understand "enter" as entering.
Understand "enter [something]" as entering.
Understand the command "cross" as "enter".

Understand "sit on top of [something]" as entering.
Understand "sit on/in/inside [something]" as entering.

Understand "exit" as exiting.
Understand the commands "leave" and "out" as "exit".

Examining and, less commonly, reading about things.

Understand "examine [something]" as examining.
Understand the commands "x", "watch", "describe" and "check" as "examine".

Understand "read [something]" as examining.
Understand "read about [text] in [something]" as consulting it about (with nouns reversed).
Understand "read [text] in [something]" as consulting it about (with nouns reversed).

Rhetorical devices.

Understand "yes" as saying yes.
Understand the command "y" as "yes".

Understand "no" as saying no.

Understand "sorry" as saying sorry.

An alternative to look through.

Understand "search [something]" as searching.

Various intimations of dimensionality that authors or readers must further develop.

Understand "wave" as waving hands.

Understand "wave [something]" as waving.

Understand "set [something] to [text]" as setting it to.
Understand the command "adjust" as "set".

Understand "pull [something]" as pulling.
Understand the command "drag" as "pull".

Understand "push [something]" as pushing.
Understand "push [something] [direction]" or "push [something] to [direction]" as pushing it to.
Understand the commands "move", "shift", "clear" and "press" as "push".

Understand "turn [something]" as turning.
Understand "turn [something] on" or "turn on [something]" as switching on.
Understand "turn [something] off" or "turn off [something]" as switching off.
Understand the commands "rotate", "twist", "unscrew" and "screw" as "turn".

Interacting with simple machinery.

Understand "switch [something switched on]" as switching off.
Understand "switch [something]" or "switch on [something]" or "switch [something] on" as
    switching on.
Understand "switch [something] off" or "switch off [something]" as switching off.

The years have not demanded synonyms for locking and unlocking.

Understand "lock [something] with [something preferably held]" as locking it with.

Understand "unlock [something] with [something preferably held]" as unlocking it with.

Letter for letter, this must be the least effective grammar in the Standard Rules.

Understand "attack [something]" as attacking.
Understand the commands "break", "smash", "hit", "fight", "torture", "wreck", "crack", "destroy",
    "murder", "kill", "punch" and "thump" as "attack".

I sometimes type wait rather than z out of habit.

Understand "wait" as waiting.
Understand the command "z" as "wait".

These usages must be rare to the point of vestigiality.

Understand "answer [text] to [someone]" as answering it that (with nouns reversed).
Understand the commands "say", "shout" and "speak" as "answer".

These are likely used in concert with extensions or other custom systems.

Understand "tell [someone] about [text]" as telling it about.

Understand "ask [someone] about [text]" as asking it about.
Understand "ask [someone] for [something]" as asking it for.

Several commands for one-off actions, many without built-in alternatives, though I never realized before today that squash was a supported verb!

Understand "sleep" as sleeping.
Understand the command "nap" as "sleep".

Understand "climb [something]" or "climb up/over [something]" as climbing.
Understand the command "scale" as "climb".

Understand "buy [something]" as buying.
Understand the command "purchase" as "buy".

Understand "squeeze [something]" as squeezing.
Understand the command "squash" as "squeeze".

Understand "swing [something]" or "swing on [something]" as swinging.

Understand "wake" or "wake up" as waking up.
Understand "wake [someone]" or "wake [someone] up" or "wake up [someone]" as waking.
Understand the commands "awake" and "awaken" as "wake".

Understand "kiss [someone]" as kissing.
Understand the commands "embrace" and "hug" as "kiss".

Understand "think" as thinking.

Well-known commands for gathering sensory data.

Understand "listen" as listening to.
Understand "hear [something]" as listening to.
Understand "listen to [something]" as listening to.

Understand "taste [something]" as tasting.

Understand "touch [something]" as touching.
Understand the command "feel" as "touch".

The action with the second-highest number of commands (after attacking) is cleaning!

Understand "rub [something]" as rubbing.
Understand the commands "shine", "polish", "sweep", "clean", "dust", "wipe" and "scrub" as "rub".

More one-off actions, including a few surprising synonyms (prune!)

Understand "tie [something] to [something]" as tying it to.
Understand the commands "attach" and "fasten" as "tie".

Understand "burn [something]" as burning.
Understand the command "light" as "burn".

Understand "drink [something]" as drinking.
Understand the commands "swallow" and "sip" as "drink".

Understand "cut [something]" as cutting.
Understand the commands "slice", "prune" and "chop" as "cut".

Understand "jump" as jumping.
Understand the commands "skip" and "hop" as "jump".

Finally, the actions out of world.

Understand "score" as requesting the score.
Understand "quit" or "q" as quitting the game.
Understand "save" as saving the game.
Understand "restart" as restarting the game.
Understand "restore" as restoring the game.
Understand "verify" as verifying the story file.
Understand "version" as requesting the story file version.
Understand "script" or "script on" or "transcript" or "transcript on" as switching the story
    transcript on.
Understand "script off" or "transcript off" as switching the story transcript off.
Understand "superbrief" or "short" as preferring abbreviated room descriptions.
Understand "verbose" or "long" as preferring unabbreviated room descriptions.
Understand "brief" or "normal" as preferring sometimes abbreviated room descriptions.
Understand "nouns" or "pronouns" as requesting the pronoun meanings.
Understand "notify" or "notify on" as switching score notification on.
Understand "notify off" as switching score notification off.

§2. The following provides for the token “[a time period]”, which is not in fact used in the default grammar above, but is available for authors.

I haven’t come across the [a time period] token before. I presume this is for games like Deadline where commands like wait 5 minutes are accepted.

The understand token a time period translates into Inter as "RELATIVE_TIME_TOKEN".

That’s all of them! Next come Basic Inform Phrase Definitions! We’ll see how a lot of natural language syntax is constructed from rather arcane materials. I’ll be back in the deep water again, so bear with me.

  • Basic Inform: Preamble
  • Standard Rules: Preamble
  • Basic Inform: Miscellaneous Definitions
  • Standard Rules: Physical World Model
  • Standard Rules: Variables and Rulebooks
  • Standard Rules: Activities
  • Standard Rules: Actions
  • Standard Rules: Command Grammar
  • Basic Inform: Phrase Definitions
  • Basic Inform: Adjectival Definitions
  • Standard Rules: Phrase Definitions