# State machines

<dl class="api-definition">
<dt>Concept</dt>
<dd><a href="/docs/development/opcua/server/state-machines">State machines</a></dd>
</dl>

| Type | Description |
|---|---|
| [OpcFiniteStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/) | Defines a specialization of the [OpcStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachinenode/) that provides a mechanism to explicitly define the states and transitions. |
| [OpcStateMachineInitialStateAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachineinitialstateattribute/) | Defines the initial state that a custom [OpcStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachinenode/) enters when it is activated. |
| [OpcStateMachineStatesAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachinestatesattribute/) | Defines unique states that a custom [OpcStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachinenode/) can enter using an enumeration type. |
| [OpcStateMachineTransitionAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachinetransitionattribute/) | Defines an unique transition from one state to another state a custom [OpcStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachinenode/) can perform. |
| [OpcStateMachineTransitionsAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachinetransitionsattribute/) | Defines unique transitions that a custom [OpcStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachinenode/) can perform using an enumeration type. |
