back to the Thing Creator

I7 Thing Creator manual

in the form of questions & answers


Using the form

What is I7 Thing Creator?

The Thing Creator (I7TC) is a web form where you fill fields and tick boxes according to the properties of a thing you want to create. The form then gives you the basic code to use and to build on in your I7 coding project. The Thing Creator creates the basic defining code and responses to actions only – it doesn't code the game for you. Anything more complex and the final functionality must be coded in the Inform 7 IDE.

Another way to look at the tool is to see it as a checklist of things that need to be implemented. You are then less likely to forget to implement a reasonable response to something players might try:

>touch electric fence

You feel nothing unexpected.

What's I7?

Inform 7 is a programming language for creating Interactive fiction games.

Please note that this tool or its author are not affiliated in any way with the Inform 7 development team.

What license does it use?

I7 Thing Creator has been released to the Public Domain by its author. This means you can do whatever you want with it without asking a permission first. Though if you re-publish it (with or without modifications), it'd be courteous to credit the original author.

Can I use it offline?

Yes, just save the page (File->Save Page As..) and the file prototype.js to the same directory and it should work as a local copy. Change the main file's extension to .html if it is something else. If you want it to be pretty, save creator.css to the same directory.

Can I integrate it to the Inform IDE?
Are there any other related tools?

Well now that you happen to ask, from the same author there's the IF Transcript Beautifier you can use when your game is in the testing phase to make transcripts look nicer.

Using the form
Why do selections change by themselves?

When you add a property to a thing or make it a certain kind, other properties or kinds might conflict with the new selection. The form automatically selects those properties that must be used with the new selection and deselects those that can't be used with it.

For example a thing cannot be a container and a supporter at the same time, so if you select either one of those, the other will be deselected. Similarly if you mark the thing openable, it will be automatically made a container since only containers are allowed to have that property.

Why aren't all my choices showing up in the code?

Kinds have properties that are implicitly attached to them, for example a supporter is fixed in place unless otherwise stated. Redundancy is avoided to keep the code readable.

What does "group x, y and z together" mean?

Some actions are very similar and they are often likely to be handled as a single action. You can mark them being grouped so you have to write only one default message that is applied to all actions in the group, instead of writing the same description for each individual action.

What does "symmetrical tying" mean?

It means that the command TIE A TO B is considered to be the same as TIE B TO A.

How do I enter synonyms?

Write each synonym group on its own line, i.e. each line will become its own "Understand..." sentence:

This will produce
Understand "cheese/cheddar" as the cheese.
Understand "delicious/tasty/exquisite" as the cheese.

Can I assign the thing a custom-made kind?

No, at least not at the moment. If you use a custom kind, you'll have to edit the code by hand.

Which rule (instead of, after, before...) should I choose?

An "instead of"-rule is usually the safest bet for actions that should always fail with a custom message. For some actions you might want to override the implicit taking action if the thing is fixed in place; for those (e.g. eating) you should use "before...instead"-rule. The form warns you if it thinks your choice is not the best possible. You should always test every action to see if the rule works.