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

# QuartzUIGASContract: 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/QuartzUIGASContract.h`) · [integration recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) · [practical guide](https://betterbuilt.games/docs/quartz-ui/integrations)

## FQuartzUIGASContextState

**Public type.** Data-only availability of the exact local player's configured GAS context. Wire role: payload of `quartzui.gas.context` (state).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.subscribeState('quartzui.gas.context', value => { /* read this DTO */ })`. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L9`)

## FQuartzUIGASAttribute

**Public type.** One reflected attribute value; no AttributeSet object crosses the wire.

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Subscribe to quartzui.gas.attributes after binding GAS. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L25`)

## FQuartzUIGASAttributeState

**Public type.** GASAttribute State: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: payload of `quartzui.gas.attributes` (state).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.subscribeState('quartzui.gas.attributes', value => { /* read this DTO */ })`. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L47`)

## FQuartzUIGASTag

**Public type.** GASTag: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below.

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Subscribe to quartzui.gas.attributes after binding GAS. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L62`)

## FQuartzUIGASTagState

**Public type.** GASTag State: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: payload of `quartzui.gas.tags` (state).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.subscribeState('quartzui.gas.tags', value => { /* read this DTO */ })`. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L77`)

## FQuartzUIGASAbilityCost

**Public type.** One automatically quantified simple GAS cost or optional project override.

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Subscribe to quartzui.gas.attributes after binding GAS. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L93`)

## FQuartzUIGASAbility

**Public type.** One granted ability spec projected into immutable browser state.

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Subscribe to quartzui.gas.attributes after binding GAS. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L112`)

## FQuartzUIGASAbilityState

**Public type.** GASAbility State: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: payload of `quartzui.gas.abilities` (state).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.subscribeState('quartzui.gas.abilities', value => { /* read this DTO */ })`. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L176`)

## FQuartzUIGASStatusEffect

**Public type.** One active GameplayEffect/status projection.

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Subscribe to quartzui.gas.attributes after binding GAS. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L192`)

## FQuartzUIGASStatusEffectState

**Public type.** GASStatus Effect State: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: payload of `quartzui.gas.status-effects` (state).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.subscribeState('quartzui.gas.status-effects', value => { /* read this DTO */ })`. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L234`)

## FQuartzUIGASAttributeChangedEvent

**Public type.** GASAttribute Changed Event: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: payload of `quartzui.gas.attribute-changed` (event).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.subscribeEvent('quartzui.gas.attribute-changed', value => { /* read this DTO */ })`. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L249`)

## FQuartzUIGASTagChangedEvent

**Public type.** GASTag Changed Event: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: payload of `quartzui.gas.tag-changed` (event).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.subscribeEvent('quartzui.gas.tag-changed', value => { /* read this DTO */ })`. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L264`)

## FQuartzUIGASAbilityEvent

**Public type.** GASAbility Event: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: payload of `quartzui.gas.ability` (event).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.subscribeEvent('quartzui.gas.ability', value => { /* read this DTO */ })`. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L279`)

## FQuartzUIGASStatusEffectEvent

**Public type.** GASStatus Effect Event: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: payload of `quartzui.gas.status-effect` (event).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.subscribeEvent('quartzui.gas.status-effect', value => { /* read this DTO */ })`. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L296`)

## FQuartzUIGASAbilityActionRequest

**Public type.** GASAbility Action Request: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: payload of `quartzui.gas.activate` (request), payload of `quartzui.gas.cancel` (request).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.request('quartzui.gas.activate', payload)` with the generated exact payload; this type is its payload. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L313`)

## FQuartzUIGASAbilityActionResult

**Public type.** GASAbility Action Result: a declared type in core immutable gas state, event and request dtos; use its exact fields/operations below. Wire role: result of `quartzui.gas.activate` (request), result of `quartzui.gas.cancel` (request).

**Prerequisites / integration:** Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the [QuartzUIGASContract recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuigascontract) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** `client.request('quartzui.gas.activate', payload)` with the generated exact payload; this type is its result. Snapshots retained; events transient; actual producer is optional GAS module.

**Avoid:** Assuming presence of a DTO starts the integration. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIGASContract.h#L322`)

## 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 "QuartzUIGASContract.generated.h"

/** Data-only availability of the exact local player's configured GAS context. */
USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASContextState"))
struct QUARTZUIRUNTIME_API FQuartzUIGASContextState
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "available"))
	bool bAvailable = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "generation"))
	int64 Generation = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "revision"))
	int64 Revision = 0;
};

/** One reflected attribute value; no AttributeSet object crosses the wire. */
USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASAttribute"))
struct QUARTZUIRUNTIME_API FQuartzUIGASAttribute
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "id"))
	FString Id;

	/** Stable reflected class path, for example /Script/LyraGame.LyraHealthSet. */
	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "attributeSetPath"))
	FString AttributeSetPath;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "name"))
	FString Name;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "baseValue"))
	float BaseValue = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "currentValue"))
	float CurrentValue = 0.0f;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASAttributeState"))
struct QUARTZUIRUNTIME_API FQuartzUIGASAttributeState
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "available"))
	bool bAvailable = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "revision"))
	int64 Revision = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "attributes"))
	TArray<FQuartzUIGASAttribute> Attributes;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASTag"))
struct QUARTZUIRUNTIME_API FQuartzUIGASTag
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "id"))
	FString Id;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "present"))
	bool bPresent = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "count"))
	int32 Count = 0;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASTagState"))
struct QUARTZUIRUNTIME_API FQuartzUIGASTagState
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "available"))
	bool bAvailable = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "revision"))
	int64 Revision = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "tags"))
	TArray<FQuartzUIGASTag> Tags;
};

/** One automatically quantified simple GAS cost or optional project override. */
USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASAbilityCost"))
struct QUARTZUIRUNTIME_API FQuartzUIGASAbilityCost
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "id"))
	FString Id;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "currentValue"))
	float CurrentValue = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "requiredValue"))
	float RequiredValue = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "affordable"))
	bool bAffordable = false;
};

/** One granted ability spec projected into immutable browser state. */
USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASAbility"))
struct QUARTZUIRUNTIME_API FQuartzUIGASAbility
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "id"))
	FString Id;

	/** Ability class identity is data; the class UObject never crosses the wire. */
	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "classPath"))
	FString ClassPath;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "assetTags"))
	TArray<FString> AssetTags;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "sourceTags"))
	TArray<FString> SourceTags;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "inputId"))
	int32 InputId = INDEX_NONE;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "granted"))
	bool bGranted = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "active"))
	bool bActive = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "availabilityKnown"))
	bool bAvailabilityKnown = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "available"))
	bool bAvailable = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "affordable"))
	bool bAffordable = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "activationAllowed"))
	bool bActivationAllowed = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "cancellationAllowed"))
	bool bCancellationAllowed = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "onCooldown"))
	bool bOnCooldown = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "level"))
	int32 Level = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "cooldownRemainingSeconds"))
	float CooldownRemainingSeconds = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "cooldownDurationSeconds"))
	float CooldownDurationSeconds = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "capturedAtSeconds"))
	float CapturedAtSeconds = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "failureReasons"))
	TArray<FString> FailureReasons;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "costs"))
	TArray<FQuartzUIGASAbilityCost> Costs;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASAbilityState"))
struct QUARTZUIRUNTIME_API FQuartzUIGASAbilityState
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "available"))
	bool bAvailable = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "revision"))
	int64 Revision = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "abilities"))
	TArray<FQuartzUIGASAbility> Abilities;
};

/** One active GameplayEffect/status projection. */
USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASStatusEffect"))
struct QUARTZUIRUNTIME_API FQuartzUIGASStatusEffect
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "instanceId"))
	FString InstanceId;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "statusId"))
	FString StatusId;

	/** GameplayEffect class identity as immutable text, never a class UObject. */
	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "classPath"))
	FString ClassPath;

	/** Exact effect asset tags copied from the active spec. */
	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "assetTags"))
	TArray<FString> AssetTags;

	/** Exact tags granted by the active spec. */
	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "grantedTags"))
	TArray<FString> GrantedTags;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "stackCount"))
	int32 StackCount = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "durationSeconds"))
	float DurationSeconds = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "remainingSeconds"))
	float RemainingSeconds = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "capturedAtSeconds"))
	float CapturedAtSeconds = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "infinite"))
	bool bInfinite = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "inhibited"))
	bool bInhibited = false;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASStatusEffectState"))
struct QUARTZUIRUNTIME_API FQuartzUIGASStatusEffectState
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "available"))
	bool bAvailable = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "revision"))
	int64 Revision = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "effects"))
	TArray<FQuartzUIGASStatusEffect> Effects;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASAttributeChangedEvent"))
struct QUARTZUIRUNTIME_API FQuartzUIGASAttributeChangedEvent
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "revision"))
	int64 Revision = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "previousValue"))
	float PreviousValue = 0.0f;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "attribute"))
	FQuartzUIGASAttribute Attribute;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASTagChangedEvent"))
struct QUARTZUIRUNTIME_API FQuartzUIGASTagChangedEvent
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "revision"))
	int64 Revision = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "previousCount"))
	int32 PreviousCount = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "tag"))
	FQuartzUIGASTag Tag;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASAbilityEvent"))
struct QUARTZUIRUNTIME_API FQuartzUIGASAbilityEvent
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (
		QuartzUIName = "kind",
		QuartzUIStringValues = "activated|availability-changed|cooldown-started|cooldown-ended|cost-committed|failed|ended|cancelled|granted|removed"))
	FString Kind;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "revision"))
	int64 Revision = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "ability"))
	FQuartzUIGASAbility Ability;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASStatusEffectEvent"))
struct QUARTZUIRUNTIME_API FQuartzUIGASStatusEffectEvent
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (
		QuartzUIName = "kind",
		QuartzUIStringValues = "added|removed|stack-changed|time-changed|inhibition-changed"))
	FString Kind;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "revision"))
	int64 Revision = 0;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "effect"))
	FQuartzUIGASStatusEffect Effect;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASAbilityActionRequest"))
struct QUARTZUIRUNTIME_API FQuartzUIGASAbilityActionRequest
{
	GENERATED_BODY()

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS", meta = (QuartzUIName = "abilityId"))
	FString AbilityId;
};

USTRUCT(BlueprintType, meta = (QuartzUITypeName = "QuartzUIGASAbilityActionResult"))
struct QUARTZUIRUNTIME_API FQuartzUIGASAbilityActionResult
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (QuartzUIName = "accepted"))
	bool bAccepted = false;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|GAS", meta = (
		QuartzUIName = "reason",
		QuartzUIStringValues = "none|context-unavailable|ability-unknown|ability-not-granted|activation-disabled|cancellation-disabled|not-active|rate-limited|authority-rejected"))
	FString Reason = TEXT("context-unavailable");
};
```

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