Room Listings - Things, and Person's

I am new to TADs and have been scouring the references etc. looking for ways of having things and people that are present in the current Room NOT be mentioned when the room does its listing. With things I’ve been able to use a blank initSpecialDesc to avoid it being mentioned:

handheldLookingGlass: Thing 'Looking Glass/Handheld Looking Glass' 'Looking Glass' @rabbitHole
    "The handheld looking glass is polished silver, very ornate. It is a very beautiful piece of craftsmanship."
    initSpecialDesc = ""

But this doesn’t seem to work for Person objects. - and this seems a bit hacky. I don’t want them to be hidden, I just want to have more control over when/how they are described when the player does a ‘look’ etc.


For things, you can set the “isListed” or “isListedInContents” property to nil. “isListedInContents” controls whether the item is mentioned after the description of the thing it’s in/on. “isListed” controls whether the item is mentioned after a room description. By default “isListed” uses the value of “isListedInContents”, so if you don’t want the item mentioned in either the room description or container/surface descriptions, you can just set “isListedInContents = nil”.

For people, you have to set the “useSpecialDesc” property to nil. (Since people are special, TADS 3 gives them all a simple specialDesc by default; that way you never get told things like, “You see Bob and a ball here.”)

In both cases, you can use a function instead of a simple nil value, if you want the object to be listed in some cases but not all. For instance, if you want Bob to be listed normally in all cases except when he’s in his armchair:

useSpecialDesc() { if (isIn(armchair)) return nil; else return true; }

Thank you so much! I’ll try these solutions!