Skip to content

Your first InterfaceForge screen ​

Start with the step-by-step visual route: exact locations, real Designer/graph images and expected results. This page supplies the detailed contract/reference.

Start with the installation setup: enable InterfaceForge/CommonUI/EnhancedInput, use CommonGameViewportClient, select IFNavigationInputData, and set Common Button Accept Key Handling to Trigger Click. The plugin's core does not require an example controller, MassForge or inventory.

Create and display a screen ​

  1. Create a Widget Blueprint named WBP_MyMenu, with parent IFScreen. In class defaults set Input Policy = Menu.
  2. Add a Vertical Box and an IFButton. Set its label to Continue. Keep it enabled and focusable.
  3. In Event On Initialized, set Initial Focus to the button instance. Conditional focus can use CommonUI's desired-focus override.
  4. In your local PlayerController's Event BeginPlay, use Get Local Player Subsystem, choosing IFLocalPlayerSubsystem. Call Create Root, class IFRootLayout, then Push Screen, layer Menu, class WBP_MyMenu. Data can be None for this first screen.
  5. Bind the button's On Button Base Clicked to your own action. For a first check, Print String confirms activation in development. Use Deactivate Widget when the screen should close.
flowchart LR
    A[PlayerController: Event BeginPlay] --> B[Get Local Player Subsystem: IFLocalPlayerSubsystem]
    B --> C[Create Root: IFRootLayout]
    C --> D[Push Screen: Menu / WBP_MyMenu / Data None]

Expected: the menu sits in a local-player-owned safe-area root. Keyboard navigation focuses the button; Enter activates it with the configured CommonUI acceptance policy. Go Back closes the top back-handling screen. A main menu that must remain present should override On Handle Back Action and open a confirmation instead; the saved menu recipe demonstrates this.

Add project styling and input presentation ​

Create an IFTheme data asset and call Set Theme on the same local-player subsystem. Change Surface/Text/Accent, Body Font, padding, sounds and transition duration. The themed controls update without replacing their trees. A control's Theme Override plus Refresh Appearance supplies a local variation.

In your screen implement On Input Presentation Updated to change hints or layout for Pointer, Keyboard, Gamepad or Touch. The shared detector already observes intent; do not add one detector per button. Input switching and glyphs explain remapping-aware prompts and project controller data. Physical controller and touch hardware remain unverified.

Move from the first button to a game interface ​

Use Push Screen on HUD for your gameplay screen and on Modal for dialogs. Supply an object implementing IFDataSource as screen Data. Its Get UI Model returns presentation objects; Request UI Action delegates validated commands to your game. This keeps rules outside the UI plugin.

The Watchpost survey is a saved custom Blueprint screen, entry and source using this exact contract. Playable interface routes covers the RTS/RPG examples. Settings adds real preview/Apply/Cancel/defaults without inventing a second game-settings framework.

If the button does not activate, check the viewport class, input data, accept-key policy, enabled state and Initial Focus. If Screen Data disappears in an override, call parent Initialize Screen first.

UIForge v0.1.0 · Blueprint and C++ development documentation.

Enlarged documentation image

Enlarged documentation image