v0.4.0 — Production Ready

PGX Core

Professional modular C++ framework for Unreal Engine 5. 13 production subsystems, star topology architecture, and comprehensive editor tooling.

Framework at a Glance

0
Production Systems
0
Plugins
0
Blueprint Nodes
0
GameplayTags
0
Console Commands
0
Source Files

Star Topology

CORE Profile Log Save GameFlow PSO LevelFlow Loading MGOS Audio Registry Construction Message EventHandler

One Core, Zero Coupling

PGX enforces a strict star topology: every L2 plugin depends exclusively on PGXCoreRuntime. No L2-to-L2 runtime dependencies — ever.

Cross-plugin communication happens through two dedicated buses: UPGXMessageSubsystem (pub/sub) and UPGXEventHandlerSubsystem (behavior resolution).

This architecture guarantees that any plugin can be added or removed without breaking the rest of the framework.

3 Documented Exceptions: Loading→GameFlow, Loading→PSO, PSO→GameFlow. Each validated and load-order critical. Shown as dashed lines.
See all diagrams →

13 Subsystems, Battle-Tested

Each system ships with types, delegates, config DA, tags, console commands, BP library, inspector, and full documentation.

Profile

v2.0
  • Platform-aware budgets
  • 11 systems enforce limits
UPGXPlatformConfig DA → Budget structs

Log

v3.0
  • Polymorphic observability
  • 6-phase rewrite
LogPGX{System} per-module categories

Save

v1.0
  • Domain-based save slots
  • Checksum + async migration
QuickSaveAsync → OnSaveComplete

GameFlow

v1.0
  • State machine + history
  • Batch transitions + revert
RequestTransition(Tag) → OnFlowChanged

PSO

v2.0
  • Pipeline State precaching
  • Pause/resume contexts
ActivatePipeline(Tag) → PSOReady

LevelFlow

v1.0
  • Level transitions + sublevels
  • Cancel + resolve support
RequestLevel(Name) → OnTransition

Loading

v1.0
  • Loading screen orchestration
  • Progress + skip + force close
ShowLoadingScreen(Config)

MGOS

v1.0
  • GC observability engine-wide
  • Profile + history metrics
UEngineSubsystem — GC snapshots

Audio

v1.1
  • Dual-backend subsystem
  • 7 DataAssets, 50+ APIs
PlaySound(Tag) | Music | Dialogue

Data Registry

v2.0
  • DataTable-first architecture
  • Cache + compiled wiring
FindByTag<T>(Tag) → UObject*

Construction

v1.3
  • 8 DataAsset types
  • Class override pattern
DA slot → Default | CppClass | Blueprint

Message

v1.0
  • Pub/sub message bus
  • FInstancedStruct payloads
Broadcast(Tag, Payload) → Listeners

EventHandler

v1.0
  • Behavior resolution bus
  • Sequence + telemetry
FirePGXEvent(Tag, Context) → Resolve
Central Hub

13 Systems, One Dashboard

Every system above lives inside the Hub Dashboard. Version, health status, and KPI chips — at a glance. One click opens any inspector.

No terminal, no file browsing. Everything you need to manage 13 production subsystems is already in the editor.

12 system cards · Real-time KPIs · One-click inspectors
PGX Hub Dashboard
Live in Editor
PGX Hub Dashboard — 12 system cards with version, KPI chips, and health status

Clean, Predictable APIs

Every system follows the same patterns. Learn one, know them all.

// Save a game with domain tags
UPGXSaveSubsystem* Save = GetGameInstance()->GetSubsystem<UPGXSaveSubsystem>();
Save->SetDomainValue(Tag_Player, TEXT("Health"), 100);
Save->QuickSaveAsync(Tag_AutoSave);

// Broadcast a message to all listeners
UPGXMessageSubsystem* Msg = GetGameInstance()->GetSubsystem<UPGXMessageSubsystem>();
FPGXDamagePayload Payload;
Payload.Amount = 50.f;
Msg->Broadcast(Tag_Combat_Hit, FInstancedStruct::Make(Payload));

// Fire a resolvable event
UPGXEventHandlerSubsystem* Events = GetGameInstance()->GetSubsystem<UPGXEventHandlerSubsystem>();
Events->FirePGXEvent(Tag_Ability_Cast, Context);
// Blueprint nodes — zero subsystem access needed

PGX Save | Data | Write
  SetDomainValue(DomainTag, Key, Value)
  QuickSaveAsync(SlotTag) → OnComplete

PGX Message | Core
  Broadcast(MessageTag, Payload ← morphing pin, any struct)
  Listen(MessageTag) → OnMessage

PGX EventHandler | Core
  FirePGXEvent(EventTag, Context ← morphing pin)
  RegisterHandler(EventTag, Priority)

PGX Audio | Core
  PlaySound(SoundTag)
  PlayMusic(MusicTag, FadeIn)
  SetChannelVolume(ChannelTag, Volume)
Runtime Evidence

See What Your Code Does

The code above creates save domains, broadcasts messages, and fires events. The Save Inspector shows you the result in real time: domains, keys, slot status, and pipeline logs.

Every subsystem has its own inspector. No guessing, no breakpoints needed.

22 NomadTabs · Per-system inspectors · Live data
PGX Save Inspector
Runtime Inspection
Save Inspector — Domain contexts, pipeline log, and slot browser showing runtime state

Built for Developer Productivity

A comprehensive editor integration with custom panels, visual construction, and one-click workflows.

0Panels
0Factories
0SVG Icons
0Atomic Widgets
0Widget Instances

PGXDocs

v1.1 — Native Slate Renderer

In-editor documentation with md4c parser. No WebBrowser dependency.

PGXSimHarness

v2.0 — 160+ API Calls

Full-stack test harness. Demo mode + deep injection across 13 subsystems.

PGXScaffold

v0.2.0 — Project Scaffolding

4 built-in templates. Source control + rollback. JSON audit trail.

PGXEditorTools

v0.4.0 — Hub + Dashboard

Central toolbar, Hub dashboard, system observer, test dashboard, settings.

PGXVersionControl

v1.0 — Git Integration

Source control utilities integrated into the editor workflow.

Observability

Real-Time System Observer

Sparklines, health dots, and live metrics for all 13 subsystems. Built on the SlateIM graph engine with real-time polling. Spot bottlenecks before they become bugs.

13 subsystems · Live sparklines · Health indicators
PGX System Observer
Live Monitoring
System Observer — Live subsystem monitoring with sparklines and health indicators