
Description
SGC Layout System is a lean C++ CommonUI shell for Unreal Engine — Primary Layout, layer stacks, named slots, and async widget push without a Lyra experience stack.
Attention! The plugin is under development and may change. Stay tuned for updates and documentation (En/Ru).
The package includes only the plugin’s source code.
Supports:
Built for strategy, RPGs, city builders, and any title where UI stays on a Game Instance across map travel. The plugin owns layout lifecycle, soft class loading, and input gating; you own visuals in Blueprint (UCommonActivatableWidget).
Key Features
Primary Game Layout — Abstract USGCPrimaryGameLayout (Lyra-inspired) hosts Common Activatable stacks registered by UI.Layer.* tag. One root layout per client; travel detaches and re-adds it (content is cleared; re-push yourself).
Push Content To Layer — Blueprint async node: soft-push onto a tagged stack. Sync if loaded; else Soft Content load with in-flight coalescing (no hard refs after callback). OnCompleted returns the widget or null. Queued until the shell is ready.
Game Instance UI Manager — USGCUIManagerSubsystem creates the layout from Project Settings, queues layer pushes, handles Open Level / world cleanup, and exposes pop / query helpers.
Input Gate — Suspend and resume Common Input via tokens (player-wide) while a layer widget is soft-loading.
Blueprint Extensions — USGCCommonUIExtensions: suspend/resume input, pop active or specific widget, get active widget on a layer, clear slot content.
Named Slot Hosts — USGCNamedSlot + resolver for UI.Slot.* holes in your layout WBP. Push Content To Slot uses the same soft-load path; one widget per slot, latest wins.
Optional Game Feature Actions — Off by default. Enable in Project Settings (restart) and GameFeatures. Add Widget To Layer / Add Widget To Slot use the same C++ payload as the Blueprint nodes.
Project Settings — Primary Layout class and Z-order under Project Settings → Plugins → SGC Layout System. No C++ required for basic setup.
Architecture
C++ core, Blueprint setup — Shared payloads; nodes and Game Features only supply data. Modules: SGCCommonUIRuntime, optional SGCCommonUIGameFeatures, SGCCommonUIEditor.
No plugin content — Bring your own Primary Layout Blueprint, tags, and widget assets.
Client-only UI — Subsystems skip dedicated servers.
Tags — UI.Layer.* stack, UI.Slot.* host, UI.Widget.* catalog id (not a push address).
Blueprint-Friendly — Register layers/slots on a Primary Layout WBP, assign the class in Project Settings, push with Push Content To Layer / Slot.
Attention: Sample UI is not included. Provide your own USGCPrimaryGameLayout Blueprint and Gameplay Tags (UI.Layer.* / UI.Slot.* / UI.Widget.*).


