Threaded Conversation

In 2012, I adopted Emily Short’s Threaded Conversation extension for Inform 7. After reworking the code, expanding the documentation, and several rounds of testing, it’s ready for release.

In brief, TC provides a conversation system that tracks facts known, phrases spoken, and subjects of conversation for the Inform 7 language. It combines ask/tell style commands with hints to the player about what to say next, and provides extensive authoring tools for organizing and controlling the flow of conversations.

The latest version is now available on the Public Library built in to Inform 7. It is also available for Inform version 6G60 on the official Inform 7 old extensions page.

Conversation Builder

Also useful is the conversation builder, an optional accessory extension for Threaded Conversation, to help automate some of the more tedious parts of building a complex conversation with TC. Find it at either the link above or the Public Library, depending on which version of Inform you’re using.


11 thoughts on “Threaded Conversation

  1. I noticed the extensions end with TXT which means you need to modify the filename. Is that intended?

  2. Hey. I don’t know if this has been found before. In any case: I think TC is fighting with Custom Library Messages by David Fisher.

    Following the error I get:

    This is the report produced by Inform 7 (build 6G60) on its most recent run through:

    In Book 3 – Greeting Protocols, Chapter 2 – Saying Goodbye in the extension Conversation Framework by Eric Eve:

    Problem. You wrote ‘now the current interlocutor is nothing’ , but although ‘current interlocutor is nothing’ is a condition which it is legal to test with ‘if’, ‘when’, and so forth, it is not something I can arrange to happen on request. Whether it is true or not depends on current circumstances: so to make it true, you will need to adjust those circumstances.
    See the manual: 8.11 > Now…
    I was trying to match this phrase:

    (current interlocutor – object) is nothing
    This was what I found out:

    current interlocutor = a non-temporary variable, holding an object

    Hope this helps.

    And THANKS for the impressive extension.

    • oneconch says:

      In case you didn’t see my post on Intfiction: that extension by David Fisher uses deprecated features and is years out of date. You should use Ron Newcomb’s Custom Library Messages instead, which also has the benefit of being much more memory efficient. (And his Default Messages, even more so.) His extensions do not seem to have this conflict with mine, either.

  3. I think within an extension you can specify “Not for use with…” if that would keep people from trying to use them together.

    • oneconch says:

      No, only individual headings. I guess I could wrap the whole thing in a top-level heading “for use without”, but then 1) it would just fail silently in that case, 2) I couldn’t catch any other extensions the same way (well, theoretically, I could catch 4, if I reduced all other headings to the Section level, but no), and 3) I can’t go through and methodically catalog whether all extensions ever released, now and in perpetuity, play nicely with mine. That’s just how it has to be, using extensions: caveat auctor.

  4. Apologies for this super late comment-
    I might be missing something obvious, but whenever I try to compile a game which uses Threaded Conversation version 2/131025 I get an error message saying “Problem. You wrote ‘A quip has some text called the response’ , but ‘text’ contradicts what I previously thought about the property response, which was that it was a response.”.

    Err, what does this mean? Sorry, still new to I7, though I have tried searching the error.

    • oneconch says:

      That means you’re using it in Inform version 6L02, which as you’ve noticed defines its own meaning of the term “response”. (Specifically, this is what the new version of Inform calls parser error messages and other text printed by any rules named in the Standard Rules or other extensions.)

      I’ve corrected that and other 6L02 incompatibilities in the version available on the github. I was holding off on submitting it to the official site until I got more feedback on it and was sure it worked properly (there’s also the fact that the Public Library isn’t yet accessible within the IDE on any platform except OSX); let me know if you are interested in helping out with that.

      I’ve also updated this page to reflect that fact — thank you!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s