Overriding putting things inside things in Inform 7

I’m attempting to override the standard rules about containers in Inform 7. I am new to Inform 7, I used to code in Inform 6 back in the 90s. Here’s the problem:

Before putting the bottle in the bottle, instead say “Felix Klein would be proud.”

This only results in

Problem. You wrote ‘Before putting the bottle in the bottle’ , which seems to introduce a rule taking effect only if the action is ‘putting the bottle in the bottle’. But that did not make sense as a description of an action. I am unable to place this rule into any rulebook.

I am attempting to override the standard impossible put with a new rule that does not follow the standard rules to create a puzzle. (Much more complex than just putting things inside themselves, but I got stumped by this simple action).

I’m on the move right now, but shouldn’t it be “before inserting the bottle into the bottle”?

The put in actions is an old problem. Yes, the action is actually ‘inserting it into’.

Ah, the trouble was with the word ‘in.’ I had to be more specific, i.e. use ‘into.’ Thanks. I hope to create a short traditional IF adventure with some clever puzzles, while learning Inform 7. I’ve forgotten most about Inform 6 anyway, and never published “Rushes”, my first serious foray into IF. The working title of the current game would give too much away, but I hope my question didn’t give away too much of the content. Unconventional solutions to puzzles that require a bit of thinking, but not too hard, I hope.

Thanks again.

Why can’t Inform accept put? It’s the old standard IF verb. Get/put, instead of take/insert, when memory was scarce. Inform 7 just caught me with a “guess the verb” problem when those kinds of puzzles have all but disappeared from the face of the genre. :wink:

There’s a difference between actions and verbs. “Inserting it into” is an action that can be triggered with commands PUT, INSERT and DROP. The action’s internal name and the verbs the player can use must be separated for many reasons, not the least because an action might not be accessible to the user at all (no commands invoke it directly) or the same command might invoke a different action in different situations.

You don’t need to guess the action’s name if you use the ACTIONS debugging command:

Thanks. I’ve tried to read the documentation as much as I can, but I like to learn by just jumping in. I might have picked this up from the docs. It’s boring to just follow the examples, I’ve always learned better via the hard way, doing stuff. Thanks for all the answers.

The index tab is also very useful here – if you click on “actions” in the index, it’ll give you a list of all the actions that are defined in the Standard Rules (and that you’ve defined), and then under “commands available to the player” there’ll be a list of verbs that lets you figure out what action the verb is understood as.

So in that section you get the following for “put”:

and as you can see the next-to-last line is the one you want here.

You have to create an “Instead of…” rule. This is simple; you only have to say:
Instead of inserting the bottle into the bottle: say “Felix Klein would be proud.”