Indirect tags
- Last UpdatedOct 29, 2026
- 2 minute read
An indirect tag references or points to another tag in the tags database.
Any tag of String type can be used as an indirect tag, as long as the value of that tag is the name of another tag in the tags database. To indicate that a tag should be used as an indirect tag, simply prepend an "at" character (@) to the tag name.
For example, consider the tag X of String type. If the value of X is "TEMP", then @X points to the tag TEMP. Anywhere that you use @X in your project, you will actually use TEMP as if you referenced it directly. And if the value of X changes to the name of yet another tag, then @X will point to that tag instead.
This eliminates the need to create duplicate logic for multiple tags. You can create the logic once, using indirect tags to point to the actual tags, and then change the values of those indirect tags as needed.
If you are specifically creating a new tag to be used as an indirect tag, you do not need to create it of String type. Instead, when you create the tag, you can enter the tag name with the @ already prepended and then select the type of the other tag(s) to which it will point. For example, @Z of Integer type. This makes it easier to filter the tags, because both regular and indirect tags of a specified type will be listed together.
Using indirect tags to point to classes and class members
You can use indirect tags to point to both classes and class members, in slightly different ways. Let's assume you do the following:
-
Create the class TANK with the member Level; and
-
Create the tag TK of the class TANK.
Now, there are two ways to use an indirect tag to point to TK.Level. The first is the standard way that was described above: if you create the tag XCLASS of String type and give it a value of "TK.Level", then @XCLASS points to TK.Level.
The second way might be more flexible, depending on how you use it in your project: if you create the tag XCLASS of the class TANK and give it a value of "TK", then @XCLASS.Level points to TK.Level. In this way, you can use the same indirect tag to point to different class members without changing its value.