Unreal Core Framework is structured as a single UE5 plugin containing five runtime modules. Each module is self-contained with its own Build.cs, Public/Private source directories, and API macro.
CoreTween ──────────────────────────────┐
depends on: Core, UMG, AsyncFlow │
│
CoreInteraction │
depends on: Core, CoreUObject, │
Engine │
│
CoreSpawning │
depends on: Core, CoreUObject, │
Engine │
│
CoreSave ───────────────────────────────┤
depends on: Core, CoreUObject, │
Engine, AsyncFlow, │
UnrealCoreFramework │
│
UnrealCoreFramework ◄───────────────────┘
depends on: Core, CoreUObject,
ApplicationCore, Engine,
HTTP, InputCore, Slate,
UMG, CommonUI, Json,
JsonUtilities,
EnhancedInput,
ModelViewViewModel,
FieldNotification,
AsyncFlow, CoreTween
API Macro: UNREALCOREFRAMEWORK_API
The central module providing:
- Gameplay base classes (Actor, Character, GameMode, GameState, PlayerController, PlayerState, Pawn, GameInstance, GameSession, WorldSettings, SpectatorPawn, ViewportClient)
- CommonUI-based UI stack (Widget, Page, Modal, HUD, MainUiContainer, StackWidgetContainer, InputActionButton)
- Subsystem base classes and concrete subsystems (Level Manager, Data Asset Manager, Game Flow, UI, Input, Audio, Notification, Tween Manager, ViewModel Manager)
- Health component with ViewModel integration
- Enhanced Input wrappers
- Async HTTP requests via
URestRequest - Data asset base classes and damage type system
- MVVM ViewModel infrastructure
- Developer Settings for project-wide configuration
- Utility function libraries (
UHelperStatics,USubsystemHelper) - Third-person character with spring-arm camera setup
- AsyncFlow conventions and macros (
UCF_ASYNC_CONTRACT) - Blueprint async actions (Delay, Widget Transition)
API Macro: CORETWEEN_API
Standalone tweening engine for UMG widgets:
UCoreTween— Static entry point:Create(),Clear(),GetIsTweening(),CompleteAll()FCoreTweenBuilder— Fluent builder with chained property setters, callsRun()to launch aTTask<void>FCoreTweenSequence— Sequential tween chainsFCoreTweenEasing— 30+ easing functions (Quad, Cubic, Quart, Quint, Expo, Sine, Circ, Back, Elastic, Bounce, Spring)TCoreTweenProp<T>/TCoreTweenInstantProp<T>— Property interpolation templatesUCoreTweenWorldSubsystem— Per-world tween state isolation (PIE-safe)ICoreTweenTarget— Abstraction for target types (Widget, Actor, SceneComponent)- Full Blueprint support via
UCoreTweenBlueprintFunctionLibraryandUCoreTweenParamChain
API Macro: COREINTERACTION_API
Component-based interaction system:
IInteractable— Blueprint-native interface withInteract(),CanInteract(),GetInteractionPrompt()UCoreInteractionComponent— Placed on interactable actors; configurable prompt, range, cooldown, enabled stateUCoreInteractorComponent— Placed on the player; sphere overlap detection, focus management,TryInteract()
API Macro: CORESPAWNING_API
Object pooling and data-driven spawner system:
IPoolable— Interface for pool lifecycle (OnAcquired,OnReleased,ResetToPool)APoolableActor— Default implementation that hides/disables on releaseFObjectPoolBase/TObjectPool<T>— Type-safe actor pools with pre-warmingUObjectPoolSubsystem— World subsystem managing named poolsASpawner— Timer-based spawner driven byUSpawnerConfigDataAssetASpawnerVolume— Spawner that picks random points within a box volumeUSpawnerFactory— Centralizes pool creation and config resolution
API Macro: CORESAVE_API
Save/load system:
UCoreFrameworkSaveGame— Generic save object with string key-value and binary data mapsUCoreSaveSubsystem— Game instance subsystem managing slot-based save/load/delete operations
All modules load at Default phase. The plugin descriptor specifies "LoadingPhase": "Default" for every module.
All modules use PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs.