Quartz UI ↗
Browse docs
On this page
Private preview · 0.57.0-devView Markdown

QuartzUIEditorSettings: 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/QuartzUIEditor/Public/QuartzUIEditorSettings.h) · integration recipe · practical guide

UQuartzUIEditorSettings

Editor type. Per-project editor preferences. Remote debugging is never enabled by this module in packaged games.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIEditorSettings recipe in the host module QuartzUIEditor.

Minimal example / lifecycle: Configure Editor Preferences then restart for DevTools changes. Editor user settings only.

Avoid: Assuming legacy default frontend root matches the host. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIEditor/Public/QuartzUIEditorSettings.h#L9)

Complete header

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

#pragma once

#include "Engine/DeveloperSettings.h"

#include "QuartzUIEditorSettings.generated.h"

/** Per-project editor preferences. Remote debugging is never enabled by this module in packaged games. */
UCLASS(Config = EditorPerProjectUserSettings, DefaultConfig, meta = (DisplayName = "QuartzUI"))
class QUARTZUIEDITOR_API UQuartzUIEditorSettings final : public UDeveloperSettings
{
	GENERATED_BODY()

public:
	virtual FName GetContainerName() const override { return TEXT("Editor"); }
	virtual FName GetCategoryName() const override { return TEXT("Plugins"); }
	virtual FName GetSectionName() const override { return TEXT("QuartzUI"); }

	/** Adds -cefdebug before Epic's CEF singleton starts, enabling the Tools menu without a manual launch flag. */
	UPROPERTY(Config, EditAnywhere, Category = "Development", meta = (DisplayName = "Automatically Enable Chromium DevTools"))
	bool bAutoEnableRemoteDevTools = true;

	/** Loopback Chromium debugging port used only by Editor builds. */
	UPROPERTY(Config, EditAnywhere, Category = "Development", meta = (ClampMin = "1024", ClampMax = "65535"))
	int32 DevToolsPort = 9222;

	/** Frontend root for Tools > Quartz UI > Development Server > Start Vite Dev Server. Supports $(ProjectDir) and $(PluginDir). */
	UPROPERTY(Config, EditAnywhere, Category = "Development Server", meta = (DisplayName = "Frontend Root Directory"))
	FString FrontendRootDirectory = TEXT("$(PluginDir)/../../Frontend");

	/** Node executable basename from PATH, or an absolute node/node.exe path. Arbitrary commands are rejected. */
	UPROPERTY(Config, EditAnywhere, Category = "Development Server", meta = (DisplayName = "Node Executable"))
	FString NodeExecutable = TEXT("node");

	/** Packaged app ID redirected to Vite only while the Editor-owned process is active. */
	UPROPERTY(Config, EditAnywhere, Category = "Development Server", meta = (DisplayName = "Development App ID"))
	FName DevelopmentAppId = TEXT("mvp");

	/** Fixed IPv4 loopback port. Vite uses strictPort and will not silently select another origin. */
	UPROPERTY(Config, EditAnywhere, Category = "Development Server", meta = (ClampMin = "1024", ClampMax = "65535"))
	int32 VitePort = 5173;

	/** Optional relative startup page. Empty opens the Vite root. */
	UPROPERTY(Config, EditAnywhere, Category = "Development Server", meta = (DisplayName = "Development Entry Path"))
	FString DevelopmentEntryPath;

	/** Project-relative output used by Tools > Quartz UI > Advanced > Generate TypeScript Contract. */
	UPROPERTY(Config, EditAnywhere, Category = "Contracts", meta = (DisplayName = "TypeScript Contract Output"))
	FString TypeScriptContractOutput = TEXT("QuartzUI/Generated/quartzui.contract.ts");
};