Hiding Doors

Hey all-
I am unable to install extensions on my mac. Don’t know why, but I’ve spent hours trying to figure it out, including looking at the topics here about the problem, but no dice. Can’t install them and sick of trying.

Is there a non-extension way to get a hidden door? I’ve also spent hours trying to make a door that’s not a door in the code, but without it being an actual door, there are just too many headachy variables to deal with.

If anyone has a way to do this, I’d love to hear it.

What do you mean by “hidden”? What functionality are you looking for, exactly?

If you define a door as “scenery,” it won’t appear in the room description.

If you define something as “privately-named,” the player won’t be able to refer to it except with terms you explicitly tell the parser to “understand.”

As a workaround for the extensions problem, you can copy the source code of an extension into your story to get its functionality.

Extensions are just plain text files which are structured like this:

Foo by Bar begins here.

"Short description"

[here is the actual source code]

Foo ends here.

---- Documentation ----

[documentation follows]

You can open any extension with a plain text editor and copy out the passage which I marked as “[here is the actual source code]” and paste that into your own story, at the place where you would otherwise write “Include Foo by Bar.” (This replacement is what the compiler would automatically do.)

So, for the current purpose, depending on what effect you’re going for, you could download Gavin Lambert’s extension “Secret Doors”, open it in a text editor and copy out the relevant part (or of course just copy it directly from the github page in your browser), so in this case:

Click to reveal code
A secret door is a kind of door.
A secret door can be revealed or unrevealed.
A secret door is unrevealed.
A secret door is scenery.
A secret door is closed.

A secret switch is a kind of thing.
A secret switch can be revealed or unrevealed.
A secret switch is unrevealed.
A secret switch is scenery.

To print the you can't go message:
	say "[text of can't go that way rule response (A)][line break]".

To print the you can't see message:
	say "[text of parser error internal rule response (E)][line break]".

Before going through a secret door which is unrevealed:
	print the you can't go message instead.
Rule for setting action variables for going (this is the going through secret doors rule):
	if the door gone through is an unrevealed secret door:
		now the door gone through is nothing;
		now the room gone to is nothing.
The going through secret doors rule is listed after the standard set going variables rule in the setting action variables rulebook.
The determine map connection rule is not listed in any rulebook.

Before doing something to a secret door which is unrevealed:
	print the you can't see message instead.

Before doing something when a secret door is the second noun and the second noun is unrevealed:
	print the you can't see message instead.

Before doing something to a secret switch which is unrevealed:
	print the you can't see message instead.

Before doing something when a secret switch is the second noun and the second noun is unrevealed:
	print the you can't see message instead.

Paste that into your story, and you’re good to go. The extension’s documentation includes a short example how to use it.

Here’s another workaround: You could try using “project-specific extensions”, as described in chapter 27.3 of the docs.

Having said all that, I think it would be good if you tried again sometime to get the installation of extensions running on your system. Unfortunately, I haven’t got a Mac, so I can’t help with that. Maybe some kind of permissions issue, where you don’t have the necessary permissions for the relevant directories?

I understand that computer issues can be very frustrating, but there are so many good extensions that it would be a shame to miss out on them. There are many people here who use Inform on a Mac, so I’m sure it should be possible to narrow down the cause of the problem with their help. And possibly others, who share your system configuration and might run into the same issue, could benefit in the future.

Thank you!
Lambert’s secret doors was what I wanted.

Are you sure it’s legit to just take it like that? I know it’s free, but it feels a little steal-ish to copy it like that. But if that’s an OK thing to do, then this has solved my problem!

The extensions are licensed under CC-BY, so you need to credit Gavin Lambert somewhere, for example in the ABOUT text of your game.

If you include extensions in the normal way, Inform automatically takes care of the attribution (the full list of credits can be seen with the “VERSION” command). (Although even then, it’s nice to credit the extension authors directly in the ABOUT text.)


You can always credit Gavin Lambert in your “about” text.

I hesitated to say this 'cause you sounded pretty burned out on trying to install extensions, but… in the long run, it’d pay to know how to be able to use extensions. I also hesitated 'cause I’m not a Mac person and so am a terrible candidate to give practical help. But here goes anyway!

Something that’s kind of problematic is that the Inform docs and the advice here as recent as something like 18 months ago will point you toward the Public Library first, and it’s no longer supported.

Did you get Inform 7 by downloading from inform7.com or from the App Store?

If you got it from inform7.com, this should work:

Start a new project in Inform. Delete the room definition. Compile. You’ll get an error. Select ‘console’. This’ll let you see how the IDE is invoking the compiler. Look at what’s after “-external”; it should be something like /Users/amandab/Library/Inform (or whatever your username is instead of “amandab”). If you look at that directory, you’ll see it has directories called Documentation and Telemetry.

Now download the Zip archive of the Friends of I7 Extensions. Open it and move the “extensions-master” folder to /Users/amandab/Library/Inform and rename it “Extensions”, so now you have an Extensions directory at the same level as Documentation and Telemetry.

And now including any of the Friends of I7 extensions should just work.

If you installed from the App Store and -external includes /Containers/, I’m not sure it’s that simple.


Thanks. In a few days maybe I won’t feel like taking a hammer to my mac and I’ll take a deep breath and try again. This looks really helpful.