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

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

## EQuartzUIValidationTarget

**Advanced type.** Validation strictness shared by details UI, commandlets, automation, and cook hooks.

**Prerequisites / integration:** Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the [QuartzUIProjectValidation recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiprojectvalidation) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Run QuartzUIValidate; inspect Code/Field/Correction per issue. Pure validation over current settings/assets.

**Avoid:** Ignoring individual errors because files exist. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProjectValidation.h#L13`)

## FQuartzUIValidationIssue

**Advanced type.** One deterministic, actionable configuration failure.

**Prerequisites / integration:** Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the [QuartzUIProjectValidation recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiprojectvalidation) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Run QuartzUIValidate; inspect Code/Field/Correction per issue. Pure validation over current settings/assets.

**Avoid:** Ignoring individual errors because files exist. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

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

## FQuartzUIProjectValidationOptions

**Advanced type.** Project Validation Options: a declared type in settings validation, target strictness and actionable issue records; use its exact fields/operations below.

**Prerequisites / integration:** Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the [QuartzUIProjectValidation recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiprojectvalidation) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Run QuartzUIValidate; inspect Code/Field/Correction per issue. Pure validation over current settings/assets.

**Avoid:** Ignoring individual errors because files exist. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProjectValidation.h#L52`)

## FQuartzUIProjectValidationService

**Advanced type.** Single pure policy surface shared by every project-settings entry point.

**Prerequisites / integration:** Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the [QuartzUIProjectValidation recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiprojectvalidation) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Run QuartzUIValidate; inspect Code/Field/Correction per issue. Pure validation over current settings/assets.

**Avoid:** Ignoring individual errors because files exist. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProjectValidation.h#L59`)

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

class UQuartzUIAppAsset;
class UQuartzUIProjectSettings;
struct FQuartzUIAppDefinition;

/** Validation strictness shared by details UI, commandlets, automation, and cook hooks. */
UENUM(BlueprintType)
enum class EQuartzUIValidationTarget : uint8
{
	Editor,
	CommandLine,
	Development,
	Shipping
};

/** One deterministic, actionable configuration failure. */
USTRUCT(BlueprintType)
struct QUARTZUIRUNTIME_API FQuartzUIValidationIssue
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Code;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FName AppId;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Field;

	/** Bounded path, endpoint, or value that violated policy. */
	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString OffendingValue;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Policy;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Message;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Correction;

	FString ToString() const;
};

struct QUARTZUIRUNTIME_API FQuartzUIProjectValidationOptions
{
	EQuartzUIValidationTarget Target = EQuartzUIValidationTarget::Editor;
	bool bCheckAppFiles = true;
};

/** Single pure policy surface shared by every project-settings entry point. */
class QUARTZUIRUNTIME_API FQuartzUIProjectValidationService final
{
public:
	static bool ValidateProjectSettings(
		const UQuartzUIProjectSettings& Settings,
		const FQuartzUIProjectValidationOptions& Options,
		TArray<FQuartzUIValidationIssue>& OutIssues);

	/** Applies project defaults only where the app has not declared an override. */
	static bool TryResolveAppDefinition(
		const UQuartzUIProjectSettings& Settings,
		const UQuartzUIAppAsset* App,
		FQuartzUIAppDefinition& OutDefinition,
		FString& OutError);

	static const TCHAR* GetTargetName(EQuartzUIValidationTarget Target);
};
```

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