Inform 7 Home Page / Documentation


Chapter 27: Extensions

§27.1. The status of extensions; §27.2. The Standard Rules; §27.3. Built-in, installed and project-specific extensions; §27.4. Authorship; §27.5. A simple example extension; §27.6. Version numbering; §27.7. Extensions and story file formats; §27.8. Extensions can include other extensions; §27.9. Extensions can interact with other extensions; §27.10. Extensions in the Index; §27.11. Extension documentation; §27.12. Examples and headings in extension documentation; §27.13. Implications; §27.14. Using Inform 6 within Inform 7; §27.15. Defining phrases in Inform 6; §27.16. Phrases to decide in Inform 6; §27.17. Handling phrase options; §27.18. Making and testing use options; §27.19. Longer extracts of Inform 6 code; §27.20. Primitive Inform 6 declarations of rules; §27.21. Inform 6 objects and classes; §27.22. Inform 6 variables, properties, actions, and attributes; §27.23. Inform 6 Understand tokens; §27.24. Inform 6 adjectives; §27.25. Naming Unicode characters; §27.26. Overriding definitions in kits; §27.27. Translating the language of play; §27.28. Segmented substitutions; §27.29. Invocation labels, counters and storage; §27.30. To say one of

arrow-up-left.png Contents of Writing with Inform
arrow-left.png Chapter 26: Publishing
arrow-down-right.png Indexes of the examples

§27.1. The status of extensions

The range of simulation offered by Inform's model world is intentionally limited to a core of basic essentials. We could argue at the margins, and the choice of what's in and what's out is partly traditional, but most people find the model reasonable as far as it goes.

Between 1993 and 2006, quite a range of "library extensions" for Inform's predecessor language (Inform 6) was written. Most of these extensions aimed to fill out the model by simulating other aspects of life, too: money, clothing, pourable liquids. None of these extensions was official and all of them were: it was a free-for-all, and in several cases different authors wrote rival extensions to model the same basic ideas. The development of Inform 7 was strongly influenced by this history and by the recognition that the base of rules and grammar inside a typical modern story are seldom written by a single author. They combine the standard Inform material with extensions by several third parties, together with anything specific to the story in question.

Inform 7 has a more organised idea of extensions, as we shall see. But anyone is free to write an extension on any terms or for any reason. Writers may wish to use the techniques in this chapter to develop private extensions of their own, used in several projects, or to share them with associates but not more widely.

But most writers of extensions do so to contribute to the Inform community, and for the satisfaction of solving a problem. Inform does not recognise anyone's approach to a particular need as "the official solution" - for instance, although the standard Inform distribution includes a copy of Locksmith by Emily Short, that is not the "official" way to make automatically unlocking doors, and anyone is welcome to try a better one.

However, the Inform project does recognise some extensions as "public". Public extensions are the ones archived on the Inform website for the free use of all Inform writers. Those who wish to contribute an extension as a public one are obliged to follow a number of guidelines, which are mostly stylistic points intended to make the range of extensions easier to work with. Extension writers are asked to join in the spirit of these rules and help make the whole cooperative enterprise work harmoniously. Extensions which do play by these rules are also accepted into the Public Library, which makes them easy for all Inform users everywhere to find and obtain them.

Writers who wish to make their extensions public on the Inform website should also be clear that by doing so, they are donating their work to the community on the basis of the broadest form of Creative Commons license: that is, they retain copyright and the right to be identified as the author (and as we shall see they are automatically credited in any work of IF which uses their extension), but are giving unlimited permission to use, circulate and republish their extensions in any form, even as part of commercial works (should that arise). To publish a public extension is a public-spirited act, done for only the reward of a modest acknowledgement.

If the author of an extension has not made it public, or indicated in some other way that it is free to be used without the need for permission, then it would be both polite and prudent to check with the author before publishing something which incorporates his work.


arrow-up.png Start of Chapter 27: Extensions
arrow-left.png Back to Chapter 26: Publishing: §26.8. A short concluding homily
arrow-right.png Onward to §27.2. The Standard Rules