GET ON FAB
CodeForge Cover

CodeForge

Visual C++ Code Generator for Unreal Engine 5

Design classes, structs, enums, and interfaces in a node-based editor. CodeForge generates UHT-compliant C++ boilerplate instantly — with replication, RPCs, delegates, and more.

v0.1.0 · UE 5.7

1 Overview

CodeForge is an editor plugin that lets you define Unreal Engine C++ classes, structs, enums, and interfaces visually — then generates complete, compile-ready header and source files. Instead of hand-writing UPROPERTY/UFUNCTION macros, specifier strings, and replication boilerplate, you configure them through a node graph and a details panel, and CodeForge emits correct C++ instantly.

Node-Based Design
Visual graph editor with typed nodes for classes, properties, functions, RPCs, delegates, and more.
Instant Code Generation
Generates .h and .cpp files with correct UHT macros, class prefixes, includes, and GENERATED_BODY().
Real-Time Validation
13+ validation rules catch errors before you compile — duplicate names, bad types, missing prefixes, and more.
Full UE5 Feature Coverage
Replication, RepNotify, RPCs, delegates, interfaces, Exec commands, meta specifiers, and custom templates.

2 Installation

From Source or Fab

Once you acquire CodeForge, ensure it is placed in your project's Plugins/ directory. Here is the expected structure:

YourProject
Plugins
CodeForge
CodeForge.uplugin
Content
Source
CodeForgeRuntime (Default phase)
CodeForgeEditor  (PostEngineInit phase)
  1. Regenerate project files (right-click your .uprojectGenerate Visual Studio project files).
  2. Compile and open the editor. CodeForge loads automatically — check Edit → Plugins to verify.
i
Engine Version: CodeForge targets Unreal Engine 5.7. The plugin sets "EngineVersion": "5.7.0" in its descriptor and uses BuildSettingsVersion.V6.

3 Quick Start

Generating your first class takes less than a minute:

  1. Create Asset: In Content Browser, right-click → CodeForge → CodeForge Blueprint.
  2. Open Editor: Double-click the asset to open the visual graph.
  3. Configure: In the Details panel, choose Class, set ClassName (e.g., MyCharacter), and ClassType.
  4. Design: Right-click the graph to add Properties, Functions, or RPC nodes and connect them.
  5. Generate: Click the Generate Code toolbar button.
Create Asset
Design in Graph
Validate
Generate C++

4 Architecture

CodeForge is organized into distinct layers, ensuring that data, templates, and UI remain fully decoupled:

LayerModuleKey Classes
1. Data Model CodeForgeRuntime UCodeForgeBlueprint, FCodeForgePropertyDef, etc.
2. Template Engine CodeForgeRuntime FCodeForgeTemplateEngine, FCodeForgeTemplateContext
3. Code Generator CodeForgeEditor FCodeForgeGenerator, Template file loading
4. Editor UI CodeForgeEditor FCodeForgeAssetEditor, SGraphNode_CodeForge

5 CodeForge Blueprints

A CodeForge Blueprint (UCodeForgeBlueprint) is the root data asset that stores your entire type definition. It lives in the Runtime module and is a pure data object.

Class Prefix System

CodeForge automatically prepends the correct UE prefix based on the type. If you accidentally type ARPGCharacter, the heuristic prevents double-prefixing it to AARPGCharacter.

KindPrefixExample InputGenerated Name
Actor-derived ClassAMyCharacterAMyCharacter
UObject-derived ClassUMySubsystemUMySubsystem
StructFItemDataFItemData
EnumEItemRarityEItemRarity
InterfaceU / IDamageableUDamageable / IDamageable

6 The Node Graph

CodeForge utilizes a heavily customized visual node graph. The central type node connects to various member nodes.

Class: AMyCharacter
Health
GetHealth()
ServerAttack()
OnDeath
Struct: FItemData
ItemName
StackCount
Class
Struct
Enum
Interface
Property
Function
RPC
Delegate

7 Code Generation

The code generation pipeline converts your node graph into a structured context dictionary, which is then fed into Handlebars-style templates (.cft files) to produce the final C++ strings.

1. BuildContext()
2. Load Templates
3. Process Strings

8 Classes

The most feature-rich blueprint kind. Supports properties, functions, RPCs, delegates, and replication.

Properties

Each Property node generates a UPROPERTY() macro. Specifiers like EditAnywhere, BlueprintReadWrite, and ReplicatedUsing are automatically derived from checkboxes.

Example Generated UPROPERTY
UPROPERTY(EditAnywhere, BlueprintReadWrite, ReplicatedUsing=OnRep_Health)
float Health = 100.0f;

Functions & RPCs

Generate pure getters, callable events, and full client/server/multicast RPCs complete with _Implementation and _Validate stubs where required by UE5 conventions.

Example Generated Server RPC
// Header
UFUNCTION(Server, Reliable, WithValidation)
void ServerRequestAttack();

// Source — _Implementation
void AMyCharacter::ServerRequestAttack_Implementation()
{
    // TODO
}

// Source — _Validate
bool AMyCharacter::ServerRequestAttack_Validate()
{
    return true;
}

Replication

Checking bReplicated on the root node auto-generates the GetLifetimeReplicatedProps override, network includes, and constructor flags (differentiating between Actor bReplicates and Component SetIsReplicatedByDefault).

9 Structs, Enums & Interfaces

Structs

Generates a USTRUCT(BlueprintType). Struct properties cannot have replication flags (caught by Validator Rule 12).

Enums

Generates a UENUM(BlueprintType) with uint8 backing type and optional UMETA(DisplayName) metadata.

Interfaces

Generates the standard UE5 dual-class pattern: a UINTERFACE stub and an I-prefixed abstract class filled with BlueprintNativeEvent functions.

10 Asset Editor

Double-clicking a CodeForge Blueprint opens the CodeForge Asset Editor (FCodeForgeAssetEditor), a custom standalone editor with:

Code Preview

The code preview panel updates in real time as you modify properties in the Details panel. It shows two tabs:

MyCharacter.h
MyCharacter.cpp
UCLASS()
class MYGAME_API AMyCharacter : public ACharacter
{
    GENERATED_BODY()
    // Updates live as nodes change!
};

11 Node Visuals

CodeForge uses a custom SGraphNode_CodeForge widget with enhanced visual features:

!
Function: Attack
Damage (float)

12 Validation & Auto-Fix

CodeForge validates your design in real time to prevent C++ compilation errors.

RuleSeverityDescriptionAuto-Fix
1ErrorDuplicate member names within the same class/struct
2ErrorConflicting specifiers: BlueprintReadWrite + BlueprintReadOnly
5ErrorMember name uses a reserved UE name (Class, Super)
8ErrorRepNotify set but Replicated is falseYes
9WarningBool property not prefixed with b (e.g., bIsAlive)Yes
12ErrorReplication flags set on a struct propertyYes
Auto-Fix: If a warning has an auto-fix available, you can right-click the node and select "Apply Fix" to automatically resolve the issue (e.g. capitalizing and adding 'b' to a boolean variable).

13 Template Engine & Customization

CodeForge uses .cft files located in Plugins/CodeForge/Content/Templates/. It uses a Handlebars-like syntax.

SyntaxDescription
{{Var}}Replaced with variable
{{#if Cond}}...{{/if}}Renders if true
{{#each Array}}...{{/each}}Loops over items
{{> partial}}Includes another template
i
Overrides: You can define a CustomTemplatePath in Project Settings to use your own templates without modifying the plugin files.

14 Module Scanner

FCodeForgeModuleScanner automatically discovers all C++ modules in your project by scanning for .Build.cs files. For each module it determines:

This powers the ModuleTarget dropdown in the blueprint editor, letting you pick any module in your project as the output target without manual configuration.

15 Auto-Fix System

Several validation rules offer automatic fixes via ApplyAutoFix(AutoFixId). When a validation result has a non-empty AutoFixId, the editor can apply the fix with one click.

AutoFixId PatternAction
FixClassPrefix:XPrepend the correct prefix character to ClassName
FixBoolPrefix:PropNameRename property to bPropName (with capitalized first letter)
EnableReplicated:PropNameSet bReplicated = true on the property
RemoveReplicationFlags:PropNameClear replication flags from struct property
FixType:Field:CorrectedTypeReplace a miscapitalized type (e.g., Floatfloat)

16 Enums Reference

ECodeForgeBlueprintKind

  • Class
  • Struct
  • Enum
  • Interface

ECodeForgeRPCMode

  • Server
  • Client
  • NetMulticast

ECodeForgeDelegateType

  • DynamicMulticast
  • Dynamic
  • Multicast
  • Simple

ECodeForgeValidationSeverity

  • Error
  • Warning

ECodeForgeClassType

ActorPawnCharacterActorComponent
SceneComponentObjectGameModeBaseGameStateBase
PlayerControllerPlayerStateHUD

ECodeForgeRepCondition

NoneInitialOnlyOwnerOnlySkipOwner
SimulatedOnlyAutonomousOnlySimulatedOrPhysicsInitialOrOwner
CustomReplayOrOwnerReplayOnlySimulatedOnlyNoReplay
SimulatedOrPhysicsNoReplaySkipReplayDynamicNever

17 Specifier Builder Reference

Each definition type has a BuildSpecifierString() method that generates the correct UE5 macro arguments. Here's how specifiers combine:

Property Specifier Priority

Edit specifiers are mutually exclusive (first true wins):

VisibleAnywhere > EditAnywhere > EditDefaultsOnly > EditInstanceOnly

Blueprint specifiers are mutually exclusive:

BlueprintReadWrite > BlueprintReadOnly

Replication: RepNotify takes priority over plain Replicated — generates ReplicatedUsing=OnRep_Name.

Function Specifier Priority

Exec > BlueprintPure > BlueprintCallable

BlueprintNativeEvent is additive (can combine with the above). Category is appended when non-empty.

Type Correction Map

The validator recognizes common miscapitalizations and suggests corrections:

InputCorrectedInputCorrected
FloatfloatStringFString
BoolboolVectorFVector
IntintfstringFString
Int32int32fvectorFVector
DoubledoublefrotatorFRotator

18 Troubleshooting

UHT "Class name must start with A/U"

CodeForge prepends prefixes automatically. If you see this on an old file, regenerate it to pick up the updated logic. Ensure the ClassName field doesn't already contain a double-prefix.

DLL lock prevents rebuild

If UnrealEditor-Cmd.exe holds DLLs, kill it or close the editor. If bAutoLiveCodingOnBehavioralChange is enabled, CodeForge will attempt to trigger Live Coding directly.

CodeForge v0.1.0 · Unreal Engine 5.7

Copyright © 2026 GregOrigin. All Rights Reserved.