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 .uproject → Generate 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., Float → float)

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.