Phoenix Tools - Questwright - Quest & Dialogue Compiler for MetaHumans

WRITE YOUR QUEST AS A TEXT FILE. PRESS ONE BUTTON. PLAY A FULLY VOICED, LIP-SYNCED SCENE.

GET HELP WITH QUESTWRIGHT:

VIDEO GUIDE

WRITTEN DOCUMENTATION

TRY QUESTWRIGHT BEFORE YOU BUY:

QUESTWRIGHT PLAYABLE DEMO

Questwright is a quest compiler for UE5. You describe a quest the way writers actually work: as a readable script file. One build turns it into everything the scene needs: synthesized voice-over, lip-sync facial animation baked from that audio, character blocking, cinematic camera cuts, objectives and journal entries. No node graphs to wire, no mocap, no importing audio line by line.

HOW IT WORKS (FIRST SCENE IN ABOUT 1 MINUTES)

1. Open Tools → Quest Studio and press Global Setup. One click wires your Player pawn and PlayerController.

2. In the Cast tab, pick a character Blueprint for each speaker. A health-check column shows anything missing, and a Blueprint fresh out of MetaHuman assembly is set up end-to-end by the Auto-setup button.

3. Press RUN in the Build tab. The pipeline compiles the quest (parse, validate, voice-over, facial animation, asset generation, bind & stage) with a live stage tracker. Every pre-flight error has a "Fix →" shortcut.

4. Press Play and talk to your NPC.

FROM SCRIPT TO SCENE

• Voice-over is synthesized per line: a free local TTS server with one-click setup, ElevenLabs with your key, or your own recorded WAV files. Voices are assigned per speaker and per language.

• Lip-sync is baked from the generated audio via MetaHuman Animator. No performance capture, no iPhone rig, no per-line animation work. Mood comes from the line's emotion tag.

• At runtime the face is layered in code on any MetaHuman: lip-sync, procedural blinking, additive emotion, eye gaze, then the character's own RigLogic. Head-turn toward the current speaker is applied without touching your Animation Blueprints.

• Characters are staged automatically: placement marks, walk-ins, mid-dialogue movement and speaker-aware camera cuts, plus your own custom camera marks when you want full directorial control.

• Builds are idempotent. Already-voiced lines are skipped, changed lines are re-baked, and assets of deleted lines are pruned.

THE QUEST STUDIO

One dockable window drives the whole pipeline:

• Library: every quest file in your project with live status (valid, changed since last build, errors). Drag quests into story chains.

• Quest tab: a full visual constructor for scenes, lines, choices, emotions, shots, steps, objectives, conditions, effects, rewards and barks. Everything it writes is plain text, so hand-editing the file is always equivalent.

• Staging canvas: place characters and cameras top-down, rotate them, add walk-in spawns and waypoints, preview camera frustums. Put the cursor on a dialogue line to see who stands where at that moment.

• Voice tab: pick providers, assign voices, audition a single line or batch-synthesize.

• Build tab: pre-flight checklist, language selection, RUN, stage tracker, Play (PIE).

WRITE IT YOUR WAY: GUI, TEXT, OR AI

A quest is one human-readable .quest.yaml file, and the file is the source of truth. Your quests diff, merge and code-review like source code, live in version control next to your game, and survive any editor session. Prefer clicking? The Quest tab edits everything in place and you never open the file. Prefer generating? The authoring guide is written to be pasted into ChatGPT or Claude together with your premise; the built-in validator catches anything out of contract, with jump-to-source on every finding.

SHIP IN EVERY LANGUAGE

Author in one source language, add languages in the Localization tab, machine-translate missing lines in-editor (Claude or OpenAI, your key, results marked for review) or hand-fill simple CSV sidecars. Each language gets its own text, voice-over and lip-sync animation. Per-culture assets are swapped by the engine's own localization system in packaged builds.

QUESTS THAT PLUG INTO YOUR GAME

• Event-driven objectives: when something quest-relevant happens in your game, a kill or a pickup, you make one call (ReportObjectiveEvent) and every matching objective updates. Tag matching is hierarchical; crediting is idempotent and server-authoritative.

• Journal, on-screen tracker and state toasts out of the box: add one component to your PlayerController. All widgets are code-built and replaceable with your own subclasses.

• No lock-in: inventory, stats, saving, voice, facial animation and smart objects are provider interfaces with working defaults, so Questwright talks to YOUR systems instead of forcing its own.

• Quest state can be projected onto GameplayTags for ability and condition gating.

• Branching via flags and conditions, quest chains as plain data, dynamic text tokens like {PlayerName}, all localization-safe.

MULTIPLAYER & SAVING

Server-authoritative networking out of the box: quest progress is a per-player fact, replicated owner-only; client calls route through server RPCs automatically; nothing presentational ever runs on a dedicated server. Saving needs zero code in single player (autosave/autoload with tunable policy), isolates per-player slots in listen-server co-op, and exposes one C++ interface (sync or async) if you want to plug in a database or REST backend on dedicated servers.

WHAT'S IN THE BOX

• Full C++ source: 2 runtime modules (core + UI) and 4 editor modules (compiler, MetaHuman pipeline, TTS/translation providers, Quest Studio).

• A complete demo quest with branching dialogue, staging, objectives and localization. Delete it any time; the plugin folder stays clean and all generated content lives in your project's /Game/Questwright/ folder.

• The full quest format reference (which doubles as an AI-authoring prompt) and a user guide covering setup, the Studio, runtime integration and troubleshooting.

• Works with Blueprint-only projects. C++ is needed only for a custom save backend.

REQUIREMENTS

• Unreal Engine 5.6 – 5.8. Windows editor tooling.

• Lip-sync baking uses MetaHuman Animator and requires DX12. Everything else (dialogue, quests, journal, staging, cameras) works with any skeletal-mesh character; without the MetaHuman pipeline you simply get no baked lip-sync. The build degrades gracefully and never breaks.

• Voice synthesis and machine translation use your own services: the local TTS server is free, ElevenLabs/Claude/OpenAI use your keys. Nothing is bundled, nothing phones home, and the plugin works fully offline with your own WAV files.

• Per-culture voice/face asset swapping is applied by the engine in packaged builds; in PIE you hear the source language. Text localization works everywhere.

SUPPORT & DOCS

• Documentation: https://phoenixtools.dev

• Support: support@phoenixtools.dev

Full video walkthrough: Questwright for UE5 — Getting Started (YouTube, Phoenix Tools)