Blueprints in Rephrased¶
Where C++ ends and Blueprint content begins on this team. The rune system is built around C++ foundations that designers extend in Blueprint.
If Blueprint reflection and BlueprintNativeEvent are new to you, read Blueprints overview first.
The split in this codebase¶
| Where | Blueprint or C++ | Why |
|---|---|---|
| Game-loop logic (validator, executor, priority manager, registry) | C++ | Performance, deterministic behavior, debuggable in a real debugger. |
Verb effect components (URuneEffectComponent subclasses) |
C++ today; will be Blueprint-authorable soon | Per-tick behavior in C++ for now. The Blueprint authoring layer (in progress) lets new verbs ship as BP subclasses. |
| Rune actors, slots, calculators | C++ base + Blueprint subclass | C++ owns wiring, BP owns visuals (mesh, materials, particles). |
| Memory palace, character | C++ base + Blueprint subclass | Same. |
Data assets (URuneDataAsset, UMergeRecipeDataAsset) |
C++ class; instances created in editor | Data assets are not Blueprints; they are instances of a C++ class. |
Widgets (URuneDefinitionWidget) |
C++ base + Blueprint subclass | C++ binds the controls; BP designs the layout. |
| Levels | Blueprint / level scripting | Designer-owned. |
What Blueprints should not do here¶
- Replace
URuneEffectComponentsubclasses today (the Blueprint authoring layer is in progress). Until that ships, new verbs are C++.
Inheritance in practice¶
URuneEffectComponent (C++ abstract base)
└─ UFireComponent (C++ concrete; ticks, particles, spread logic)
└─ BP_FireComponent (Blueprint subclass; assigns the Niagara system, tunes intensity)
The C++ class is reusable behavior. The Blueprint subclass is a content-side configuration plus optional event overrides. Designers reach for the BP, not the C++ class directly.
Source files¶
Source/Rephrased/RuneSystem/Components/RuneEffectComponent.h— base withBlueprintNativeEventhooks.Source/Rephrased/InteractableInterface.h— interface usable in C++ and Blueprint.Source/Rephrased/RuneSlot.h—BlueprintAssignabledelegate (OnSlotChanged).
Change history¶
- 2026-05-23 — Gabriel Li — Split Rephrased-specific Blueprint rules from generic overview.
- 2026-05-08 — Gabriel Li — Added baseline change history section for weekly wiki maintenance.