Files
UE5-Modular-Game-Framework/docs/blueprints/TEMPLATE.md
Lefteris Notas fef25a3363 Enhance documentation with Manual Implementation Guides and Build Checklists
- Updated `CONTEXT.md` to reference the new Manual Implementation Guide and Build Checklist in blueprint spec files.
- Added a detailed Manual Implementation Guide to `01_GI_GameTagRegistry.md`, including class setup, variable initialization, function implementations, and a build checklist.
- Introduced a Manual Implementation Guide section in `22_BPC_PhysicsDragSystem.md` with step-by-step instructions for setup and function logic.
- Expanded `28_BPC_ConsumableSystem.md` with a comprehensive Manual Implementation Guide detailing class setup, variable initialization, function implementations, and networking.
- Enhanced `69_BP_WeaponBase.md` with a Manual Implementation Guide covering class setup, variable defaults, function implementations, and networking.
- Added a Manual Implementation Guide to `84_AI_BaseAgentController.md`, outlining class setup, variable initialization, function implementations, and networking.
- Updated `TEMPLATE.md` to version 2.0, incorporating the Manual Implementation Guide and Build Checklist for human implementers.
- Revised `INDEX.md` to reflect the new purpose and content of blueprint specifications, emphasizing the inclusion of the Manual Implementation Guide.
2026-05-19 17:51:03 +03:00

8.2 KiB

Blueprint Spec Template v2.0

Use this template for every system file in docs/blueprints/. Replace all {{placeholders}} with system-specific values.

v2.0 Changes: Added Section 11 (Manual Implementation Guide) and Section 12 (Build Checklist) for human implementers building Blueprints manually in UE5. Each function now has node-by-node logic with specific UE5 Blueprint node names.


{{System Number}} — {{System Name}} ({{AssetType}}_{{Name}})

Purpose

{{1-2 sentences describing what this system does and why it exists.}}

Dependencies

  • Requires: {{other systems this directly depends on}}
  • Required By: {{which systems depend on this}}
  • Engine/Plugin Requirements: {{e.g. GameplayTags, GASP, DeveloperSettings}}

Class Info

Property Value
Parent Class {{ParentClassName}}
Class Type {{Blueprint, BlueprintComponent, Widget, etc.}}
Asset Path Content/Framework/{{Category}}/{{FileName}}
Implements Interfaces {{I_Interfaces}}

1. Enums

Enum Name: {{E_EnumName}}
(DisplayName = "{{Display Name}}")

Values:
  {{Value1}} = 0    // Description
  {{Value2}} = 1    // Description
  {{Value3}} = 2    // Description

List each enum the system defines or uses.


2. Structs

{{S_StructName}}

Field Type Description
{{Field1}} {{Type}} {{Description}}
{{Field2}} {{Type}} {{Description}}

List each struct the system defines. Include all fields with types and descriptions.


3. Variables

Configuration (Instance Editable, Expose On Spawn)

Variable Type Default Category Description
{{VarName}} {{Type}} {{Default}} {{Category}} {{Description}}

Internal (Private / Protected, No Expose)

Variable Type Default Category Description
{{VarName}} {{Type}} {{Default}} {{Category}} {{Description}}

Replicated (if multiplayer)

Variable Type Condition Description
{{VarName}} {{Type}} {{RepCond}} {{Description}}

4. Functions

Public Functions

{{FunctionName}}{{ReturnType}}

  • Description: {{What this function does}}
  • Parameters:
    Param Type Description
    {{ParamName}} {{Type}} {{Description}}
  • Blueprint Authority: {{Client / Server / Multicast / Any}}
  • Flow: {{brief description of logic flow}}

Protected / Private Functions

{{FunctionName}}{{ReturnType}}

  • Description: {{What this function does}}
  • Parameters:
    Param Type Description
    {{ParamName}} {{Type}} {{Description}}
  • Flow: {{brief description of logic flow}}

5. Event Dispatchers

Dispatcher Parameters Bind Access Description
On{{EventName}} {{Type1}}, {{Type2}} {{Public/Private}} {{When this fires}}
On{{OtherEvent}} {{Type1}} {{Public/Private}} {{When this fires}}

6. Overridden Events / Custom Events

Event: {{EventName}}

  • Description: {{What triggers this event and what it does}}
  • Flow:
    1. {{Step 1}}
    2. {{Step 2}}
    3. {{Step 3}}

7. Blueprint Graph Logic Flow

flowchart TD
    A[BeginPlay / Initialize] --> B{Check Condition}
    B -->|True| C[Do Action]
    B -->|False| D[Alternate Path]
    C --> E[Fire Dispatcher]
    D --> F[Log Warning]

Describe the main execution flow using a Mermaid flowchart.


8. Communication Matrix

Who Talks How What Is Sent
{{Source}} {{I_Interface / Dispatcher / Direct}} {{Data}}
{{Source}} {{I_Interface / Dispatcher / Direct}} {{Data}}

List every other system this one talks to and the mechanism used.


9. Validation / Testing Checklist

  • {{Check 1}}
  • {{Check 2}}
  • {{Check 3}}
  • Edge case: {{Edge case description}}

10. Reuse Notes

  • {{Any notes about reusing this component in other contexts}}
  • {{Things to watch out for during implementation}}

11. Manual Implementation Guide

This section is for a human implementer building the Blueprint manually in UE5.

Follow these steps in order. Each function is broken down into specific UE5 Blueprint nodes. Variable names in code font refer to variables defined in Section 3. References to other systems (e.g., BPC_HealthSystem) mean "get the component and call its function."

11.1 Class Setup

  1. Create a new Blueprint Class:
    • Parent Class: {{ParentClass}}
    • Name: {{AssetType}}_{{Name}}
    • Path: Content/Framework/{{Category}}/
  2. Add all variables from Section 3 to the Class Defaults.
    • Configuration variables: set Instance Editable ✓ and Expose on Spawn ✓ (if marked).
    • Internal variables: set to Private (no expose).
  3. If the class implements interfaces, add them in Class Settings → Implemented Interfaces.

11.2 Variable Initialization (Construction Script / BeginPlay)

Event BeginPlay
  ├─ Set {{VarName}} = {{Default}}   // For each internal variable with a default
  ├─ Get Owner → Cast to {{ExpectedOwnerType}} → Store as CachedOwner
  ├─ Get Component by Class ({{RequiredComponent}}) → Store reference
  │    └─ If NOT valid → Print Warning: "{{Component}} missing on {{Owner}}"
  ├─ [If replicating] Check HasAuthority → if server, initialize replicated vars
  └─ Fire initialization-related dispatchers

11.3 Function Implementations

{{FunctionName}}

Input Pins: {{Param1}} ({{Type1}}), {{Param2}} ({{Type2}}) Output Pins: {{ReturnValue}} ({{ReturnType}})

Node-by-Node Logic:

[Function: {{FunctionName}}]
  Step 1: {{First thing to do — get a reference, check a condition}}
  Step 2: Branch on {{Condition}}
    True →
      Step 2a: {{Action for true branch}}
      Step 2b: {{Next action}}
    False →
      Step 2c: {{Action for false branch}}
  Step 3: {{Continuation after branch}}
  Step 4: Fire dispatcher: Call {{OnEventName}}({{Params}})
  Step 5: Return {{ReturnValue}}

Nodes Used: {{List of UE5 Blueprint nodes the implementer should search for}}

Things to Watch:

  • {{Gotcha 1}}
  • {{Gotcha 2}}

{{NextFunction}}

(Repeat the same detailed format for every public and protected function)

11.4 Event Dispatcher Bindings

List every dispatcher this system binds TO (inbound listeners) and what to do:

Bind to Dispatcher (on which system) Custom Event to Create What it Does
{{Component}}.On{{EventName}} On{{EventName}}Handler {{Brief logic}}

11.5 Networking Setup (if applicable)

  • In Class Settings, enable Replicates
  • For each replicated variable, set Replication to Replicated or Replicated Using OnRep_{{VarName}}
  • Create OnRep_{{VarName}} functions that fire the same dispatchers as single-player
  • Add Switch HasAuthority before all state-changing logic
  • Add Run on Server RPC functions with Server_ prefix

11.6 Quick Node Reference

Common UE5 Blueprint nodes used in this system:

Node Where to Find Used For
{{NodeName}} Right-click → "{{search term}}" {{Purpose}}

12. Blueprint Build Checklist

Complete these steps in order when implementing this system:

  • Create Blueprint class with correct parent
  • Add all variables with correct types and defaults
  • Implement interface functions (if any)
  • Build BeginPlay / OnPossess / initialization event
  • Implement each function from Section 4 following the step-by-step guide
  • Create all event dispatchers from Section 5
  • Bind to inbound dispatchers (Section 11.4)
  • Add networking logic (HasAuthority gates, RPCs, RepNotify)
  • Test with validation checklist (Section 9)
  • Place in level or attach to character as appropriate

Template version 2.0 — Includes Manual Implementation Guide for human implementers.