QuartzUIGASConfig: 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.
Pinned source (source: Source/QuartzUIGAS/Public/QuartzUIGASConfig.h) · integration recipe · practical guide
EQuartzUIGASBrowserAbilityActionPolicy
Internal type. Browser authority policy. Observation never implies permission to mutate gameplay.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUIGASConfig recipe in the host module QuartzUIGAS.
Minimal example / lifecycle: Create config only for custom aliases/permissions; validate mappings. Durable primary data asset; scope consumes a validated configuration.
Avoid: Expecting mappings to load an ASC or allowing duplicate/invalid IDs. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.
Exact source line (source: Source/QuartzUIGAS/Public/QuartzUIGASConfig.h#L15)
FQuartzUIGASAttributeMapping
Public type. GASAttribute Mapping: a declared type in optional aliases, mappings, discovery mode and action permissions; use its exact fields/operations below.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUIGASConfig recipe in the host module QuartzUIGAS.
Minimal example / lifecycle: Create config only for custom aliases/permissions; validate mappings. Durable primary data asset; scope consumes a validated configuration.
Avoid: Expecting mappings to load an ASC or allowing duplicate/invalid IDs. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIGAS/Public/QuartzUIGASConfig.h#L28)
FQuartzUIGASTagMapping
Public type. GASTag Mapping: a declared type in optional aliases, mappings, discovery mode and action permissions; use its exact fields/operations below.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUIGASConfig recipe in the host module QuartzUIGAS.
Minimal example / lifecycle: Create config only for custom aliases/permissions; validate mappings. Durable primary data asset; scope consumes a validated configuration.
Avoid: Expecting mappings to load an ASC or allowing duplicate/invalid IDs. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIGAS/Public/QuartzUIGASConfig.h#L41)
FQuartzUIGASFailureReasonMapping
Public type. GASFailure Reason Mapping: a declared type in optional aliases, mappings, discovery mode and action permissions; use its exact fields/operations below.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUIGASConfig recipe in the host module QuartzUIGAS.
Minimal example / lifecycle: Create config only for custom aliases/permissions; validate mappings. Durable primary data asset; scope consumes a validated configuration.
Avoid: Expecting mappings to load an ASC or allowing duplicate/invalid IDs. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIGAS/Public/QuartzUIGASConfig.h#L53)
FQuartzUIGASAbilityCostMapping
Public type. GASAbility Cost Mapping: a declared type in optional aliases, mappings, discovery mode and action permissions; use its exact fields/operations below.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUIGASConfig recipe in the host module QuartzUIGAS.
Minimal example / lifecycle: Create config only for custom aliases/permissions; validate mappings. Durable primary data asset; scope consumes a validated configuration.
Avoid: Expecting mappings to load an ASC or allowing duplicate/invalid IDs. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIGAS/Public/QuartzUIGASConfig.h#L65)
FQuartzUIGASAbilityMapping
Public type. GASAbility Mapping: a declared type in optional aliases, mappings, discovery mode and action permissions; use its exact fields/operations below.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUIGASConfig recipe in the host module QuartzUIGAS.
Minimal example / lifecycle: Create config only for custom aliases/permissions; validate mappings. Durable primary data asset; scope consumes a validated configuration.
Avoid: Expecting mappings to load an ASC or allowing duplicate/invalid IDs. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIGAS/Public/QuartzUIGASConfig.h#L81)
FQuartzUIGASStatusEffectMapping
Public type. GASStatus Effect Mapping: a declared type in optional aliases, mappings, discovery mode and action permissions; use its exact fields/operations below.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUIGASConfig recipe in the host module QuartzUIGAS.
Minimal example / lifecycle: Create config only for custom aliases/permissions; validate mappings. Durable primary data asset; scope consumes a validated configuration.
Avoid: Expecting mappings to load an ASC or allowing duplicate/invalid IDs. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIGAS/Public/QuartzUIGASConfig.h#L108)
UQuartzUIGASConfig
Public type. Optional aliases and policy overrides for automatic GAS discovery. A project does not need this asset to expose its exact local player's GAS state. When automatic discovery is enabled, matching entries rename discovered DTO IDs; ability entries can also opt into ExplicitMappings browser-action policy. Setting automatic discovery off preserves the bounded legacy allowlist behavior.
Prerequisites / integration: Exact-player view plus native asset/source ownership; GAS additionally requires GameplayAbilities. Use the QuartzUIGASConfig recipe in the host module QuartzUIGAS.
Minimal example / lifecycle: Create config only for custom aliases/permissions; validate mappings. Durable primary data asset; scope consumes a validated configuration.
Avoid: Expecting mappings to load an ASC or allowing duplicate/invalid IDs. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.
Exact source line (source: Source/QuartzUIGAS/Public/QuartzUIGASConfig.h#L129)
Complete header
Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.
#pragma once
#include "AttributeSet.h"
#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "GameplayTagContainer.h"
#include "QuartzUIGASConfig.generated.h"
class UGameplayAbility;
class UGameplayEffect;
/** Browser authority policy. Observation never implies permission to mutate gameplay. */
UENUM(BlueprintType)
enum class EQuartzUIGASBrowserAbilityActionPolicy : uint8
{
/** The browser can observe abilities but cannot activate or cancel them. */
Disabled,
/** Only legacy/override mappings with the matching permission flag are actionable. */
ExplicitMappings,
/** Every currently granted ability is addressable after the generic runtime checks pass. */
AllDiscovered
};
USTRUCT(BlueprintType)
struct QUARTZUIGAS_API FQuartzUIGASAttributeMapping
{
GENERATED_BODY()
/** Optional stable project-facing alias for the reflected attribute identity. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FName Id;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FGameplayAttribute Attribute;
};
USTRUCT(BlueprintType)
struct QUARTZUIGAS_API FQuartzUIGASTagMapping
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FName Id;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FGameplayTag Tag;
};
USTRUCT(BlueprintType)
struct QUARTZUIGAS_API FQuartzUIGASFailureReasonMapping
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FName Id;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FGameplayTag Tag;
};
USTRUCT(BlueprintType)
struct QUARTZUIGAS_API FQuartzUIGASAbilityCostMapping
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FName Id;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FGameplayAttribute Attribute;
/** Positive amount required by this project's presentation mapping. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS", meta = (ClampMin = "0"))
float RequiredValue = 0.0f;
};
USTRUCT(BlueprintType)
struct QUARTZUIGAS_API FQuartzUIGASAbilityMapping
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FName Id;
/** Exact granted class to match without synchronously loading a GameFeature. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
TSoftClassPtr<UGameplayAbility> AbilityClass;
/** Optional exact dynamic source tag for projects granting the same class more than once. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FGameplayTag SpecSourceTag;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
bool bAllowBrowserActivation = false;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
bool bAllowBrowserCancellation = false;
/** Optional quantified costs; custom GAS costs still contribute to Affordable. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
TArray<FQuartzUIGASAbilityCostMapping> Costs;
};
USTRUCT(BlueprintType)
struct QUARTZUIGAS_API FQuartzUIGASStatusEffectMapping
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
FName Id;
/** Exact active effect class selector; output remains immutable data only. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
TSoftClassPtr<UGameplayEffect> EffectClass;
};
/**
* Optional aliases and policy overrides for automatic GAS discovery.
*
* A project does not need this asset to expose its exact local player's GAS state.
* When automatic discovery is enabled, matching entries rename discovered DTO IDs;
* ability entries can also opt into ExplicitMappings browser-action policy. Setting
* automatic discovery off preserves the bounded legacy allowlist behavior.
*/
UCLASS(BlueprintType, Blueprintable)
class QUARTZUIGAS_API UQuartzUIGASConfig : public UPrimaryDataAsset
{
GENERATED_BODY()
public:
static constexpr int32 MaxAttributes = 64;
static constexpr int32 MaxTags = 128;
static constexpr int32 MaxAbilities = 64;
static constexpr int32 MaxStatusEffects = 64;
static constexpr int32 MaxFailureReasons = 64;
static constexpr int32 MaxCostsPerAbility = 16;
/** Discover spawned AttributeSets, owned tags, granted specs, and active effects. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
bool bUseAutomaticDiscovery = true;
/** Optional attribute aliases, or the complete list when automatic discovery is off. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
TArray<FQuartzUIGASAttributeMapping> Attributes;
/** Optional tag aliases/zero-count observations, or the legacy explicit list. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
TArray<FQuartzUIGASTagMapping> Tags;
/** Optional ability aliases/action permissions, or the legacy explicit list. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
TArray<FQuartzUIGASAbilityMapping> Abilities;
/** Optional effect aliases, or the legacy explicit list. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
TArray<FQuartzUIGASStatusEffectMapping> StatusEffects;
/** Optional failure-tag aliases. Unmapped failures use their gameplay-tag names. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "QuartzUI|GAS")
TArray<FQuartzUIGASFailureReasonMapping> FailureReasons;
/** Strict bounds, IDs, duplicate mappings, attributes, tags, and soft classes. */
UFUNCTION(BlueprintPure, Category = "QuartzUI|GAS")
bool IsValidConfig(FName& OutError) const;
};