Recommendation
Use UMG for ordinary game UI, CommonUI for layered cross-platform menus and input routing, and Slate for native C++ widgets or editor tooling.
Compare the options
UMG
Choose when
- A HUD, menu, or Widget Component needs visual authoring.
- Blueprint support matters more than a native-only widget stack.
- The UI does not need CommonUI activation and input routing.
Tradeoffs
- Complex focus and layered input behavior need a separate design.
- Cross-platform controller presentation is not managed automatically.
- Blueprint
- Create a Widget Blueprint derived from UUserWidget.
- C++
- Derive from UUserWidget and add the UMG module.
CommonUI
Choose when
- The UI is multi-layered or cross-platform.
- Gamepad navigation, input routing, bound actions, or platform glyphs matter.
- Screens need activation stacks and consistent Back behavior.
Tradeoffs
- The project adopts an additional activation and input model.
- Epic does not recommend CommonUI for Widget Components.
- Blueprint
- Use CommonActivatableWidget, CommonUserWidget, and Common button and action widgets.
- C++
- Use CommonUI classes with the CommonUI and CommonInput modules.
Slate
Choose when
- The project is building editor windows or native tools.
- A low-level C++ widget is a better fit than a Widget Blueprint.
Tradeoffs
- Slate uses C++ declarative syntax.
- Designers lose the UMG visual authoring workflow.
- Blueprint
- UMG wraps Slate controls, but Slate widgets are not authored as Widget Blueprints.
- C++
- Build SWidget types and add the Slate and SlateCore modules.
Requirements
UMG and Slate are built in. CommonUI is a Runtime plugin with CommonUI and CommonInput modules and an Enhanced Input dependency.
Example
Use UMG for a PC-only HUD, CommonUI for a console-ready pause and social menu stack, and Slate for an editor plugin window.