Inform 7 6L38 Third Party Extension Compatibility List

GL__M() was the entry point for printing a library message. There is no single replacement.

For some messages (responses that issue from template-level I6 code), you call a built-in I6 function: QUIT_THE_GAME_RM(), ANNOUNCE_SCORE_RM(), LIST_WRITER_INTERNAL_RM(), etc. The argument is a letter, but you have to look at the new template code to figure out which is needed.

For messages defined in the Standard Rules (I7 code), you invoke the “issuing the response text” activity with the appropriate response value.

Someone who has been updating this sort of extension can probably say more.

Thanks, I can try to work by difference between the 6G60 and 6L02 templates. :slight_smile:

Basic Plans by Nate Cull Version 3/080503 (Uploaded on 2009-04-23)
Status: Fatal (Minor)

  • Z8: OK
  • Glulx: OK


  • Fix Planner by Nate Cull (see below)
  • Fix example:[list]
    [*] Replace use of procedural rules ( -> rule XX does nothing when …)
  • Replace ‘change’ phrases with ‘now’ phrases
  • Replace ‘end the game’ with ‘end the story’
  • Replace ‘remove item from play’ with ‘now item is nowhere’

Basic Real Time (for Glulx only) by Sarah Morayati Version 2 (Uploaded on 2009-05-17)
Status: Fatal (Minor)

  • Z8: N/A
  • Glulx: OK


  • Fix a property declaration in the example (‘it’ -> ‘green button’)
  • Change ‘now the next action’ to ‘now the next real-time action’
  • Add an I7 phrase to trigger ““the action fires”” because the code does not compile if it is only ever triggered from I6 code.
  • Update the modified SAVE_THE_GAME_R function to match the response code changes in Glulx.i6t

Benchmarking (for Glulx only) by Dannii Willis Version 1/130803 (Uploaded on 2013-08-04)
Status: Fatal (Major):

  • Z8: N/A
  • Glulx: KO

Fixes (partial):

  • Remove definition of real numbers.
  • Assign ‘plus infinity’ to mean time.
  • There remain I6 errors related to the ‘pointer-to’ annotation… and probably more.

Bitwise Operators by Bart Massey (Uploaded on 2012-04-17)
Status: Good - Works right out of the box

  • Z8: OK
  • Glulx: OK

Command Prompt on Cue by Ron Newcomb Version 3 (Uploaded on 2010-06-28)
Status: Fatal (Minor):

  • Z8: OK
  • Glulx: OK


  • I6 code changes regarding variable definition and initialization.
  • I6 code changes regarding text variable printing.

Planner by Nate Cull Version 2/080503 (Uploaded on 2009-04-23)
Status: Fatal (Minor)

  • Z8: OK
  • Glulx: OK


  • Replace ‘change’ phrases with ‘now’ phrases.
  • Replace ‘consider’ phrase with ‘follow’ phrase.

Three extensions have been brought up to date and submitted to the old extensions library:

Conditional Undo by Jesse McGrew - Updated to version 4
Patrollers by Michael Callaghan - Updated to version 12
Questions by Michael Callaghan - Updated to version 5

I’ve pushed compatibility updates to the extension repository for the following extensions:

  • Achievements by Mikael Segercrantz
  • Advanced Help Menu by John W Kennedy
  • Adventure Book by Edward Griffiths
  • Armed by David Ratliff
  • Assumed Conversers by Michael Martin
  • Atmospheric Effects by Mikael Segercrantz
  • Automap by Mark Tilford
  • Basic Characters by ShadowChaser
  • Basic Help by David Cornelson
  • Basic Hyperlinks by Emily Short
  • Basic Plans by Nate Cull
  • Basic Real Time by Sarah Morayati
  • Command Prompt on Cue by Ron Newcomb
  • Menus by Wade Clarke
  • Planner by Nate Cull

I have now updated the list to reflect the updates and included a link to the github address.

Any idea about Disambiguation Control by Jon Ingold? Unsurprisingly, it fails on the I6 compiler; it seems likely that it would be hard to bring back, because I believe it rewrites a decent chunk of the parser, but it would be great if someone took it on because I’ve had much better luck with it than with Does the player mean rules.

Any specific way you have to send in updates? I send updated versions of Room & Dimension and the AI extension to about a week ago but haven’t gotten any responses as of yet.

I haven’t found any hint of it being updated anywhere. I’ll add it to the list.

I’m not sure how frequently the old extensions library updates, or how exactly it works with the new library. I’m guessing it might take a while.

Until it gets properly listed in the libraries, you might submit to Github. If you know how to use it, you can use this thread to request commit access to the repository. It’s not the easiest way for people to browse and get the extensions, but it’s better than nothing.

Of course, it’s also fine if you can find some other place to host the extension. Just let us know the link and make sure it isn’t some kind of shady file sharing site.

If you can’t figure out git/github feel free to email any updated extensions to me and I’ll upload them:

I’m not the author of any extensions, but was wondering if pull requests would be entertained? I forked the project and could possibly look at some extensions that perhaps aren’t being developed and haven’t been updated yet for 6L02. No biggie, just thought if I could potentially help, I would.

No need to do pull requests, I can just give you access. If someone else is already working on an extension check with them first so you don’t step on any toes, but otherwise go for it.

Sounds good…my github user is JasonLautzenheiser


The old extension library as updated today. Four entries:

Dynamic Objects by Jesse McGrew - Updated to Version 8/140515

Dynamic Tables by Jesse McGrew - Updated to Version 5/140515

Exit Descriptions by Matthew Fletcher - Updated to version 3

Record-Replay by Al Golden - Updated to Version 3

Exit Lister by Gavin Lambert fails due to a handful of uses of deprecated syntax, but appears to work fine if these are updated.

Added the recently released Italian extensions to the list.

Thank you. A lot of translations in italian of existing english extensions are coming soon, so the list will become very long quite soon :wink:

Could you combine them together with (for use with …) sections?

It is possible, of course. However I think that is better that an talian author knows exactly which translations are available. That’s why I renamed “Small Kindnesses.i7x” to “Small Kindnesses IT.i7x” instead of “Piccole Gentilezze.i7x” (to exactly keed the reference to the original even in the name).

I think that a single moster extension, that contains all the translated extensions (and they are going almost all the available set), may be difficult to maintain when the single original english extensions is updated. I thiink there are also other drawbacks, but suggestions are welcome.

Anyway, is there any guideline to follow in the docs about the translation of existing extensions in a particular language?

You could do something like this.

[code]Chapter 1 - Extension A (for use with Extension A by Graham Nelson)

Include Extension A IT by Primo Varicella

Chapter 2 - Extension B (for use with Extension B by Emily Short)

Include Extension B IT by Modo Variola[/code]

(As you can tell I don’t really know anything about Italian names, sorry.)

This would basically Italicize all the extensions used in the current project, without having to include their code.