There are several different types or scopes of Tags you can create in Ignition: Gateway Executed Tags, System Tags, and Client Tags. Each Tag belongs to a scope, and each scope plays a role in how Tags behave. All these Tag types are available in the Tag Browser.
When discussing "Tags", we commonly mean Gateway Executed Tags, but System and Client Tags also play an important role in the overall design of a project.
Let's examine the different types of Tags.
Tags executed in the Gateway support all of the primary features of Tags: scaling, alarming, history, and role-based permissions. These Tags are all Gateway scoped, and the values of the Tags are shared among all running clients. They are identical in their configurations, apart from defining how the value is generated.
You can create each of these Tags in the Tag Browser by right clicking on the Tags folder, scroll down to New Tag and select the desired Gateway Executed Tag.

An OPC Tag is an OPC server and address which drives values. The OPC server is typically a PLC or device, such as Ignition's OPC-UA server, or any third party OPC-UA server.
In the Tag Browser, double click on any existing OPC Tag, to see the the OPC Server name and Item Path.

The Memory Tags are simply values. The value is specified during configuration, and is stored when written (if the Tag allows writing).

The Expression Tags are driven by an expression, and its values are derived from a calculation. The expression syntax is the same as for property bindings, and allows mathematical operations, references to other Tags, logic operations, functions, and more. This expression example converts Celsius to Fahrenheit.

The SQL Query Tags execute a SQL Query, whose result provides the value for the Tag from the SQL database. Like an SQL binding in Vision, SQL Query Tags can reference other Tags to build dynamic queries. This SQL query example is getting the average of Ramp1 from the History table.

Complex Tags are created out of standard Tag types, but offer a variety of additional features. In simple terms, you can think of them as a way to create "data templates", where a particular structure of Tags is defined, and can then be created as if it were a single Tag. This UDT example shows two Motor instances, the data type Motor, and all the Tags that make up the structure (i.e., AMPS, HI SP, HOA, RUN_CMD, and STATUS).
