> For the complete documentation index, see [llms.txt](https://bonspiel-games.gitbook.io/cortex-unity-plugin/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bonspiel-games.gitbook.io/cortex-unity-plugin/training/system-events.md).

# System Events

List of events available in the Training Handler class as a wrapper of system events from the Cortex API, these events are the backbone of the training process

## Training Started

An instance of training has been successfully started

```csharp
TrainingStarted(string headsetId);
```

## Training Succeeded

An instance of training has been successfully completed, must accept or reject the sample

```csharp
TrainingSucceeded(string headsetId)
```

## Training Failed

An instance of training has failed, often to to lack of signal or contact quality

```csharp
TrainingFailed(string headsetId);
```

## Training Completed

A training sample was started, succeeded, and has now been accepted

```csharp
TrainingCompleted(string headsetId);
```

## Training Rejected

A training sample was started, succeeded, and has now been rejected

```csharp
TrainingRejected(string headsetId);
```

## Training Cancelled

A training sample was successfully cancelled

```csharp
trainingCancelled(string headsetId);
```

## Data Erased

The data for a mental command has been successfully erased

```csharp
DataErased(string headsetId);
```

## Auto Sampling Neutral Completed

```csharp
AutoSamplingNeutralCompleted(string headsetId);
```

## Signature Updated

```csharp
SignatureUpdated(string headsetId);
```

Events are translated directly from the Cortex API data stream system events: [**https://emotiv.gitbook.io/cortex-api/bci/getdetectioninfo#mental-command**](https://emotiv.gitbook.io/cortex-api/bci/getdetectioninfo#mental-command)

This wrapping is intended to provide otherwise direct events in a more intuitive place. They can also be used by [subscribing to the system events data stream](/cortex-unity-plugin/cortex/data-subscription.md#subscribe-system-events) directly through Cortex.

```csharp
Cortex.SubscribeSystemEvents(string headsetId, Action<SystemEventArgs> action);
```
