---
title: "QuartzUIProviderSet: declaration reference"
description: "Quartz UI 0.57.0-dev: QuartzUIProviderSet: declaration reference. Source-reviewed guidance, usage and limitations."
status: approved
visibility: public
sourceRevision: fe5b709ec900e282b50e58b819a25041945005f9
reviewedAt: 2026-09-24
---

# QuartzUIProviderSet: declaration reference

> **0.57.0-dev · beta source documentation.** Native, Blueprint, Editor and rendering examples are source-reviewed, not executed in Unreal during this scan. See [validation and limits](https://betterbuilt.games/docs/quartz-ui/evidence).

Pinned source (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSet.h`) · [integration recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderset) · [practical guide](https://betterbuilt.games/docs/quartz-ui/providers-contracts)

## EQuartzUIProviderActivation

**Public type.** Selects when a registered provider set is instantiated for a shell.

**Prerequisites / integration:** Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the [QuartzUIProviderSet recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderset) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Register a set on the app; select OnShellReady or bind/release manually. Asset is durable; each handle belongs to one binding lifetime.

**Avoid:** Confusing registration with activation or releasing automatic handles manually. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSet.h#L12`)

## FQuartzUIProviderSetHandle

**Public type.** Opaque lifetime token returned by UQuartzUISubsystem::BindProviderSet.

**Prerequisites / integration:** Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the [QuartzUIProviderSet recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderset) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Register a set on the app; select OnShellReady or bind/release manually. Asset is durable; each handle belongs to one binding lifetime.

**Avoid:** Confusing registration with activation or releasing automatic handles manually. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSet.h#L23`)

## UQuartzUIProviderSet

**Public type.** Ordered reusable provider-class collection with an explicit activation policy.

**Prerequisites / integration:** Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the [QuartzUIProviderSet recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderset) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Register a set on the app; select OnShellReady or bind/release manually. Asset is durable; each handle belongs to one binding lifetime.

**Avoid:** Confusing registration with activation or releasing automatic handles manually. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSet.h#L36`)

## Complete header

Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.

```cpp
#pragma once

#include "CoreMinimal.h"
#include "Engine/DataAsset.h"

#include "QuartzUIProviderSet.generated.h"

class UQuartzUIProvider;

/** Selects when a registered provider set is instantiated for a shell. */
UENUM(BlueprintType)
enum class EQuartzUIProviderActivation : uint8
{
	/** The project binds and releases the set explicitly. */
	Manual,

	/** The QuartzUI subsystem binds the set whenever the canonical shell exists. */
	OnShellReady
};

/** Opaque lifetime token returned by UQuartzUISubsystem::BindProviderSet. */
USTRUCT(BlueprintType)
struct QUARTZUIRUNTIME_API FQuartzUIProviderSetHandle
{
	GENERATED_BODY()

	bool IsValid() const { return Id.IsValid(); }
	void Reset() { Id.Invalidate(); }

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "QuartzUI|Providers")
	FGuid Id;
};

/** Ordered reusable provider-class collection with an explicit activation policy. */
UCLASS(BlueprintType, meta = (DisplayName = "QuartzUI Provider Set"))
class QUARTZUIRUNTIME_API UQuartzUIProviderSet final : public UDataAsset
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "QuartzUI|Providers")
	TArray<TSoftClassPtr<UQuartzUIProvider>> Providers;

	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "QuartzUI|Providers")
	EQuartzUIProviderActivation Activation = EQuartzUIProviderActivation::Manual;

#if WITH_EDITOR
	virtual EDataValidationResult IsDataValid(class FDataValidationContext& Context) const override;
#endif
};
```

Canonical HTML: https://betterbuilt.games/docs/quartz-ui/reference-quartzuiproviderset
