UI Foundations
From an empty project to a working HUD, pushable screens, and confirmation dialogs on the CommonUI layer stack.
What you'll learn
- Understand the policy → root layout → tag-keyed layers architecture
- Set the three boot classes (Game Instance, Local Player, Viewport Client) that make the layout exist
- Give CommonUI its Click and Back input actions
- Register UI layers and build the root layout
- Push a HUD layout onto UI.Layer.Game for the local player
- Push and pop screens with per-widget input routing
- Show confirmation dialogs through the messaging subsystem
Curriculum
- 1How CrimsonUI Is WiredA policy creates one root layout per player; screens push onto gameplay-tag-keyed layers.2 min
- 2Enable the PluginTick CrimsonUI (and CrimsonCommon), restart, and add the modules in a C++ project.2 min
- 3Set the Boot ClassesGame Instance, Local Player, and Viewport Client — the three classes that make the layout exist at all.5 min
- 4Give CommonUI Click & Back ActionsTwo Input Actions and three ini lines — the universal confirm/cancel every CommonUI widget expects.3 min
- 5Register Layers in a Root LayoutDefine UI.Layer tags, build the root layout Blueprint, and register a stack per layer.5 min
- 6Create the Policy & Point Settings At ItThe policy spawns your layout per player; DefaultUIPolicyClass makes it the project's policy.3 min
- 7Push Your HUDA CrimsonHUDLayout pushed onto UI.Layer.Game when the local player is ready.4 min
- 8Push Screens with Input RoutingActivatable widgets declare their own input mode — push a pause menu that routes input correctly for free.5 min
- 9Show a Confirmation DialogYes/No and OK/Cancel dialogs through the messaging subsystem — one async node, one result enum.4 min