The Public Library
Extensions shared by Inform users at www.inform7.com
This is a public library of extensions shared by Inform authors. They're all published under a Creative Commons Attribution licence, which means you can use them for free in any project of your own. (Inform will automatically take care of crediting the authors.) The extensions shown here have all been updated to the 2014 build of Inform. You can review or discuss extensions (other than the built-in ones) at the Interactive Fiction Forum using the links provided. If you'd like to suggest future extensions, or talk about general questions to do with extensions, please click here instead to get to the topic provided for that. |
Response Assistant by Aaron Reed (Version 1). Adds some helpful testing commands for changing default responses.
Assorted Text Generation by Emily Short (Version 5). Provides a range of convenient say phrases, including more varieties of number-printing, descriptions of object locations, and descriptions of which members of a set conform to a criterion (such as "Three of them are closed." when speaking of a group of doors). Complex Listing by Emily Short (Version 9). Complex Listing provides more sophisticated listing options: the ability to impose special ordering instructions on a list, and also the ability to change the delimiters of the list to produce different styles and effects. List Control by Eric Eve (Version 4). Provides a means of using tables as shuffled, cyclic or stop lists. List Controller by Eric Eve (Version 4). Provides a means of using tables as shuffled, cyclic or stopping lists. This is an alternative to List Control that uses list controller objects instead of a Table of Table Types. Text Capture by Eric Eve (Version 8). Allows the capture of text that would otherwise be output to the screen, so that the text can be further manipulated, displayed at some other point, or simply discarded. Version 6 avoids using phrases deprecated in 6E59.
Punctuation Removal by Emily Short (Version 5). Offers specialized commands to strip troublesome punctuation such as periods, commas, question marks, and quote marks out of the player's typed commands; provides a converter to especially interpret titles that contain full stops, such as "Mrs." or "Dr.".
Common Commands Sidebar by Alice Grove (Version 2/161024). Displays a list of common parser commands in a sidebar as a reference for novice players. Includes actions to turn the sidebar off and on. Story author can tailor the command list and the appearance of the sidebar, or just plug and play. For version 6L or 6M of Inform 7. Keyword Interface by Aaron Reed (Version 9/140501). This extension emulates Blue Lacuna's emphasized keyword system for simplifying common IF input. Nouns, directions, and topics can be typed without a verb to examine, go, or discuss. Works with Glulx or z-code. Phrases for Tables with Topics by Ron Newcomb (Version 3). Grants five new phrases regarding the player's command, the matched text, and the topic understood: if one is a topic listed in a table, if one includes or matches a topic listed in a table, what corresponds to one within a table, and the last phrase corrects a bug so the topic understood may be used within an understand-as-mistake line. Rewrite the Command Line by Ron Newcomb (Version 2/110202). Allows us to erase then rewrite the commands our player types in.
Dynamic Rooms by Aaron Reed (Version 3). Create and destroy new rooms on the fly. While this is technically possible with Jesse McGrew's Dynamic Objects, the method here is simpler, customized for rooms, and available for both z-code and Glulx.
Facing by Emily Short (Version 10). Provides actions to face a direction, look toward a named room, or look through a named door.
Disappearing Doors by Andrew Plotkin (Version 1). The ability to remove doors from the world and put them back. Deluxe Doors by Emily Short (Version 4). Allows for doors that are implemented as having independent 'faces' -- to put a knocker on that can only be seen from on side, for instance, or to allow the player to lock one side with a key but the other with a latch. Also introduces a 'latched door' kind. Secret Doors by Gavin Lambert (Version 1). Doors and switches that cannot be acted upon until they are discovered. Easy Doors by Hanon Ondricek (Version 3/160425). Easy Doors provides a new kind of door which does not use map connections, and may be manipulated via rules more flexibly than the standard doors provided in Inform 7.
Variable Time Control by Eric Eve (Version 4). Allows individual actions to take a different number of seconds, or no time at all. Also allows the standard time taken per turn to be defined as so many seconds, which can be varied during the course of play. Phrases for Adaptive Pacing by Ron Newcomb (Version 1). We may ask the time when (a description of scenes) began/ended; the number of turns since (a description of scenes) began/ended; if (a future event) is soon; the time/turns until (a future event); the time/turns when (a future event). We may also un-schedule a future event with 'never shall'; begin or end a scene on an event; say a time 'as a time period'; repeat through future events; and change the turns-to-minutes ratio with 'per'. Real Date and Time by Ron Newcomb (Version 2). Allows the author to get the real-world time and date from the player's computer.
Unsuccessful PC Attempt by Ron Newcomb (Version 2). Will run the Unsuccessful Attempt By rules for all characters, including the player. Also silences the library messages printed by the built-in Check rules.
Epistemology by Eric Eve (Version 6). Keeping track of what the player character knows and sees. Remembering by Aaron Reed (Version 9/140430). Replaces 'You can't see any such thing' with a message reminding the player where they last saw the item they're trying to interact with. Requires Epistemology by Eric Eve and Plurality by Emily Short.
Simple Spelling by Alice Grove (Version 2/160807). Simple Spelling aims to make stories more screen-reader-friendly by allowing players to request the spelling of any visible thing. This extension adds two actions: 'listing visible items for spelling' and 'spelling the numbered word.' Exit Lister by Gavin Lambert (Version 3). Based on Exit Lister by Andre Kosmos, Gavin Lambert's edition reworks the internal design and provides more options for controlling lists in dark rooms. Introductions by Emily Short (Version 2). Introductions provides an introductory paragraph about objects in a room description the first time the player looks in that location. It also allows the author to add segue text that will appear between one description and the next. Ordinary Room Description by Emily Short (Version 3). Note: An extension to go with Room Description Control, which emulates as closely as possible the behavior of Inform defaults, but allows the intervention of Room Description Control. Room Description Control by Emily Short (Version 13/160517). A framework by which the author can considerably change the listing of objects in a room description. Includes facilities for concealing objects arbitrarily and changing the order in which objects are listed. Single Paragraph Description by Emily Short (Version 5). A room description extension based on Room Description Control (which is required). All contents of a room are summarized in a single paragraph, starting with the regular room description. Tailored Room Description by Emily Short (Version 12). An extension to go with Room Description Control, providing a different style of room description than the default. Parenthetical remarks such as (open) and (in which are...) are omitted in favor of full English sentences. Removes the requirement for Text Variations.
Underside by Eric Eve (Version 6). Allows objects to be put under other objects. An underside usually starts out closed so that its contents are hidden from view. Requires Version 7 (or later) of Bulk Limiter; the space under objects is limited by bulk. Underside is compatible with Version 10 or later of Implicit Actions, but does not require it. Version 5 of Underside avoids features deprecated in Version 6E59 of Inform. Hiding Under by Eric Eve (Version 4). Allows things to be hidden under other things, using a many-to-one underconcealment relation. Can be used either standalone (with basic functionality) or in conjunction with Underside (to add fuller functionality to both extensions). Version 3 of Hiding Under avoids using phrases deprecated in Version 6E59 of Inform.
Approaches by Emily Short (Version 7). Approaches provides a GO TO place action which allows the player to move through visited rooms to a new location. It also allows other characters to traverse the map to named locations. It is designed to work with Locksmith by Emily Short. Permission to Visit by Ron Newcomb (Version 7). In lieu of compass directions, we may VISIT, ATTEND, GO TO, and FIND various people, events, places, and things. Characters may INVITE, PERMIT, and FORBID each other to or from their respective domains. Regional Travel by Juhana Leinonen (Version 2). Allows the player to travel between regions. Useful for example when the player travels between large regions far apart from each other (e.g. cities), or for traveling in vehicles and public transportation.
Modified Exit by Emily Short (Version 6). Changes the handling of the EXIT action, allowing commands such as EXIT PLATFORM and GET OUT OF CHAIR, making characters leave enterable objects before traveling, and altering the default interpretation of >OUT when the player is neither inside an object nor in a room with an outside exit. Updated for adaptive text.
Locksmith by Emily Short (Version 12). Implicit handling of doors and containers so that lock manipulation is automatic if the player has the necessary keys. Skeleton Keys by Emily Short (Version 1). Allows for locks which can be opened by more than one key.
Extended Grammar by Aaron Reed (Version 8/140501). Some of the most commonly attempted synonyms for verb words. Based on the Inform 6 extension ExpertGrammar.h by Emily Short.
Consolidated Multiple Actions by John Clemens (Version 3). An extension to consolidate action reports when performing an action on multiple objects, such as with 'take all'. Requires Hypothetical Questions by Jesse McGrew. Version 3 updated by Emily Short for 6L38 compatibility. Editable Stored Actions by Ron Newcomb (Version 10). This extension expands section 12.20 of Writing with Inform. The individual parts of a stored action -- actor, noun, second noun, action-name -- can now be directly changed. Also adds four new parts: request, text, participle, and preposition. Implicit Actions by Eric Eve (Version 13). Provides implicit taking, opening, closing, locking and unlocking actions for a variety of cases where this makes for smoother game play. The extension also defines phrases which make it easy to define additional implicit actions if desired. Version 11 can be used with Locksmith by Emily Short (although Implicit Actions covers most of what Locksmith does, and in most cases it will be better to use Implicit Actions without Locksmith). Requires Plurality by Emily Short and Version 5 of Text Capture by Eric Eve. Limited Implicit Actions by Eric Eve (Version 3). A cut-down version of Implicit Actions for use where code size may be restricted and the full functionality of Implicit Actions is not needed. Requires Plurality by Emily Short and is compatible with Locksmith by Emily Short. NPC Implicit Actions by Eric Eve (Version 4). A basic extension of the Implicit Actions extension into actions carried out by NPCs. This extension automatically includes Implicit Actions. Small Kindnesses by Aaron Reed (Version 13/140501). Provides a number of small interface improvements for players, understanding commands like GO BACK and GET IN, automatically getting off enclosables before moving, responding to vague movement commands when there is only one sensible option, and more. After Not Doing Something by Ron Newcomb (Version 2). A small, straightforward extension that provides authors a new hook for when the player (or any NPC) fails an action.
Scope Control by Ron Newcomb (Version 2). Allows us to ask why the Deciding the Scope For Something activity is running, so we can modify the scope only when we absolutely need to. Highly useful for giving NPCs commands over telephones or while in darkness, creating 'can hear' relations, or modifying how Inform parses the command line.
Numbered Disambiguation Choices by Aaron Reed (Version 7/140501). Numbers the options in disambiguation questions, to help new players and solve the 'disambiguation loop' problem caused by indistinguishable objects. Reversed Persuasion Correction by Juhana Leinonen (Version 2). Automatically corrects commands given to NPCs where the word order is reversed, for example HELLO, ALICE instead of ALICE, HELLO.
Clues and Conversation by Brian Rushton (Version 4). A simple system for building conversations. Conversation Framework by Eric Eve (Version 12). A framework for conversations that allows saying hello and goodbye, abbreviated forms of ask and tell commands for conversing with the current interlocutor, and asking and telling about things as well as topics. Threaded Conversation by Chris Conley (Version 8/220120). A conversation system tracking facts known, phrases spoken, and subjects of conversation, modified from the original by Emily Short. Combines ask/tell style commands with hints about what to say next, and extensive authoring tools for organizing and controlling the flow of conversations. Requires Conversation Framework by Eric Eve. Conversation Builder by Chris Conley (Version 3/170420). An interactive question-and-answer system for building conversations, modified from the original by Emily Short. Requires Threaded Conversation v5 by Chris Conley. Compatible with 6M62. Inanimate Listeners by Emily Short (Version 1). Allows the player to address inanimate objects such as a talking computer, microphone, or telephone in a form such as ASK COMPUTER ABOUT COORDINATES.
Conversation Nodes by Eric Eve (Version 7). Builds on Conversational Defaults and adds the ability to define particular points in a conversational thread (nodes) at which particular conversational options become available. Conversation Package by Eric Eve (Version 3). This extension includes both Conversation Nodes and Conversation Suggestions, and makes the suggestions aware of conversation nodes. It therefore includes the complete conversational system in one package. It also requires Conversation Responses, Conversational Defaults, Conversation Framework and Epistemology. The documentation for this extension give some guidance on how these other extensions can be mixed and matched. Conversation Responses by Eric Eve (Version 7). Conversation Responses allows response rules for various conversational commands to be written in the form "Response for Bob when asked about..." or "Response for Bob when asked-or-told..." (or many other variations). Conversation Rules by Eric Eve (Version 7). A way of controlling conversations using rules and tables. Also implements topic suggestions and Conversation nodes. Requires Plurality by Emily Short and Conversation Framework, Epistemology and List Control by Eric Eve. Conversation Suggestions by Eric Eve (Version 7). Provides a means of suggesting topics of conversation to the player, either in response to a TOPICS command or when NPCs are greeted. This extension requires Conversation Framework. Conversational Defaults by Eric Eve (Version 3). Provides a set of rules to facilitate defining default conversational responses for different conversational commands targeted at various NPCs. This extension requires Conversation Framework.
Mood Variations by Emily Short (Version 3). Allows the author to define a mood value for characters and then use text substitutions such as '[when bored]The king fidgets on his throne[or sleepy]The king snores[at other times]The king grins[end when].' Moods will be interpreted in 'writing a paragraph' and similar contexts as the mood of the person described in the paragraph, but at other times according to the mood of the person to whom the player is currently speaking.
Simple Followers by Emily Short (Version 7). Allows non-player characters to follow the player (or one another); adds a FOLLOW command and a corresponding STOP FOLLOWING command so that the player can issue these orders to non-player characters. Adds adaptive text features.
Rideable Vehicles by Graham Nelson (Version 3). Vehicles which one sits on top of, rather than inside, such as elephants or motorcycles.
Transit System by Emily Short (Version 6). Transit System provides a train-car kind which follows a schedule around the map, allowing the player or other characters to get on or off.
Automated Drawers by Emily Short (Version 6). Creates a drawer kind of container, which is designed to be part of an item of furniture. Automatically parses names such as 'top drawer' or 'fourth drawer' or 'left drawer'; adds some features for describing furniture with drawers. Postures by Emily Short (Version 3). Postures defines three postures -- seated, standing, and reclining -- and allows pieces of furniture to specify which postures are possible and preferred when the player is on those furnishings.
Modern Conveniences by Emily Short (Version 5). Modern Conveniences creates kitchen and bathroom kinds of room, which will automatically be furnished with a set of plausible appliances. (This was originally an example in the manual of how to create extensions, and an annotated version may still be found there.) Version 3 adds compatibility with Measured Liquid, modeling flowing water from taps.
Dishes by Emily Short (Version 2). Dishes is a convenience extension for use with Measured Liquid. It provides some standard-sized cups, glasses, graduated measuring cups, jugs, bottles, etc., as well as a corked bottle kind that opens with the use of a secondary cork object.
Computers by Emily Short (Version 7). Computer hardware and software, including search engines and email programs. Version 3 adds handling for batteries and cords, if we include Power Sources by Emily Short (which itself depends on Plugs and Sockets by Sean Turner).
Basic Literacy by Bart Massey (Version 2.1). Provides objects and actions for (proper) reading, writing and erasing.
Measured Liquid by Emily Short (Version 6). Measured Liquid provides a concept of volume, together with the ability to fill containers, pour measured amounts of liquid, and drink from containers. It handles mixtures as well, if desired. It is compatible with, but does not require, the Metric Units extension by Graham Nelson.
Metric Units by Graham Nelson (Version 2). Scientific kinds of value for simulations, using real number arithmetic. Uses SI units for mass, elapsed time, electric current, temperature, luminosity, frequency, force, energy, pressure, power, electric charge, voltage, luminance, area, volume, velocity, acceleration, momentum, density, heat capacity. Approximate Metric Units by Graham Nelson (Version 1). Scientific kinds of value for simulations, using scaled integer arithmetic: really only useful for Z-machine projects. Bulk Limiter by Eric Eve (Version 9). Containers that limit their contents by bulk. Volumetric Limiter by Daniel Gaskell (Version 1). Containers and actor that limit their contents by volume. Modeled after Bulk Limiter by Eric Eve, but understands length, width, and height as well as total size. Bulky Items by Juhana Leinonen (Version 3). Bulky items that can be carried only if the player is not carrying anything else. Version 2 fixes a bug and adds a new example.
Notepad by Jim Aikin (Version 3). Provides a new kind of thing called a notepad, which the player (and NPCs) can write in. The text in a notepad can be read, added to, copied, erased, and erased from in a selective manner. It can also be write-protected. A notepad can optionally require a writing implement.
Plugs and Sockets by Sean Turner (Version 4). Plug and Sockets is an extension designed to assist with the modelling of devices that can plug and be plugged into. This is done by defining kinds of connectors - male "plugs" and female "sockets" - which form part of the device in question. Grammar is provided to support the connection and disconnection process. Power Sources by Emily Short (Version 2). Power Sources provides an implementation of plugs and batteries, and is designed to be used alongside Computers or as a base for other device implementations. It requires Plugs and Sockets by Sean Turner.
Alternatives by Eric Eve (Version 3). Allows checking the presence of an object or value in a set of objects or values with new either/or and neither/nor phrases. e.g., "If the noun is either the carrot or the potato:", or "Instead of eating something when the noun is neither the cake nor the pudding:". Hypothetical Questions by Jesse McGrew (Version 4/180124). Allows us to test the consequences of a phrase or action without permanently changing the game state.
Title Page by Jon Ingold (Version 3). Provides an intro panel to the game, offering a menu, a restore and restart prompt, a quotation and (under Glulx) a picture.
Adaptive Hints by Eric Eve (Version 7). An adaptive hint system based on Menus by Emily Short. Basic Help Menu by Emily Short (Version 1). Provides a simple collection of standard IF-playing advice that can be incorporated as a help menu in a game. Basic Help Menu by Wade Clarke (Version 4). Adds a HELP command to your Glulx or Z-Code project for Inform 6M62 or later which brings up a menu giving some standard instructions about IF. This is a tech and content update of Emily Short's Basic Help Menu extension made for compatibility with Wade Clarke's Menus. Requires Menus by Wade Clarke (version 5 or greater) to run. Menus by Wade Clarke (Version 5). Lets you include a menu system of help, hints and/or other information in your Glulx or Z-Code project for Inform 6M62 or later. This upgrade of Emily Short's classic Menus extension features user-friendly single keypress controls, a more sophisticated UI, compatibility with screen readers and portable devices, an optional book mode with automatic pagination, and isolated message content to make translations easier. Classic Menus tables can be reformatted for this extension with a little work. Commonly Unimplemented by Aaron Reed (Version 2). Responds to attempts to interact with unimplemented clothing, body parts, or generic surroundings. Requires Smarter Parser by Aaron Reed. Poor Man's Mistype by Aaron Reed (Version 8). Adds basic typo correction by checking the first few letters of misunderstood input against the printed names of visible objects. Requires Smarter Parser by Aaron Reed. Smarter Parser by Aaron Reed (Version 16/140501). Understands a broader range of input than the standard parser, and can direct new players towards proper syntax. A rules-based system makes it easy to customize by removing or add new forms of understood input. Tutorial Mode by Emily Short (Version 5). Adds a tutorial mode, which is on by default, to any game, to introduce key actions for the novice player. Can be revised or expanded by the author.
Achievements by Juhana Leinonen (Version 1/151231). A simple but flexible rule-based achievement system. Awarded achievements can optionally persist in external files after a restart.
Recorded Endings by Emily Short (Version 5). Records the endings the player encounters in multiple play-throughs to an external file; then adds an ENDINGS option to the final question to allow the player to review which endings he has seen so far.
Rapid Prototyping by B David Paulsen (Version 1). A way to create and extend a game world on the fly during testing via a REPL idiom.
Basic Screen Effects by Emily Short (Version 7/140425). Waiting for a keypress; clearing the screen. Also provides facilities for changing the foreground and background colors of text, when using the z-machine. These abilities will not function under Glulx.
Glulx Text Effects by Emily Short (Version 4/140425). Glulx Text Effects provides an easy way to set up special text effects for Glulx. Unicode Parser by Andrew Plotkin (Version 7). Replaces much of the low-level parser machinery with Unicode-friendly input and parsing functions. This allows us to accept commands in non-Latin alphabets. Since Inform does not support this natively, this extension is awkward to use in practice. It is provided as sample code and as a possible basis for future Inform development. Unicode Character Names by Graham Nelson (Version 1). Defines 2909 names like [unicode Greek small letter gamma] for Latin, Cyrillic, Greek and Hebrew letters, along with currency and other symbols. Unicode Full Character Names by Graham Nelson (Version 1). Defines 12997 names like [unicode Arabic letter hah with three dots above] for the full range of characters named in the Unicode 4.1 standard.
Exit Lister by Eric Eve (Version 11). A status line exit-lister and an EXITS command, with optional colouring of unvisited exits.
Footnotes by Stephen Granade (Version 2). Lets you add footnotes to your game, similar to those in the Infocom game Hitchhiker's Guide to the Galaxy. Footnotes are numbered beginning with 1, and are only assigned numbers as they are referenced. The player can turn footnoting on and off.
Vorple by Juhana Leinonen (Version 2/140430). Core functionality of Vorple, including JavaScript evaluation, HTML elements and turn type marking. Vorple Screen Effects by Juhana Leinonen (Version 2/140430). Vorple equivalent of Basic Screen Effects by Emily Short. Waiting for a keypress, clearing the screen, aligning, styling and coloring text. Vorple Notifications by Juhana Leinonen (Version 2/140430). Notifications and dialogs. Vorple Hyperlinks by Juhana Leinonen (Version 2/140430). Hyperlinks that either open a web site or execute a parser command. Vorple Multimedia by Juhana Leinonen (Version 2/140430). Displaying images, playing sounds and music, and showing videos from YouTube. Vorple Tooltips by Juhana Leinonen (Version 2/140430). Tooltips that can be activated on request or when the mouse cursor is moved over an element.
Glulx Entry Points by Emily Short (Version 10/140425). Provides hooks to allow the author to write specialized multimedia behavior that would normally go through HandleGlkEvent. This is a rather dull utility library that will be of most use to authors wanting to write Glulx extensions compatible with other Glulx extensions already in use.
Glulx Image Centering by Emily Short (Version 4). Glulx Image Centering adds the ability to display an image that is centered (left/right) on the screen. Location Images by Emily Short (Version 1). Allows the author to set per-room images and show these as the player moves from room to room. Requires Simple Graphical Window by Emily Short. Simple Graphical Window by Emily Short (Version 9/160121). Provides a graphics window in the upper part of the screen, in which the author can place images; with provision for scaling, tiling, or centering images automatically, as well as setting a background color. Extension requires Glulx Entry Points Version 7.
Debug Tags by Michael Kielstra (Version 1). Allows you to take quick notes about what needs to be done, where it needs to be done, and who needs to do it. It’s scriptable, extensible, and interacts better with the rest of Inform than [TODO: ] comments do. All your tags live next to the code in question, and they can even be in rooms in-game, but they’re accessible from anywhere. Best of all, if you leave one in by accident, the end-user will never notice as they destroy themselves in release builds. Debug Files by Juhana Leinonen (Version 2). A development tool for saving debugging information to an external text file during beta testing. (Glulx-only) Object Response Tests by Juhana Leinonen (Version 7). A development tool for testing all actions on any given object - or one action on all objects - at once to see whether the game's responses are sensible. Version 2 adds the possibility to test individual actions and to run the tests with NPC as the actor. Property Checking by Emily Short (Version 4). A lightweight extension to identify rooms and objects in a game for which no description has yet been written.
getall-buttontext This button downloads every extension you haven't got, but doesn't change the version of any extension you already have. This may take a few minutes. updateall-buttontext This button replaces every extension you have for which the Library has a newer version. (If you need to get an earlier version back again, go to the Inform website.) |