> For the complete documentation index, see [llms.txt](https://docs.oserosuite.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.oserosuite.com/supported-assets/render-results-screen/how-to-use-5.2+/data-handler.md).

# Data Handler

Documentation for the Osero Suite: Render Results Screen update 1.1 (5.2+)

A Render Results Screen Data Handler allows a user to create an automated task at the end of a render to process the render data in a way other than the Render Results Screen.

## Setting a Data Handler

The Data Handler class can be set in the Project Settings, along with an option to disable the Render Results Screen ([see here](/supported-assets/render-results-screen/how-to-use-5.2+/project-settings.md#automation)). When a render finishes in the Movie Render Queue, the data will be sent to this class to process in the user-defined way.

## Blueprints

To create a new Data Handler, right-click in the *Content Browser* or click **+Add**. Select **Blueprint Class**.&#x20;

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2F6Jt5Y6S5dT81WYIlycvi%2FRRS27.png?alt=media&amp;token=e0ad79fe-8f37-4ced-af15-1b11fba3c236" alt=""><figcaption></figcaption></figure>

Under *All Classes* select **Osero Suite: Render Data Handler**.

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2FKewnRBpPRphkl5afj67i%2FRRS28.png?alt=media&amp;token=e3689c10-fd9b-46fa-9a4a-ea4f3c496b52" alt=""><figcaption></figcaption></figure>

When the new Data Handler is opened, it will be empty.

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2F3Azjw9Iog912Il7OVUMe%2Fimage.png?alt=media&amp;token=880392a9-0f0b-4cff-99ee-c2d44ef89e97" alt=""><figcaption></figcaption></figure>

Under *FUNCTIONS*, click **Override** and select **Handle Data**.

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2Fw4sQ2VdMymKmCaMoBErB%2FRRS30.png?alt=media&amp;token=c1136066-2acd-4fa8-97d7-01404f4f14a9" alt=""><figcaption></figcaption></figure>

This will add a new event to this Blueprint called **Handle Data**.

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2FTJCWe2HANWebIYCx1IHW%2FRRS31.png?alt=media&amp;token=e6d5291b-33a4-422d-8031-6f3ea0c2127d" alt=""><figcaption></figcaption></figure>

The Result Data pin can be split into the data from the render and used as required.

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2FnQIHCDPgwpJsScEK0K5l%2FRRS32.png?alt=media&amp;token=a3508396-07a2-4af4-9075-7a353f2f0988" alt=""><figcaption></figcaption></figure>

The Job Data struct can be split into the data from the Job and used as required.

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2FN1bdnWl0GffLfMZC2IIL%2FRRS33.png?alt=media&amp;token=b3b654ab-60f2-4316-983f-38c99e790b22" alt=""><figcaption></figcaption></figure>

The Shot Data struct can be split into the data from the Shot and used as required.

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2FUG0dU0gWjFq6wKdPNlVG%2FRRS34.png?alt=media&amp;token=e6925d89-4910-424e-af1c-bb388897ca09" alt=""><figcaption></figcaption></figure>

There also a number of functions available under the **Osero Suite: Render Results Screen** category to help with interpreting this data.

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2Ft2qAMdEiLnqLkFh0bdrs%2FRRS35.png?alt=media&amp;token=1dd90ec1-19f8-404f-9259-261fa9f84947" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Make sure to [set the **Data Export Class** in Project Settings](#setting-a-data-handler) to the newly created Blueprint class so that it can execute when renders are finished.
{% endhint %}

## C++

To create a new Data Handler, add a new C++ class of type `OS_RRS_DataHandler`.

<figure><img src="https://831795444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDaZWGO8xkqnm1mVNUQP7%2Fuploads%2FzVxI0aCpcpQWgClTGfKr%2FRRS36.png?alt=media&amp;token=3efc59f2-10c6-40eb-98d7-488a0ab4b177" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The Data Handler Class is in an Editor Module, and so the recommended place for a new Data Handler Class is in another Editor Module.
{% endhint %}

Add `Blutility`, `MovieRenderPipelineCore`, and `OS_RRS_Editor` to the Module's Build.cs file.

```csharp
PrivateDependencyModuleNames.AddRange(
	new string[]
	{
		...
		"Blutility",
		"MovieRenderPipelineCore",
         	"OS_RRS_Editor",
         }
);
```

Override `HandleData_Native` in the new `UOS_RRS_DataHandler` to receive the render data once a render has finished.

```cpp
/* Header File */
UCLASS()
class PROJECT_EDITOR_API UNewDataHandler : public UOS_RRS_DataHandler
{
	GENERATED_BODY()
	
protected:
	virtual void HandleData_Native(FOS_RRS_ResultData ResultData) override;
};
```

```
/* Cpp File */
#include "NewDataHandler.h"

void UNewDataHandler::HandleData_Native(FOS_RRS_ResultData ResultData)
{

}
```

In this new function, the data can then be used as required. The main classes and structs of relevance are:

* [UOS\_RRS\_DataHandler](/supported-assets/render-results-screen/how-to-use-5.2+/code-reference/classes/uos_rrs_datahandler.md)
* [FOS\_RRS\_ResultData](/supported-assets/render-results-screen/how-to-use-5.2+/code-reference/structs/fos_rrs_resultdata.md)
* [FOS\_RRS\_JobData](/supported-assets/render-results-screen/how-to-use-5.2+/code-reference/structs/fos_rrs_jobdata.md)
* [FOS\_RRS\_ShotData](/supported-assets/render-results-screen/how-to-use-5.2+/code-reference/structs/fos_rrs_shotdata.md)
* [UOS\_RRS\_RenderDataLibrary](/supported-assets/render-results-screen/how-to-use-5.2+/code-reference/classes/uos_rrs_renderdatalibrary.md)

{% hint style="success" %}
Make sure to [set the **Data Export Class** in Project Settings](#setting-a-data-handler) to the newly created Blueprint class so that it can execute when renders are finished.
{% endhint %}

## Example

There is an example Data Handler located here: **Osero Suite: Render Results Screen Content** > **Example** > **HandleData\_SaveToDataAsset**. This is a simple little Blueprint that takes the input data and saves it to a new Data Asset.
