Open Quest Format
An open standard for game quests: define a quest once as plain files, and take it to any engine.
Creator
No engine owns your content
Pick a quest plugin and you have picked a wall. The Unity asset works in Unity, the Unreal data table works in Unreal, and switching engines or losing a maintainer traps your quests in somebody else’s format. Open Quest Format (OQF) is a published spec rather than a plugin: Apache 2.0 licensed, versioned, with a reference parser, validator and runtime that anyone can implement.
Quests become plain files in your repo. Diffable in git, readable without an editor, and portable to any engine that has a loader.
What it models
- Steps in a graph, each with data-driven unlock, complete and fail transitions
- Objectives as world events: an enemy killed, an item collected, a place reached
- Conditions in a small, non-Turing-complete language, so tooling can prove a quest is completable
- Rewards per step and per ending, multiple named outcomes, and runtime state as a small versioned document
- Dialogue as a sibling model, with Ink and Yarn Spinner import and export
Compact on purpose
The native format is line-oriented and interned: repeated actors, locations and items are declared once and referenced by index, with no closing braces or repeated keys. It streams in one pass, reads cleanly in a diff, and costs a fraction of the tokens the equivalent JSON would when a questline goes to a model. JSON stays a first-class output with a published schema.
Stack
TypeScript monorepo on pnpm workspaces, Node 24+, ESM only, tested with Vitest. Packages cover the core model and validator, an engine-agnostic runtime, dialogue, i18n, a CLI, and a React web editor (npx @oqf/editor). Version 0.1.0 with the format frozen at OQF1. Engine exporters for Godot, Unity and Unreal are planned for v1.5, and Cozy Coast is lined up as the first game to ship on it.