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

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

## FQuartzUIEditorDevServerLaunch

**Editor type.** Editor Dev Server Launch: a declared type in validated project-local vite process and redirect lifetime; use its exact fields/operations below.

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

**Minimal example / lifecycle:** Set project frontend root then Start/Stop Vite Dev Server. Editor owns and stops only its launched process tree.

**Avoid:** Installing dependencies implicitly or silently changing ports. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIEditor/Public/QuartzUIEditorDevServer.h#L6`)

## FQuartzUIEditorDevServerPolicy

**Internal type.** Validates the fixed Node + project-local Vite command assembled by the Editor.

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

**Minimal example / lifecycle:** Set project frontend root then Start/Stop Vite Dev Server. Editor owns and stops only its launched process tree.

**Avoid:** Installing dependencies implicitly or silently changing ports. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: `Source/QuartzUIEditor/Public/QuartzUIEditorDevServer.h#L15`)

## FQuartzUIEditorDevServer

**Editor type.** Owns exactly one child process and never searches for or kills unrelated processes.

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

**Minimal example / lifecycle:** Set project frontend root then Start/Stop Vite Dev Server. Editor owns and stops only its launched process tree.

**Avoid:** Installing dependencies implicitly or silently changing ports. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIEditor/Public/QuartzUIEditorDevServer.h#L33`)

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

struct QUARTZUIEDITOR_API FQuartzUIEditorDevServerLaunch
{
	FString Executable;
	FString Parameters;
	FString WorkingDirectory;
	FQuartzUIDevelopmentEndpoint Endpoint;
};

/** Validates the fixed Node + project-local Vite command assembled by the Editor. */
class QUARTZUIEDITOR_API FQuartzUIEditorDevServerPolicy final
{
public:
	static constexpr int32 MaxCapturedLineLength = 4096;

	static bool TryBuildLaunch(
		FName AppId,
		const FString& FrontendRoot,
		const FString& NodeExecutable,
		int32 Port,
		const FString& EntryPath,
		FQuartzUIEditorDevServerLaunch& OutLaunch,
		FString& OutError);
	/** Removes terminal escape/control sequences and applies the log allocation bound. */
	static FString SanitizeOutputLine(const FString& Line);
};

/** Owns exactly one child process and never searches for or kills unrelated processes. */
class QUARTZUIEDITOR_API FQuartzUIEditorDevServer final
{
public:
	FQuartzUIEditorDevServer();
	~FQuartzUIEditorDevServer();

	bool Start(const FQuartzUIEditorDevServerLaunch& Launch, FString& OutError);
	void Stop();
	void Refresh();
	bool IsRunning();
	FString GetUrl() const;

private:
	TUniquePtr<class FMonitoredProcess> Process;
	TOptional<FQuartzUIDevelopmentEndpoint> ActiveEndpoint;
};
```

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