Can't create a scenery thing carried by someone

[code]“In the Palm of His Hand” by Chin Kee Yong

Mount Olympus is a room.

Helios is a man in Mount Olympus.

The Sun is a scenery thing carried by Helios.[/code]

It’s possible for scenery to be carried by someone in the course of the game (for example, with the >purloin command or with a Now statement) so I’m curious if this error message is intentional. It could certainly stand to be clearer. I tried sending a bug report through the email form on the website, but Graham’s email address appears to be defunct – I’m posting it here instead so that other, more technically-minded Inform developers can take a look.

Yes, it’s intentional. The game model expects that scenery is never carried. If you move a scenery object into the player’s inventory, you wind up with a confusing state in which the player can drop the object but not pick it back up. So that’s not ideal.

Bug reports are best filed at

(The reason it’s an error is also because “carried” ⇒ “portable” ⇒ “not scenery”, so Inform thinks the Sun is supposed to be both scenery and not scenery, which is a contradiction.)

Of course, it’s perfectly possible to have a piece of scenery which is portable, and to put it in the player’s inventory, if we really want to.

Kilimanjaro is scenery. Kilimanjaro is portable. The player carries Kilimanjaro.

The can't take scenery rule does nothing when taking Kilimanjaro.

It’s still not really compatible with the world model.

It is fixed in place.

By the time you’ve gone through and adjusted all the rules to fit, you’ve removed any reason for the thing to be scenery in the first place.

True. Though I don’t suppose you’d do this unless your world model was pretty weird anyway. (CKY’s portable scenery item is the freaking Sun!)

Curious - what is the point of it being scenery? So it won’t show in the room description?

Could it start as a scenery item which is toggled between a separate normal object and scenery again as it’s picked up and dropped?

If you want a normal, portable object which does not appear in the room description, the easiest way is locale priority.

Rule for choosing notable locale objects:
	set the locale priority of Kilimanjari to 0.

That works, but you have to remember to catch all the ways the object could be dropped. (Including PUT X ON Y, etc.)

1 Like

Are there others besides drop, take, insert and put?

I’m sure I’ve attempted a similar thing doing an every turn to check and swapping if the wrong instance is on-stage.

Take, drop, insert, put, empty, remove, wear, implicit takes. Possibly a few others also. Probably best to set the locale priority or use a rule for writing a paragraph about.