Interfaces
The runtime uses Unreal interfaces and BlueprintNativeEvent methods. Native calls use the generated Execute_ functions so Blueprint overrides participate. Exact declarations and Blueprint exposure are in Header Reference.
| Interface | Role |
|---|---|
| I_InventoryManagerListener | Component identity/access, capacity queries, item/slot add/remove, SetSlot and SplitSlot |
| I_FastArrayListener | Array and slot receive notifications |
| I_InventoryDragTarget | CanStartDrag, CreateDragPayload, source tag and item image |
| I_InventoryDropTarget | CanAcceptPayload, target tag/item identity and highlight |
| I_DragDropOperation | Source inventory and payload access |
| I_InventoryPayload | Payload inventory snapshot and tags |
| I_InventoryEntryListener | GetSlotData from a presentation asset |
| I_InventoryFrameListener | Entry update contract |
| I_InventoryInterfaceCallbacks | DragDropRemoveCallback source/target tag, slot and amount contract |
| I_LootboxData | Empty interface scaffold in the current source |
Interface implementation does not itself provide RPC ownership, permission checks or atomic behavior. The component's low-level methods rely on the caller to validate many conditions. Custom implementations must preserve dirty marking, quantity accounting, stable entry identity and the server boundary.
The public headers also contain native overrides/internal methods that are not general Blueprint nodes. Do not assume that a public C++ method or UFUNCTION without BlueprintCallable/BlueprintPure can be invoked as an ordinary Blueprint operation.