Skip to content

Content pipeline

This page maps designer-authored rune content to the runtime classes that consume it.

Rune content flow

rune matrix
    |
    v
URuneDataAsset
    +--> AWorldRune Blueprint
    +--> FRunePattern in DA_RuneDrawingGraph
    +--> noun Rules / Temporary Rules
    |
    v
URuneableObjectComponent on puzzle actors
    |
    v
ARunePuzzleActor State Looks + Performances

The full workflow is in Making runes.

Data assets

URuneDataAsset

One asset defines one word.

Word fields, on every word:

  • RuneWord
  • EnglishDefinition
  • RuneVisualMesh
  • WordType

Rules fields, on nouns:

  • Default Status: the state a placed object starts in
  • Rules: one row per matrix cell (Verb, From Status, To Status, Stops Motion)
  • Temporary Rules: cells that last a while, such as Rise (Verb, From Status)
  • States: read-only list of every state the rules use

Verb fields, on verbs:

  • Duration: how long the verb's temporary effects last

Noun assets live in Content/Rephrased/Gameplay/Runes/Nouns/ and verb assets in Runes/Verbs/. The drawing graph is Runes/Drawing/DA_RuneDrawingGraph.

URuneDrawingDataAsset

DA_RuneDrawingGraph stores exact FRunePattern stroke sets. The shared graph is a binary asset, so one owner edits it at a time.

Blueprint authoring surfaces

Work Authoring surface
New word identity URuneDataAsset
World form Blueprint subclass of AWorldRune
Drawn form FRunePattern in DA_RuneDrawingGraph
What a verb does to a noun Rules row on the Noun data asset
Puzzle device Blueprint child of ARunePuzzleActor
How each state looks State Looks on the puzzle Blueprint or placed puzzle
What plays on a change Performances on the puzzle Blueprint or placed puzzle
New kind of behavior C++/Blueprint child of URunePuzzleBehavior

Shared content layout

  • Content/Rephrased/Gameplay/Runes/Nouns/ and Runes/Verbs/: word data
  • Content/Rephrased/Gameplay/Runes/WorldRunes/: world-rune Blueprints
  • Content/Rephrased/Gameplay/Runes/Drawing/: drawing graph
  • Content/Rephrased/Gameplay/PuzzleDevices/: rune-responsive puzzle actors
  • Content/Rephrased/Gameplay/Core/: player and controller Blueprints
  • Content/Rephrased/Input/: IA_* and IMC_* assets
  • Content/Rephrased/UI/: drawing and gameplay widgets
  • Content/Rephrased/Art/Materials/: shared rune glow materials
  • Content/Developers/<Discipline>/<Name>/: personal scratch work
  • Content/Imports/: vendor/template source content

Promote tested assets from the developer tree into the shared folder owned by their system. Use Unreal's move/rename flow so references and redirectors are handled correctly.

Shipping a new rune

  1. Confirm the matrix row and task scope.
  2. Create the word data asset.
  3. For a noun, set its Default Status and add its Rules; for a verb, add its rows to each noun it affects.
  4. Create the world-rune Blueprint when the word appears in the level.
  5. Add an exact pattern when the word can be drawn.
  6. Set up the noun's puzzle Blueprint: its part components, State Looks, and Performances.
  7. PIE the supported pair in both orders and test a rejection case.
  8. Run review and record evidence before submission.

A word ships without a C++ change when the existing behaviors cover its performances. A new shared behavior gets its own engineering task.

Ownership

The following assets are frequent binary conflict points:

  • BP_RephraseCharacter1
  • IMC_Default
  • IMC_RuneDrawing
  • DA_RuneDrawingGraph
  • shared puzzle Blueprints
  • shared maps

Check ownership before editing. Keep related binary changes together in one clearly described changelist.

Source files

  • Source/Rephrased/RuneDataAsset.h
  • Source/Rephrased/RuneSystem/Activation/WorldRune.h
  • Source/Rephrased/RuneSystem/Drawing/RuneDrawingDataAsset.h
  • Source/Rephrased/RuneSystem/Effects/RuneNounRule.h
  • Source/Rephrased/RuneSystem/Effects/RuneableObjectComponent.h
  • Source/Rephrased/RuneSystem/Effects/RunePuzzleActor.h
  • Source/Rephrased/RuneSystem/Behaviors/

Change history

  • 2026-10-02 — Gabriel Li — The authoring-surface table names a URunePuzzleBehavior child as a behavior (CORE-011).
  • 2026-10-01 — Gabriel Li — Replaced Linked Actor Slots with part components (CORE-011).
  • 2026-09-29 — Gabriel Li — Updated the pipeline for noun rules, puzzle looks and performances, and the Runes folder layout (CORE-009).
  • 2026-09-17 — Gabriel Li — Updated the content pipeline for current word data, drawing patterns, effect classes, runeable objects, and shared asset ownership.
  • 2026-09-16 - Gabriel Li - Set 1 shipping folders: Runes/Data, Runes/Words, PuzzleDevices. New rune work goes through SecondPlayableRuneAuthoring, not the calculator recipe.
  • 2026-09-05 - Gabriel Li - Updated folder map and data/recipe conventions to the shipped hybrid layout (PR #19); PreProShowcase is the current sandbox.
  • 2026-08-27 - Gabriel Li - Replaced rough folder tree with Rephrased/Imports/Developers organization policy and art bible prefix baseline.
  • 2026-05-23 — Gabriel Li — Default engineer sandbox: Rune Showcase (replaces L_Sandbox in tree example).
  • 2026-05-08 — Gabriel Li — Added baseline change history section for weekly wiki maintenance.