version 1 by Aaron Reed
This extension creates a new meta-command (a la SAVE or UNDO) called spin, which allows the player and author to alternately hold control over forward progress in a story.
Since IF's open-ended interface gives the illusion of open-ended solutions to problems that almost always have only one implemented solution, players are invariably let down when their well-reasoned behaviors are not options implemented by the author.
This extension introduces the abstract concept of spin, which is always held by either the game or the player. Certain objects representing blocks on forward progress in the story (puzzles) can be declared spinnable. Interacting with these objects (in ways judged by the author to be incorrect) causes the game to forfeit spin. When the player has spin, he can give it up to bypass one obstacle.
The ultimate goal is to assist more players in reaching the middles and ends of interactive stories they are genuinely interested in, but frustrated by, without them having to feel they are "cheating" by consulting out-of-game hints or walkthroughs.
To use the extension, you must select appropriate spinnable moments in your game: locked doors, angry trolls, unclear devices, etcetera. For each moment, select an item the player will most likely interact with to try to overcome this obstacle. (For more abstract puzzles such as a maze, a scenery item present in all relevant locations might be required.) For each selected item, you must modify your game in four ways:
1) Give the target item the property "spinnable."
2) Define one or more responses for actions the player might conceivably try that are not your particular puzzle solution. (For a locked door, attacking, pushing, knocking, or touching might all be appropriate.) Write response messages for these, if you haven't already, and include at the very end of each one the special phrase "[award][spin]". This will, one time only, return spin to a player who doesn't already have it. This represents the acknowledgement that the player is interacting with your story world in good faith.
3) In the rules carried out when a player successfully solves the puzzle, add the phrase "award spin for thing" (where thing is the name of the primary, spinnable item). This returns spin to the player for correctly solving a puzzle.
4) Write a "Carry out spinning the thing" rule that describes the player bypassing your obstacle via a different approach which isn't your main puzzle solution and isn't normally possible. For example, bypassing a locked door might have descriptive text requiring bashing in the lock with a handy rock. This rule should also change the world's state such that the puzzle is now solved (and, if necessary, irreversible). The player will give up spin to take this action, representing that they are willing to keep playing past your obstacle but can't figure out the behavior you expected of them. This is not a place to "educate" the player as to what they "should have done" to solve your puzzle: the spin text should be a fresh, creative way around the problem that stands in for some equally creative approach the character might have tried but which the player was unable to due to the limits of implementation.
A player with spin can use the SPIN verb on a thing to spend it. SPIN alone produces a list of visible, spinnable things, and, the first time only, some explanatory text: you may wish to suggest the player type SPIN to see the explanation in your about or introductory text. SPIN OFF lets a player permanently disable spin.
Puzzles that require preliminary puzzles to be solved first can be handled in a variety of ways. The easiest is to add a rule which prevents the target item being spun until the subsidiary items are also spun:
Instead of spinning steel door when troll is spinnable or puzzle box is spinnable: say "That's too big to spin right now."
Another case is when uncovering the normal solution to an obstacle reveals important story information to the player. In this case, spinning should make what was previously concealed visible, or what was previously unclear more plain. If passing through a locked door required first discovering a key hidden in Grandma's diary, then spinning the door should cause the diary to fall from its hiding place behind the bookcase into plain sight on the floor, perhaps producing a noise loud enough to be heard from the current location. If learning the right topic to persuade Thomas involves examining an offhand item mentioned in a room description, spinning Thomas should cause that item to be mentioned prominantly in its own paragraph the next time that room is visited.
Carry out spinning Thomas: say "Oh, if only you could think of what to ask the old fool. Maybe another stroll through the house will help jog your memory."; now initial appearance of the violin is "Thomas's violin catches a shaft of gleaming sunlight.".
This extension is still highly experimental and contentious. Feedback is welcomed to the gmail account name aareed.