Here’s all the debugging commands of Inform 7. Just make a separate extension out of it, start the game, and type “options”. (I’ve updated the code since, but it should work just fine.)
[spoiler][code]
Chapter - Requesting options
Understand “options” or “settings” as requesting options.
Requesting options is an action out of world.
Report requesting options (this is the standard options report rule):
Say “[line break][bold type]Default options[roman type][paragraph break]”;
Say “For the player, there are only two options affecting gameplay:[paragraph break]”;
Say “Room description printings, that are typically only set to establish the scenario and aren’t meant to contain anything practically useful, can be set by the following commands:[line break]”;
Say “[bold type][fixed letter spacing]verbose[variable letter spacing][roman type] - Long room descriptions will always be printed (even when you re-enter rooms). This is intended for immersion, and is the default setting.[line break]”;
Say “[bold type][fixed letter spacing]brief[variable letter spacing][roman type] - Long room descriptions are only printed upon the first visit of a room, or if you type ‘[fixed letter spacing]look[variable letter spacing]’ to look around. This is the default setting of older IF games.[line break]”;
Say “[bold type][fixed letter spacing]superbrief[variable letter spacing][roman type] - Long room descriptions will never be printed (even if you type ‘[fixed letter spacing]look[variable letter spacing]’). This is intended for people with short attention spans.[paragraph break]”;
Say “[bold type][fixed letter spacing]notify on[variable letter spacing][roman type]/[bold type][fixed letter spacing]off[variable letter spacing][roman type] - Turns on/off score notifications (such as ‘[fixed letter spacing][bracket]Your score has just gone up by one point.[close bracket][variable letter spacing]’).”.
Report requesting options (this is the playtesting options report rule):
Say “Playtesters may also find the following options useful:[paragraph break]”;
Say “[bold type][fixed letter spacing]version[variable letter spacing][roman type] - Gives the full banner text associated with the game, including title, author, release number, IFID, and other bibliographical data; it follows this with a list of the included extensions.[line break]”;
Say “[bold type][fixed letter spacing]pronouns[variable letter spacing][roman type] - Announces to the player what the game is currently understanding as the antecedents of ‘him’, ‘her’, ‘it’, and ‘them’. This is often useful during testing, but sometimes also during play.[line break]”;
Say “[bold type][fixed letter spacing]transcript on[variable letter spacing][roman type]/[bold type][fixed letter spacing]off[variable letter spacing][roman type] - Turns on/off logging of the playthrough (if supported by your interpreter). (Works in Windows Frotz, but not inside Inform 7.)[line break]”;
Say “[bold type][fixed letter spacing]verify[variable letter spacing][roman type] - Verifies the story file for errors by examining checksums. This is a legacy command that is rarely useful with modern mediums.[paragraph break]”.
[All of these options are present in the release.]
Chapter - Developer options - Not for release
Understand “dev” or “debug” or “cheats” as requesting developer options.
Requesting developer options is an action out of world.
Report requesting developer options (this is the developer testing commands report rule):
Say “[line break][bold type]Run-time testing commands[roman type][paragraph break]”;
Say “(Note that these commands may change in future releases of Inform 7. These are all found to work in Build 6G60.)[paragraph break]”;
Say “[bold type][fixed letter spacing]showme [variable letter spacing]x[roman type] - Lists the properties (including any relations) of an object anywhere in the model world. Typing it alone will list all objects within the current room.[line break]”;
Say “[bold type][fixed letter spacing]test [variable letter spacing]x[roman type] - Execute a test script. Typing it alone will list which test scripts are available.[paragraph break]”;
Say “[bold type][fixed letter spacing]purloin [variable letter spacing]x[roman type]- Immediately places an object in the player’s inventory, no questions asked. This is not limited to physical things, so typing ‘[fixed letter spacing]purloin all[variable letter spacing]’ is not recommended.[line break]”;
Say “[bold type][fixed letter spacing]abstract [variable letter spacing]x[fixed letter spacing] to [variable letter spacing]y[roman type] - Similar to purloin, but gives the first object to the second object, in a sensible way (such as placing things inside containers).[line break]”;
Say “[bold type][fixed letter spacing]gonear [variable letter spacing]x[roman type] - Teleports the player to the room that contains the object.[line break]”;
Say “[bold type][fixed letter spacing]scope [variable letter spacing]x[roman type] - Shows the scope from an object. Typing it alone will show the scope from the player.[line break]”;
Say “[bold type][fixed letter spacing]random[variable letter spacing][roman type] - Sets the random-number generator to a predictable seed value (making the generator predictable inbetween plays).[line break]”;
Say “[bold type][fixed letter spacing]relations[variable letter spacing][roman type] - Lists the current state of any mutable relations created in the source code.[paragraph break]”;
Say “[bold type][fixed letter spacing]actions on[variable letter spacing][roman type]/[bold type][fixed letter spacing]off[variable letter spacing][roman type] - Actions tracing on/off. Lists every action as it happens, and what its outcome is.[line break]”;
Say “[bold type][fixed letter spacing]scenes on[variable letter spacing][roman type]/[bold type][fixed letter spacing]off[variable letter spacing][roman type] - Scene-change tracing on/off. Also lists the scenes currently happening.[line break]”;
Say “[bold type][fixed letter spacing]rules on[variable letter spacing][roman type]/[bold type][fixed letter spacing]off[variable letter spacing][roman type]/[bold type][fixed letter spacing]all[variable letter spacing][roman type] - Rules tracing on/off. Lists the name of rules before they execute. The ‘[fixed letter spacing]all[variable letter spacing]’ setting will include even the rules [italic type]considered[roman type].[paragraph break]”;
Say “[bold type][fixed letter spacing]showverb [variable letter spacing]x[roman type] - Shows I6-level information about a verb: Synonyms, arguments, and whether the arguments are reversed for a particular line.[line break]”;
Say “[bold type][fixed letter spacing]tree [variable letter spacing]x[roman type] - Prints the I6 object tree, showing the instantiation and the containment relation of an object. Typing it alone will show all instantiations, indented according to the containment relation. Typing ‘[fixed letter spacing]tree all[variable letter spacing]’, will list all objects in detail.[line break]”;
Say “[bold type][fixed letter spacing]trace [variable letter spacing]x[roman type] - Sets the level of parser tracing, listing very low-level parsing information. Levels range from level 0 (off), through level 1 (on) to level 6 (the most detailed).[line break]”;
Say “[bold type][fixed letter spacing]showheap[variable letter spacing][roman type] - Shows the heap of managed memory used by the story file (if used). (Meant for Inform 7 developer debugging only.)[paragraph break]”.
[The testing commands, are all listed here: http://inform7.com/sources/src/i6template/Woven/B-testt.pdf ]
[There is also a mention of a Glulx-only command, called GLKLIST. I should switch to Glulx, and test if it’s there.]
[/code][/spoiler]