Quick Start

This guide walks you through the complete workflow of using the QuickUI UE5 Plugin together with the QuickUIDesign template to build interactive UE5 interfaces with React.


Workflow Overview

UE5 Editor (QuickUI Plugin)

        ├── 1. Install QuickUI Plugin → Enable in UE5 Project

        ├── 2. Clone QuickUIDesign from GitHub → npm install

        ├── 3. Development: npm run dev → Load http://localhost:3000 in UE5

        ├── 4. Build UI: npm run build → npm run merge-html

        └── 5. Deploy: Load the merged HTML in UE5 Web Browser Widget

Step 1: Install the QuickUI Plugin in UE5

Download the Plugin

Download the QuickUI plugin package for your UE5 version from QuickUI Plugin on Fab.com.

Install to UE5 Project

Download the plugin from the marketplace, which will automatically copy the plugin folder to the Plugins/ directory of your UE5 project.

If you need to install the QuickUI plugin in a different plugin directory, copy the QuickUI plugin folder to the Plugins/ directory of your UE5 project:

YourProject/
├── Plugins/
│   └── QuickUI/          # QuickUI plugin files
├── Content/
├── Source/
└── YourProject.uproject

Enable the Plugin

  1. Open your UE5 project
  2. Go to Edit → Plugins
  3. Search for "QuickUI"
  4. Check the Enabled checkbox
  5. Restart the UE5 editor when prompted

Add QuickUI Widget

In the UMG blueprint, you should be able to see the QuickUI widget. Add it to the UMG and ensure it is mounted using a Canvas component, filling the entire UMG area:

UE5 UMG 控件UE5 UMG 控件

Blueprint Configuration

A complete QuickUI blueprint configuration workflow is shown below:

UE5 UMG Widget

In the UMG blueprint, configuring QuickUI mainly involves three steps:

    1. Load QuickUI File:
    • In development mode, load the development URL address,
    • In production mode, load the production HTML address.
UE5 UMG Widget
    1. QuickUI Event Registration and Binding:
    • Custom event registration and binding, Event Name is the event name (needs to match the event name in the React component).
      The image below shows a complete binding workflow (register -> bind -> callback):
UE5 UMG Widget

The Event1 registered in the image, if it matches Event1 in the React component, then UE5 as the backend will receive the event parameters from the React component.

  • Mouse event registration and binding, such as MouseDown, MouseUp, MouseWheel.
UE5 UMG WidgetUE5 UMG Widget

Note: MouseDown, MouseUp, and MouseWheel events are independent and need to be registered and bound separately.

    1. Callback Function Configuration
    • Use the Callback component to configure event callback functions, returning the UE5 processing results to QuickUI.
    • Payload is the parameter passed when the event is triggered, in JSON string format.
    • Fn Name is the function executed when the event is triggered, used to handle event logic, and needs to match the event name in the React component. The image below shows a complete callback function blueprint workflow (event trigger -> callback function execution):
UE5 UMG Widget

Note: Payload must be passed in JSON string format, otherwise the QuickUI frontend will fail to parse.


Step 2: Set Up QuickUIDesign

Install Node.js Runtime

QuickUIDesign is built on the Node.js ecosystem. You need to install Node.js (which includes the npm package manager) first.

Download & Install Node.js Runtime

  1. Visit the Node.js official website and download the LTS (Long Term Support) version (18+ or higher)
  2. Choose the installer matching your operating system (.msi for Windows, .pkg for macOS)
  3. Run the installer and follow the default setup

Windows users: Restart your system after installation to ensure Node.js and npm are properly registered in the system PATH environment variable.

Verify Installation Node.js Runtime and npm

Open a terminal and run the following commands to confirm the installation:

# Check Node.js version (must be ≥ 18)
node -v

# Check npm version (must be ≥ 9)
npm -v

Expected output (version numbers may vary):

v18.20.4
10.8.1

The version just needs to meet or exceed the minimum requirements above.

Optional: Configure npm Mirror (for China region)

If you are located in mainland China, consider configuring the Taobao mirror for faster downloads:

# Set the Taobao mirror registry
npm config set registry https://registry.npmmirror.com

# Verify the configuration
npm config get registry

Update npm (if needed)

If the npm version that came with Node.js is lower than 9, you can update it manually:

npm install -g npm@latest

Clone from GitHub

Option 1: Clone the QuickUIDesign repository from GitHub to your local machine:

Open a terminal and run the following commands to clone the QuickUIDesign project:

# Clone the project
git clone https://github.com/playertk/QuickUIDesign.git my-ui-project

# Enter the project directory
cd my-ui-project

# Install dependencies
npm install

If you don't have Git installed, please download it from the Git official website.

Option 2: Download QuickUIDesign from GitHub to your local machine:

QuickUIDesign Zip

Extract the master.zip file:

# Enter the extracted directory
cd master
#Install the dependencies:
npm install

Project Structure

After installation, your project should look like this:

my-ui-project/
├── src/
│   ├── assets/           # Static assets (images, etc.)
│   ├── components/       # React components
│   ├── lib/              # Utility functions
│   ├── pages/            # Page components
│   ├── styles/           # CSS/Tailwind styles
│   └── types/            # TypeScript declarations
├── ue-connect/           # UE5 connector module
├── assets-tool/          # Build helper tools
├── package.json
├── rspack.config.js      # Rspack bundler config
└── tsconfig.json

Step 3: Development Workflow

Start the Dev Server

npm run dev

This starts a development server with Hot Module Replacement on http://localhost:3000.

Load in UE5

  1. Open your UE5 project with the QuickUI plugin enabled
  2. Create or open a Level Blueprint (or Widget Blueprint)
  3. Use the LoadURL node to load http://localhost:3000
  4. Run the game (Play)
UE5 Development Mode

Debug with DevTools

While the game is running:

  1. Press Ctrl + Shift + I to open the browser DevTools console
  2. In the console, type window.ue to verify the UE5 communication object exists
  3. Check for connection status and event logs
QuickUI DevTools

Hot Reload

Any changes you make to the source code will be automatically reflected in UE5 without restarting the game — thanks to Rspack's HMR (Hot Module Replacement).


Step 4: Building for Production

When your UI is ready, build it into an optimized single HTML file:

# Step 1: Build with Rspack
npm run build

# Step 2: Merge all assets into a single HTML file
npm run merge-html

The output will be in dist/merged/index.html — a fully self-contained HTML file with all JS, CSS, and images inlined.

Build Output Explanation

StepCommandOutputDescription
Buildnpm run builddist/Rspack bundles JS/CSS with SWC minification
Mergenpm run merge-htmldist/merged/index.htmlInlines all external resources into one HTML

Step 5: Deploy in UE5

Load the Built HTML

  1. Use the QuickUI Web browser widget in your UE5 project
  2. Point to the build artifact dist/merged/index.html
  3. Copy the build artifact to the Content/html/ directory of your UE5 project (this is for illustration; adjust according to your actual project needs)
  4. In the UE5 menu bar, add Content/html/ in Edit → ProjectSettings → Packaging → Advanced → Additional Non-Asset Directories to Package (red box)
  5. In Packaging → Advanced → Additional Non-Asset Directories to Copy, add Content/html/{Your-MediaFolder}/ if non-inline resources are needed (yellow box)
UE5 Packaging Configuration

Complete Communication Architecture

┌─────────────────────┐          ┌──────────────────────┐
│   Web UI (React)    │          │   UE5 (Blueprint)    │
│                     │          │                      │
│  useQuickUIEvent    │ ──────►  │  QuickUIListenEvent   │
│  Sender('event')    │   send   │                      │
│                     │          │                      │
│  useQuickUIEvent    │ ◄────── │  QuickUIEventCallBack │
│  Listener('event')  │  listen  │                      │
│                     │          │                      │
│  useUEContext()     │ ◄────── │  Connection State     │
│  (isConnected...)   │          │                      │
└─────────────────────┘          └──────────────────────┘

Video Tutorial

Next Steps

  • QuickUIDesign — Detailed template structure and customization
  • UE-Connect — Complete API reference for UE5 communication hooks
  • FAQ — Common issues and solutions