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

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

## FQuartzUIResourceRequest

**Advanced type.** Browser-independent request seam used by policy automation and adapters.

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

**Minimal example / lifecycle:** FQuartzUIResourceScheme::MakeUrl("gameui", "index.html"). Process-immutable roots; Cancel releases response body.

**Avoid:** Assuming tested range seam means stock CEF forwards Range headers. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIResourceScheme.h#L10`)

## FQuartzUIResourceResponse

**Advanced type.** Backend-independent result used by the packaged-resource origin and its tests.

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

**Minimal example / lifecycle:** FQuartzUIResourceScheme::MakeUrl("gameui", "index.html"). Process-immutable roots; Cancel releases response body.

**Avoid:** Assuming tested range seam means stock CEF forwards Range headers. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIResourceScheme.h#L20`)

## FQuartzUIResourceBodyStream

**Advanced type.** Thread-safe bounded body stream shared by the CEF adapter and automation.

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

**Minimal example / lifecycle:** FQuartzUIResourceScheme::MakeUrl("gameui", "index.html"). Process-immutable roots; Cancel releases response body.

**Avoid:** Assuming tested range seam means stock CEF forwards Range headers. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIResourceScheme.h#L31`)

## FQuartzUIResourceScheme

**Advanced type.** Secure project-owned and plugin-fixture resources exposed through intercepted HTTPS origins.

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

**Minimal example / lifecycle:** FQuartzUIResourceScheme::MakeUrl("gameui", "index.html"). Process-immutable roots; Cancel releases response body.

**Avoid:** Assuming tested range seam means stock CEF forwards Range headers. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIResourceScheme.h#L48`)

## 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"

class IWebBrowserSingleton;
struct FQuartzUIAppDefinition;
class UQuartzUIProjectSettings;

/** Browser-independent request seam used by policy automation and adapters. */
struct QUARTZUIRUNTIME_API FQuartzUIResourceRequest
{
	FString Verb = TEXT("GET");
	FString Url;

	/** Optional RFC 7233 single byte range, for example bytes=0-1023. */
	FString RangeHeader;
};

/** Backend-independent result used by the packaged-resource origin and its tests. */
struct QUARTZUIRUNTIME_API FQuartzUIResourceResponse
{
	int32 StatusCode = 500;
	FString MimeType = TEXT("text/plain");
	FString DiagnosticCode = TEXT("quartzui.resource.internal-error");
	TMap<FString, FString> Headers;
	TArray<uint8> Body;
	int32 ContentLength = 0;
};

/** Thread-safe bounded body stream shared by the CEF adapter and automation. */
class QUARTZUIRUNTIME_API FQuartzUIResourceBodyStream final
{
public:
	void Reset(TArray<uint8>&& InBody);
	bool Read(uint8* OutBytes, int32 BytesToRead, int32& OutBytesRead);
	void Cancel();
	bool IsCanceled() const;
	int32 GetRemainingBytes() const;

private:
	mutable FCriticalSection Mutex;
	TArray<uint8> Body;
	int32 ReadOffset = 0;
	bool bCanceled = false;
};

/** Secure project-owned and plugin-fixture resources exposed through intercepted HTTPS origins. */
class QUARTZUIRUNTIME_API FQuartzUIResourceScheme
{
public:
	static constexpr const TCHAR* Scheme = TEXT("https");
	static constexpr const TCHAR* OriginSuffix = TEXT(".quartzui.test");
	static constexpr const TCHAR* MvpAppId = TEXT("mvp");
	static constexpr const TCHAR* MvpHost = TEXT("mvp.quartzui.test");

	static FString MakeOrigin(const FString& AppId);
	static FString MakeUrl(const FString& AppId, const FString& RelativePath);
	static FString GetMimeType(const FString& RelativePath);

	/** Registers one bounded immutable app origin, owner, root, and entry. */
	static bool RegisterPackagedApp(const FQuartzUIAppDefinition& Definition, FString& OutError);

	/** Validates and registers the default, additional, and loading project apps. */
	static bool RegisterConfiguredProjectApps(FString& OutError);
	static bool RegisterConfiguredProjectApps(
		const UQuartzUIProjectSettings& Settings,
		FString& OutError);

	/** True only for a URL at an exact currently registered packaged-app origin. */
	static bool IsPackagedUrl(const FString& Url);

	/** Resolves a request without browser dependencies so policy is automation-testable. */
	static bool ResolveRequest(const FString& Verb, const FString& Url, FQuartzUIResourceResponse& OutResponse);
	static bool ResolveRequest(const FQuartzUIResourceRequest& Request, FQuartzUIResourceResponse& OutResponse);

	/**
	 * Installs every retained app root into an initialized Epic browser backend.
	 * A fresh Epic singleton rejects scheme factories until its first browser
	 * window initializes CEF, so callers may use a quiet probe before performing
	 * that one-time bootstrap.
	 */
	static bool EnsureRegistered(
		IWebBrowserSingleton& BrowserSingleton,
		bool bLogFailures = true);

	/** Unregisters the factory before Unreal tears down the browser module. */
	static void Shutdown();
};
```

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