Skip to main content

Widget and UI Reference

Frame and Entry​

UUW_InventoryFrame resolves a component using the owning player's Pawn and InventoryIdentityTag. It loads InventoryEntryClass, binds slot delegates and maps SlotID to entry widgets. UUW_InventoryEntry resolves the master, copies payload tags, loads slot/tooltip assets and displays item name, icon and quantity. Both use required BindWidget fields listed in Header Reference.

Entry bindingType
SizeBox_0, SizeBox_1SizeBox
Background_0Border
HorizontalBox_0HorizontalBox
IMG_ItemImage
T_ItemName, T_QuantityTextBlock

Native entry InitAfterBPConstruction currently has no active implementation. SetSlotDataVisuals is the BlueprintCallable method that assigns visuals after SlotData is available; GetToolTipWidget creates the configured tooltip class.


Tooltips and Controls​

UUW_InventoryToolTip loads description data and uses the configured input/widget maps to present controls. Its required bindings are SizeBox_0, Background_1, Background_2, VerticalBox_1, T_ItemName, WidgetSwitcher_1, T_ItemDescription, LoadingThrobber and HB_Controls. SetWidgetVisuals and InitAfterBPConstruction are BlueprintCallable.

UUW_DragDropIcon is a presentation widget with native configuration/bindings. The current DragDetected helper uses the source entry's image as DefaultDragVisual; existence of the example icon asset does not imply that all drag routes instantiate it.


Prediction and Refresh Limits​

The frame keeps PredictedSlots with Remove/Move types and can hide a widget on a drop. OnSlotRemoved clears prediction; OnSlotUpdated can recreate a predicted Remove widget. Move restoration and rejection without any replicated change are not complete reconciliation contracts. This is visual prediction, not client-authoritative inventory mutation.

Native OnDrop checks less than hover acceptance, and native frame CanAcceptPayload returns true. Never use UI acceptance as server validation. For repeated refreshes, verify ScrollBox children and map consistency; InitAfterBPConstruction empties the map without fully clearing existing children.

Entry async setup can fail when the master is not indexed yet. UpdateSlotData also adds a dynamic delegate again without the same remove-before-add pattern used in NativeConstruct. Test repeated updates, closing/reopening and delayed loads. See Replication Flow and Implementation Limits.