i’m trying to remove the default message that inform gives when an item is in the room completely, so there’s no ‘you can see a, b (that contains c), and d’ message. i’ve googled and googled and haven’t found anything, just that it’s possible. how would i go about doing this?
Can you say more about what exact behavior you’re looking for? There are a lot of solutions here, including making an object scenery, mentioning an item in the room description then having it not show up in the “you can see” paragraph, omitting the contents of containers from the description of the container itself… but they’ll all work a little differently. So knowing a bit more about what exactly you’ve got in your room, what you want the player to see, and how that might change as the player does stuff, would help figure out which approach is best!
(It is possible to completely remove that line, but it’s a very bad idea because then if the player drops something in a room, they’ll have no indication that it’s there!)
mentioning an item in the room description and it not appearing in the you can see messages is exactly what i’m going for. it listing the items inside of a container is also a big thing that i’m not really a fan of. if the whole thing isn’t hideable (that’s fair, your last line brings up a good point), i’d like to hide specific items, mainly a trapdoor under a floorboard and the items inside of a chest, i’d be fine with it listing everything besides that
For the first, the easiest thing to do is to put square brackets around the item name in the room description – this tells Inform to display the printed name, and since it knows the item’s already been mentioned, it won’t mention it again in the “you san see” line (note that you’ll usually want to make these objects fixed in place so that the description doesn’t stop making sense if the player moves things around – though you can also put if statements in the description to manage this if needed). For the contents of containers, you can make them opaque. And for hidden items, usually the easiest thing is to only move them onscreen once they’re found.
Here’s a simple example that demonstrates some of these techniques – hope it’s clear!
The lab is a room. The description of the lab is "You see a [bunsen burner] and a [lab bench] here. There's also a loose [floorboard] under your feet[if the trapdoor is in the lab]. You've also found a [trapdoor] leading downwards into the gloom[end if]."
The bunsen burner is in the lab. It is fixed in place. The lab bench is an opaque openable container in the lab. It is fixed in place. The goggles are in the lab bench.
The floorboard is in the lab.
The trapdoor is nowhere. It is fixed in place.
instead of taking the floorboard:
If the trapdoor is not in the lab:
Say "You lift the loose floorboard, only to reveal a trapdoor below!";
Now the trapdoor is in the lab;
Otherwise:
Say "You already found the trapdoor."
To have things be present but not individually mentioned when looking such that the player wouldn’t even know they’re there unless they’re mentioned in the room description is exactly what scenery is for.
If something is a scenery container, it won’t get mentioned at all, whether or not it has stuff in it, like any other scenery. But supporters get mentioned if they have something on them, even if the supporter is scenery. (This could be selectively disabled with, e.g., The describe what's on scenery supporters in room descriptions rule does nothing when the item described is the platform.
)
For non-scenery containers, contents won’t be mentioned unless it’s either open (which containers are by default) or transparent. So to ensure the items inside the chest aren’t mentioned you could make it an openable closed container
.
For the trapdoor I’d suggest a little more…
The trapdoor is a privately-named undescribed door.
The trapdoor is down from the den.
The basement is down from the trapdoor.
Understand "trapdoor" as the trapdoor when the trapdoor is described.
[in whatever action rule covers prying up the floorboard to reveal the trapdoor]:
now the trapdoor is described.
Described vs. undescribed is a property all things can have. Undescribed things behave like scenery in many contexts, but if one tries to use an undescribed door, one gets “you can’t go that way”, just like if there were no exit in that direction. Since one can’t move doors around like other things, this is a useful way to have a secret door.
privately-named
means that I7 doesn’t automatically create a dictionary word associating “trapdoor” in a player’s command with the trapdoor, so we do it explicitly, but conditionally, with Understand "trapdoor" as the trapdoor when the trapdoor is described.
Another way to suppress something being mentioned in “You can also see…” without making it undescribed or scenery would be:
For writing a paragraph about the stool: now the stool is mentioned.
(If the thing weren’t fixed in place, you’d probably want to qualify that by location.)
this is super helpful, thank you! realizing how simple it was haha