Trying a very basic story

Hello everyone,

I am a complete noob so please be gentle. I am planning a very basic story which will be played by a group of people who have never been exposed to IF. Shocking I know! Many years ago I played my first IF and not quite as long ago I was successful at making a very basic story for my kids, but I am less confident now.

I will give a summary of what I have planned and how I think I should proceed, but I welcome any and all suggestions.

The entire story will involve the players finding 12 pages from a calendar. Each page/month will provide them with a secret word when they inspect/read them. Everything will happen in one room - an office.

My current plan is…
In the office:
a safe (container - lockable and locked)
a trash can (container)
a desk (supporter) with 2 drawers (containers - part of desk?) - 1 unlockable and 1 lockable and locked.
a globe (container) is on the desk.
a key (thing) is inside the globe (for the locked drawer)
a safe code (thing) is in the locked drawer
a rug (thing?) on the floor
a picture (thing?) on a wall

6 of the calendar pages (things) will be in the safe.

The others will be - 1 each:
In the trash can, under the rug, on the floor - visible, in the unlocked drawer, in the locked drawer and behind the picture.

Upon taking the globe, I plan on prompting the player of a metal sounding noise inside. I am thinking they will drop/throw? the globe to break it open - revealing the key.

The key will obviously unlock the drawer. I am open to suggestions on the easiest way (both for me and for inexperienced players) to handle to safe code.

Once the safe is opened, the remaining pages will be available.

So, there it is in all it’s glory! I would welcome any concept changes that will make it easier on me as well as straightforward playing for the players. I plan on jumping in so be ready for a bunch of noob questions…

Thanks in advance for guidance provided.


This sounds like a nice simple game that uses a lot of the classic parser functionality and wouldn’t be too hard for people unfamiliar with the genre. For people familiar with the genre, the enjoyment would largely depend on the text you write and the responses you add–having a consistent, interesting character voice or style or whatever. Both would benefit a ton from the game not being buggy, so I definitely recommend having someone in your target audience test it (and asking for testers here). It’s really hard to guess what people will type without watching them do it firsthand (or asking them to save a transcript by typing TRANSCRIPT at the beginning).

I’ve used safes a few times before and I find the examples in Writing with Inform work pretty good. Here’s a link to the easiest example (and the one I’ve used the most):

One piece of advice I’d give is that sometimes you want to be able to let a player do something close to but slightly different from a pre-existing Inform verb. For instance, you might want them to be able to LIFT the rug or LOOK UNDER it, and have the result be the same, so you might think you need to create a LIFTING action, but it’s a lot easier to just make them synonyms, like Understand "lift [something]" as looking under. The same thing would go with BREAKing (which is already a synonym for ATTACKing).


Sounds like a good start! Everybody has to start somewhere. I’ve asked my own share of noob questions.


@mathbrush Thank you for your suggestions!


Shocker…I already have a question. The 12 pages will be for the 12 months of the year. I was planning to provide the secret word in each description - the order of the words is very important and the position will depend on what month the word is on. January would be the first word, even if January is found in the safe last. What is the best way to handle the pages? In other words, how can I refer to them all as pages but give them different descriptions? Or should I just name them per each month at the start?

1 Like

The typical approach for that is to create a kind, which is like a category:

A page is a kind of thing.

Then you could create the particular ones :

January is a page.

(Or however you want to name them).

That way your code can refer to particular pages (“the description of January is…”) or all of them at once (“before inserting a page into the calendar…”)


I don’t normally wander into Inform 7 topics, because Inform 7 is way over my head, but I think a one-room game is a good choice for a first game. The concept and the puzzles remind me of an escape room. If you sell it to your new players as such, then I think they will “get it” straight away, especially if they’ve done one or two escape rooms themselves.

The only thing I would suggest is that you might be able to spread the six calendar pages in the safe a bit more, perhaps in a cupboard or locker or locked box or briefcase under the desk or something like that.


Steve, that sounds like a really reasonable-- and fun-- first project! I say this as someone whose first project was unreasonably complicated. Totally doable in Inform.

1 Like

I was thinking of more options for the pages, but then decided on starting out with fewer actions. I came up with what I thought was a pretty straightforward riddle for them to solve and they struggled. I do not say that as a jab at them at all. I just need to learn how others process what seems so very clear in my brain.

Probably the issue is in my brain! :joy:


Not at all. It’s a common problem with new players. You may need to provide some better in-game hinting, even if it’s only hinting at the normal text adventure conventions.

Also, make sure you allow for different ways of achieving the same end result. As a simple example, GIVE BONE TO DOG should be the same as FEED DOG WITH BONE. And provide plenty of synonyms for verbs, in particular.

1 Like

Ugh. I made a rookie mistake for sure. Nothing like thinking you saved your project but you really didn’t!

Current question I have - my initial room description mentions a desk, safe and trash can. I have separate descriptions for each when examined by the player.

But the following is also displayed. You can see a desk (on which is a globe (closed)), a safe (closed) and a trash can (empty) here.

Not only are the items repeated, I don’t want the player to know the globe can be opened…yet. The safe being closed isn’t as big a deal. I plan to add a few things in the trash as well - but I do not want them listed.

I remember this issue being mentioned in the documentation and I have looked for it, but have had no luck.


If you are mentioning those items in the room description and don’t want them repeated, I believe you can enclose them in square brackets in the room description so that Inform knows they are already mentioned.

If it’s something that isn’t going to get moved around, you could make it scenery: §3.8. Scenery

I don’t remember which rule prints “closed,” but if it’s still doing that, you could try turning on “rules” and then “look” to try to figure out which rule is printing that.


Maybe this is what you are looking for:

21.3. Saying lists of values (

Particularly the example mentioned “Oyster Wide Shut” deals with handling things like (closed) etc.

In my game “One King to Loot them All” I customized the printing of some inventory itens:

A weapon is a kind of thing.
Definition: a person is armed rather than unarmed if it is carrying a weapon.
Definition: a weapon is wielded rather than unwielded if it is carried by a person.

Rule for printing inventory details of weapons: [ We tag the weapon as wielded ]
	say " (wielded)[run paragraph on]".

Rule for printing inventory details of persons: [ We tag the person as sacrifice ]
	say " (sacrifice)[run paragraph on]".

Clothing is a kind of wearable thing.
Clothing has a person called owner.
Definition: a person is decent rather than indecent if it is wearing clothing.
Definition: a thing (called P) is payment if P is clothing and the owner of P is not Conan.

Rule for printing inventory details of payment: [ We tag other clothing as payment ]
	say " (payment)[run paragraph on]".

The exact rules are explained in 18.17. Printing inventory details of something ( for inventory items.

For room descriptions there is 18.16. Printing room description details of something (

Here is a code example courtesy of Borogove:

1 Like