Home
Embedded Techno

Game Design Document Studio — Version 0.5 (UE 5.4 - 5.8)

Game Design Document Studio keeps a game's world, story, systems, quests, dialogue, maps, timelines, characters, production notes, and supporting assets together inside Unreal Engine. Records use editable templates, searchable links, and shared tools so design work stays connected as the project grows.

Installation

  1. Close Unreal Editor.
  2. Copy the GameDesignDocumentStudio folder into your project's Plugins directory.
  3. Use the package built for your version of Unreal Engine 5.4 through 5.8.
  4. Open the project and verify that Game Design Document Studio is enabled in Edit > Plugins.
  5. Restart Unreal Editor if prompted.
Requirements: Win64 and a matching Unreal Engine package. The standalone plugin uses Unreal Engine APIs only and does not require another Marketplace plugin.

Opening the Studio

Open the studio from the Unreal Editor menu by selecting Tools > Game Design Document Studio. It opens as a dockable Slate tab. The project name appears beneath the product title and can be changed in Studio Settings.

New projects: The studio subtitle starts with the current Unreal project name. Change it to the game's working title whenever the design project needs a different name.

Quick Start

  1. Create the first record: Open a workspace and select New. Enter a name and choose a record type.
  2. Write the design: Fill in Domain Properties first, then open the sections needed for that record.
  3. Connect related work: Use searchable picker fields to link characters, locations, factions, quests, dialogue, assets, and other compatible records.
  4. Build the flow: Open Graph Editor for story, dialogue, quest, or relationship work that needs nodes and branches.
  5. Check the project: Select the checkmark in the top toolbar and open Validation to resolve any reported problems.
  6. Back it up: Use Export to write a portable GDDS project file.
Keep stable IDs stable: Other records can link to them. GDDS records redirects when an ID changes, but a clear and consistent naming scheme is still easier to maintain.

Interface

Main Areas

AreaPurpose
Top ToolbarCreates records, searches the project, imports and exports GDDS files, saves current work, and runs validation.
Workspace ListMoves between the dashboard, library, design categories, production tools, settings, and validation.
Record ListShows records in the active workspace. Search and filters narrow the list by title, ID, text, tags, speakers, conditions, assets, type, or classification.
Record EditorEdits record identity, status, authority, template fields, relationships, domain tools, and source information.
Status BarReports saves, imports, exports, validation results, navigation, and data-folder actions.

Editing Behavior

  • Text fields are saved when leaving the current record rather than while typing.
  • Changing a record type moves it to the matching workspace and assigns the correct built-in template.
  • Domain Properties opens by default. Other sections begin collapsed and remember their state while the studio remains open.
  • Source and Ownership stays at the bottom of the record and contains ownership, implementation status, source, and fingerprint information.
  • Record and canvas scroll positions are retained when a section or structured row changes.

Creating and Deleting Records

Selecting New opens a small creation window. The available record types are filtered to the active workspace. The name and selected type are used to create the correct stable ID and template before the editor opens. Records are not saved as Untitled.

Use the record's Delete action to remove it. GDDS saves a recovery copy and a deletion tombstone so a later reload does not restore the deleted row.

Records & Workspaces

WorkspaceUse It For
DashboardProject totals, unfinished work, validation issues, quick tips, and a clear starting point for a new design project.
Universal LibrarySearching and filtering every record in the project from one list.
Worldbuilding & LoreLore, cultures, metaphysics, terminology, setting rules, and other facts that define the world.
GlossaryProject terms, definitions, pronunciation, aliases, and notes about correct usage.
Locations & MapsPlaces, regions, biomes, settlements, territories, sampled maps, detailed captures, and linked markers.
Timelines & HistoryCalendars, days, months, seasons, eras, timeline tracks, historical periods, events, and story chronology.
Characters & FamilyIdentity, background, motives, goals, flaws, knowledge, relationships, family, voice, visuals, and game assets.
BestiaryCreatures, wildlife, monsters, species, habitat, behavior, encounters, rewards, mesh assets, animation sets, and audio profiles.
Factions & DiplomacyOrganizations, ranks, hierarchy, members, territory, allies, enemies, reputation, and diplomatic relationships.
Story StructurePlots, arcs, acts, sequences, beats, scenes, themes, turning points, dependencies, and outcomes.
Quest DesignQuest goals, requirements, objectives, branches, success, failure, rewards, conditions, actions, and follow-up quests or dialogue.
Conversation WriterConversations, participants, lines, player responses, branches, conditions, actions, results, End nodes, and voice links.
Dialogue & Quest SimulatorPlaying through authored dialogue and quest paths while watching choices, variables, conditions, and results.
Gameplay FeaturesRules, player experience, gameplay loops, tuning, progression, feedback, accessibility, dependencies, and testing plans.
Items & EquipmentItems, weapons, armor, consumables, equipment sets, resources, ownership, balance, presentation, and Unreal assets.
Abilities & EffectsCosts, targeting, cooldowns, durations, stacking, state changes, buffs, debuffs, presentation, and implementation assets.
State MachinesTyped variables, states, transitions, conditions, actions, execution context, ambient dialogue, and response pools.
Voice ProductionCasting notes, scripts, speakers, performance direction, recordings, localization, approval, and delivery status.
Visual DevelopmentVisual briefs, concepts, references, reviews, approved direction, and links to finished Unreal assets.
Template BuilderThe forms, sections, fields, defaults, picker rules, inheritance, and graph support used by project records.
Studio SettingsProject title, default calendar, recovery interval, map sampling resolution, runtime data, and the example project.
ValidationProblems involving IDs, fields, links, graphs, variables, dialogue, quests, templates, and production data.
One project, many views: A record appears in the workspace that owns its type, but it remains searchable from the Universal Library and available to compatible picker fields throughout the studio.

Template Builder

Every record type starts with a built-in template. The Template Builder can add project templates, duplicate an existing design, inherit from a parent, reorder sections and fields, set defaults, and preview the form before it is used. Existing and new records resolve the current template definition, so an added field appears wherever that template is assigned.

Template Library

  • Select a template to edit its display name, stable ID, base record type, parent, and relationship-graph support.
  • Use Design to edit the structure and Preview to inspect the resulting record form.
  • Duplicate a built-in or project template when a related record type needs different fields.
  • Archive project templates only after records have been reassigned. Built-in templates cannot be removed.
  • Use Undo and Redo for section and field changes.

Sections

Sections control the headings and grouping inside a record. Each section can define a name, stable ID, description, writing prompt, order, default expansion state, empty-section behavior, group, tab, and visibility rule. Inherited sections can be overridden without changing the parent template.

Fields

Field GroupAvailable Inputs
WritingShort text and long text.
Numbers & StateInteger, float, Boolean, percentage, limits, defaults, and validation rules.
ChoicesEnumeration, multi-select, tags, and reusable value lists.
DatesStandard dates and dates interpreted through the project's selected calendar.
Record LinksGeneral records, record lists, characters, locations, factions, quests, and dialogue.
Unreal AssetsContent Browser asset and image references.
PresentationColor and ordered value-list fields.

Field settings include the label, stable ID, input type, description, writing prompt, default, placeholder, required and read-only state, search behavior, backlinks, multiple values, allowed record types, allowed values, auto-creation, numeric limits, recommended length, validation, visibility, and section placement.

Use project templates for real differences: Create one when a group of records needs a distinct form, not simply because one record has an extra note. Individual records can add a field without changing the template.

Smart Pickers & Graphs

Smart Pickers

Picker fields open with the search box focused. Search by a title, stable ID, related record, nested identity, or other indexed text. GDDS filters the results to IDs accepted by that field. If a result is related to a compatible record, the picker can follow that relationship and return the compatible ID.

  • Press Enter to accept the selected result.
  • Fields that permit creation can create and link a compatible record without leaving the current editor.
  • Content fields use Unreal's Content Browser selectors rather than narrative-record pickers.
  • Reference fields contribute searchable backlinks when that option is enabled in the template.

Graph Editor

Graph-capable records open in a dedicated tab so the canvas has room to work. The same editor is used for story, dialogue, quests, and opt-in relationship graphs. Available controls include:

  • Create nodes from the toolbar or right-click menu.
  • Drag between compatible pins to make a connection.
  • Move nodes without resetting the current canvas view.
  • Drag across empty canvas space to select multiple nodes.
  • Move or delete the current selection as a group.
  • Right-click a node for actions such as Delete.
  • Pan and zoom without losing the saved view for that graph.

Flow Nodes

The shared graph supports Start, Line, Choice, Information Hub, Condition, Action, Objective, Branch, Parallel, Evidence, Reward, Success, Failure, Jump, and End nodes. Quest records use Start, Objective, Branch, Success, Failure, and End quest nodes. An End node marks the end of the current dialogue or quest; it may optionally point to the next record.

Playtest Simulator

The simulator follows dialogue and quest connections against an isolated set of variables. Selecting a response advances the test immediately. Reaching End stops the current flow and enables the next-record action when a follow-up dialogue or quest is assigned. Simulation does not change the project's runtime save data.

State Machines

State-machine records are built around executable states rather than a general note form. Use them for ambient dialogue, response pools, encounters, quest flow, world state, or another system that needs variables, transitions, and actions.

Execution Context

A machine can be assigned to a region, location, timeline, timeline event, and set of participants. Persistence settings determine whether its state belongs to the current session or must remain available to gameplay.

Variables

Variables are not limited to true or false. Supported values include Boolean, integer, float, string, name, Gameplay Tag, narrative ID, object path, percentage, duration, and date-time. Scope can be global, player, character, relationship, reputation, quest, or dialogue session.

States and Transitions

  • States have entry conditions, entry actions, exit actions, and an optional dialogue pool.
  • Transitions name their source and destination, priority, conditions, actions, and fallback behavior.
  • Selection can use First Valid, Priority, Weighted Random, Shuffle Bag, or Sequential order.
  • Actions can emit an event, set or clear a variable, or increment a value.

Dialogue Pools

Each dialogue row contains the exact line, active state, speaker, optional voice-line record, performance direction, weight, cooldown, one-shot behavior, conditions, and resulting actions. This keeps regional barks, time-of-day dialogue, quest reactions, combat responses, and similar pools in one editable list.

Example: An ambient pool can require a location, nighttime state, completed quest, or defeated enemy before a line becomes eligible. The chosen line can then change another variable or begin a cooldown.

Locations & Maps

World Overview

  1. Create or open a Map record in Locations & Maps.
  2. Select Sample Full Landscape to capture the loaded landscape heightfield and exact world bounds.
  3. Pan with right-drag and zoom with the mouse wheel.
  4. Adjust overview sampling resolution in Studio Settings when the first pass needs more or less detail.

Detailed Region Capture

  1. Create a world overview first.
  2. Select Capture Detailed Region.
  3. Drag over the area that needs a closer map.
  4. GDDS resamples that region at the detail resolution and records terrain plus the topmost blocking world object at each cell.

Every capture records its type, resolution, world bounds, sample spacing, level, and distinct actor count. The map legend separates sampled terrain, collision-bearing surfaces, and areas outside landscape coverage.

Map Markers

Add markers directly to the map, assign a layer, and link each marker to a Location record. The location picker can find a direct location or another record related to a compatible location. If the place does not exist yet, select Create Location from the marker row. Linked markers can open their location record from the map.

Loaded-world sampling: Map capture reads the currently open editor world. Load the landscape and world content needed for the area before sampling it.

Calendars & Timelines

Reusable Calendar Records

Calendar records define the date system used by timeline fields. Days, months, and seasons are separate reusable records, so their names and order remain consistent across events and timelines. Choose the project's default calendar in Studio Settings.

Timeline Records

Timeline events can define a title, track, start and end date, uncertainty, locations, description, linked records, prerequisites, and stable event ID. Use track names or tags such as Era and Major Event to control where records appear in the shared history view.

World History

The World History panel stacks timeline and event records into shared tracks. Periods such as eras can span a date range while individual events appear below them. Double-click an entry to open its source record, right-drag to pan, and use the mouse wheel to zoom.

Use one track name for related records: An Era track can hold every age in sequence while Major Events collects wars, disasters, discoveries, reigns, or other turning points below it.

Production Work

Voice Production

Voice profiles hold casting and performance direction. Voice-line records store the exact localized script, speaker, locale, delivery notes, recording reference, and review state. Dialogue and state-machine lines can link directly to the voice record used for production.

Visual Development

Visual briefs define the intended look before an asset exists. Concept records collect references and review decisions. Approved mesh, material, texture, animation, audio, image, and other Unreal assets use Content Browser selectors so design records can open the actual implementation asset.

Source and Ownership

Every record ends with Source and Ownership. Use it to name the responsible designer, track implementation state, retain source or reference material, and inspect the fingerprint used by project data. This information stays separate from the creative or technical fields that define the record itself.

Example Project

Open Studio Settings and select Load Example Project to load a finished game-design example based on Dante's Divine Comedy. It treats the Dark Wood as a playable opening level and follows Dante's first meeting with Virgil. Records show how story, quests, dialogue, combat, world state, maps, art, audio, and level design can support the same part of a game.

Loading replaces the current project: GDDS creates a recovery copy first, then replaces the active records and templates with the example data.

Data, Recovery & Transfer

Project Data

Editable data is stored in Unreal DataTables beneath Content/GameDesignDocumentStudio/Data. Project metadata, templates, redirects, and deletion tombstones live in DT_GDDS_Project. Domain tables store the record rows for characters, quests, dialogue, locations, and the other record families.

Select Open Data Folder in the status bar to create the physical folder when necessary and open it in the operating system. Do not rename or edit managed DataTables outside GDDS while the studio is open.

Save and Navigation

The toolbar Save action writes every current record. Normal editing is saved when navigation leaves the active record, which keeps the selected text field and cursor stable while writing. Record renames save the new row before the previous row is removed.

Recovery

Recovery snapshots, deleted-record archives, and simulator traces are stored under Saved/GameDesignDocumentStudio. Studio Settings controls the recovery interval and lists available snapshots. Recovery files are project safety data and are not included in packaged plugins.

Export and Import

  • Export writes the complete project and its templates to a versioned GDDS JSON document.
  • Import accepts project documents created by GDDS Export.
  • Import checks the format name and supported document version before replacing project data.
  • Arbitrary JSON, word-processing documents, and another application's project format are not accepted.
Recommended backup: Keep regular GDDS exports in source control or the project's normal backup system in addition to Unreal assets and local recovery snapshots.

Validation & Runtime Data

Validation

Select the checkmark in the top toolbar to check stable IDs, required fields, references, templates, graphs, variables, quest flow, dialogue paths, and production data. Open Validation to review the results. Selecting a result opens its record or graph node when a direct target is available.

Build Runtime Data

When packaged gameplay needs GDDS data, open Studio Settings and select Build Runtime Data. GDDS validates the project and writes /Game/GameDesignDocumentStudio/Generated/DA_GDDS_NarrativeDatabase. Runtime code reads this compiled asset instead of the editor DataTables.

Planning-only projects can skip this step: Build Runtime Data is needed only when gameplay code will query records, run dialogue or state machines, or use GDDS quest and variable state in a packaged game.

Runtime Systems

SystemPurpose
UGDDS_NarrativeDatabaseStores compiled project metadata, templates, reference definitions, and records.
UGDDS_NarrativeSubsystemLoads the database, evaluates conditions, applies actions, manages dialogue sessions, advances state machines, and exposes quest and variable state.
UGDDS_NarrativeStateComponentProvides save-compatible and replicated variable and quest state for an owning actor.

Compatibility & Architecture

ItemCurrent Support
Unreal Engine5.4, 5.5, 5.6, 5.7, and 5.8 with a separate package for each engine version.
Development PlatformWindows Win64.
Target Build PlatformWindows Win64.
Third-party DependenciesNone in the standalone Fab version.
Editor ModuleGameDesignDocumentStudioEditor owns Slate authoring, graphs, maps, timelines, validation, DataTable persistence, import/export, recovery, and runtime-data generation.
Runtime ModuleGameDesignDocumentStudioRuntime owns compiled data, runtime queries, dialogue sessions, variables, quests, replication, templates, references, and lineage.
Network ReplicationRuntime variable and quest state can use the narrative state component's replication support. Editor authoring tools are not replicated.
Blueprint SupportRuntime database, subsystem, state component, records, variables, quests, dialogue, references, and supporting structures expose reflected Unreal APIs where appropriate.

Runtime code does not depend on the editor module. Editable DataTables remain editor-owned; packaged games read the compiled database. The standalone Fab build contains no game-specific content or framework adapter.

Troubleshooting

The studio does not appear under Tools

  • Confirm the package matches the project's Unreal Engine version.
  • Open Edit > Plugins and verify that Game Design Document Studio is enabled.
  • Restart the editor after enabling the plugin.
  • Build the project editor target if Unreal reports a missing module.

A new record has the wrong type or template

  • Create it from the workspace that owns the intended record family.
  • Choose the correct type in the New Record window before selecting Create.
  • If the record already exists, change its type and assign the intended template in Domain Properties.

A picker does not show the expected result

  • Check which record types the template field permits.
  • Search by the record title, stable ID, or a related record.
  • Confirm the destination record has been named and saved.
  • Use a general narrative reference field when the link is not limited to one domain.

A template field does not appear

  • Confirm the record is assigned to the template you edited.
  • Check the field's section and visibility rule.
  • Open Preview in the Template Builder to confirm the resolved structure.
  • Check whether an inherited field was overridden by the child template.

A graph path will not continue

  • Check that the output pin is connected to an existing node.
  • Review the active condition and variable values in the simulator.
  • Use an End node when the current dialogue or quest is meant to stop.
  • Assign the optional next record on End when another dialogue or quest should follow.

Map capture is empty or incomplete

  • Open the level that contains the intended landscape.
  • Load the required World Partition cells and collision-bearing objects.
  • Capture the full landscape before selecting a detailed region.
  • Increase the overview or detail sampling resolution in Studio Settings only when more detail is needed.

Deleted or renamed records return

  • Use the studio's Delete action rather than removing a DataTable row by hand.
  • Allow navigation to finish saving the current record before closing the editor.
  • Do not modify managed DataTables outside GDDS while the studio is open.
  • Run validation to find stale references after a large identity change.

Build Runtime Data fails

  • Open Validation and resolve every error.
  • Check missing references, duplicate IDs, graph connections, required fields, and variable types.
  • Confirm the project's Content directory is writable.
  • Skip runtime-data generation if GDDS is being used only as an editor-side design workspace.

Import rejects a JSON file

  • Import a versioned project document created by GDDS Export.
  • Do not select an arbitrary JSON file or a document exported by another application.
  • Use the matching or newer supported GDDS document version.

Back to top

Game Design Document Studio