- @set object=flag
- @set object=!flag
- @set object=attribute:value
- @set object/attribute=attribute flag
- @set object/attribute=!attribute flag
The simplest form of this command is used to set flags on objects, such as @set me=VISUAL. Different flags have different meanings, although some have no particular meaning of their own by default, and exist purely for testing in softcode. Check the documentation on individual flags to see what they are for. Some flags can not be set without the appropriate privileges.
Using the form @set object=!flag will unset the flag. Newer versions of some codebases will allows you to set and/or unset multiple flags in one go. For example, @set me=!VISUAL MYOPIC will unset the visual flag, and set the myopic flag. If you want to unset multiple flags, you need to prepend a ! to each.
By using the @set object=attribute:value form you will set the given attribute on the given object to the specified value, much like &attribute object=value, with the difference that @set will evaluate even when the command was received from the socket, and the & form will only evaluate if it's executed by code.
The @set object/attribute=attribute flag syntax is much like the one for regular flags, except it sets an attribute flag on the specified attribute. These are different from regular flags, and there are far less of them. Their effect is also limited to the attribute they're on.