This seems like a pretty simplistic thing, but I can’t remember how to do it. The Design Manual seems to indicate that it isn’t possible by simply using the concealed attribute, of course.
I’d like to have an object that has a daemon method occasionally print an atmospheric message in the room in which the object resides. However, the object is strictly an emitter, is conceptual in nature, like a breeze, and shouldn’t be interacted with by the player under any circumstances.
I could do this by coding the daemon method on the room object itself, but I am unable to do this for reasons of convention.
Make it privately-named so the player can’t refer to it, and undescribed so the game won’t mention it.
Are you using Inform 6 or Inform 7?
Inform 6. The description field is being used to present the atmospheric message.
Even a nameless object can be referred to by a clever player using “ALL EXCEPT …”
The simplest and foolproof way to make an object un-referrable-to is: don’t put it in the room! Leave it off-stage. The daemon message can print no matter where the object is.
Zarf’s method is reliable. Another way to do it would be to park the daemon in an object that actually is in the room. The daemon’s output text doesn’t have to have anything to do with the object within which the daemon resides. You could even attach it to the player object. If you only want the message printed in some particular room, just test the location of the player at the beginning of the daemon routine. If the player is in the wrong place, return without printing anything.