MAEngine

Widget

Native UMG widgets with ViewModel binding

Widget

Status: Coming Soon - Native Widget support is planned for a future release.

Availability: Client Only

The Widget system will provide access to Unreal's native UMG (Unreal Motion Graphics) widgets with Lua bindings and Store integration.


Planned Features

Native UMG Widgets

Create and manipulate native Unreal widgets from Lua:

-- Planned API (subject to change)
local button = Widget.Create("Button")
button:SetText("Click Me")
button:SetPosition(100, 100)
button:SetSize(200, 50)

button:On("Clicked", function()
    Log("Button was clicked!")
end)

Store Integration

Widgets will integrate with Store for reactive data binding:

-- Planned API (subject to change)
local healthBar = Widget.Create("ProgressBar")
healthBar:BindStore("player.health", function(value)
    return value / 100  -- Progress bars use 0-1 range
end)

Blueprint Widget Support

Load and interact with Blueprint-designed widgets:

-- Planned API (subject to change)
local inventory = Widget.LoadBlueprint("WBP_Inventory")
inventory:Show()

-- Access named widgets from Blueprint
local slotGrid = inventory:GetWidget("SlotGrid")
slotGrid:SetSlots(playerInventory)

Use Cases

  • Native Performance - UMG widgets render at native speed
  • Designer Workflow - Artists can design UIs in UMG Editor
  • Complex Widgets - Rich components like ScrollBox, TreeView, ListView
  • Platform Features - Virtual keyboard, focus navigation, accessibility

Comparison with Other UI Systems

AspectWidgetRmlUIWebUI
Design ToolUMG EditorText filesBrowser devtools
Hot ReloadRequires recompileYesYes
PerformanceExcellentExcellentGood
FlexibilityLowMediumHigh
Learning CurveUE knowledgeHTML/CSSWeb dev

Timeline

Widget support will be implemented after the RmlUI Lua API is complete. Stay tuned for updates.

On this page