Alex wrote:The #@...# form is for the displayed object name. Never use it for actions or properties - you want to use the code name for those.
Let's imagine we have an object, which we'll display as "book" by setting its alias to "book". But in our code we call the object something like "fiction27".
When we have a command like "Read #@thing#", then we want the player to be able to type in "read book". Using the #@...# form allows us to do this, because we want it to work with the "book" alias.
However, when it comes to setting the properties of the object, it's "fiction27" we want to talk about, so we use "property <#thing#; hasbeenread>" etc.
If you were to use "property <#@thing# ... >" then Quest would be trying to set the property of the object with the code name "book" - which doesn't exist in our example here.