> For the complete documentation index, see [llms.txt](https://roogame.gitbook.io/roogame/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://roogame.gitbook.io/roogame/roo-gameplay-framework/inventory-and-equipment/inventory-ui-and-drag-and-drop.md).

# Inventory UI and Drag and Drop

The plugin supplies C++ UserWidget base classes for inventory slots, equipment slots, drag visuals, and drag operations. Visual layout remains Blueprint-owned.

## Inventory slot widget

Create a Widget Blueprint derived from Roo Inventory Slot Widget.

Optional bound widgets:

```
BackgroundImage
ItemIconImage
```

Initialize with Inventory Component and Slot Index, or register it through the component.

Blueprint event:

* On Inventory Slot Refreshed(Item Instance, Has Item)

Useful requests:

* Request Move From Inventory Slot
* Request Unequip To This Slot
* Request Equip To

Drag settings:

* Allow Drag Out
* Allow Drop In

## Equipment slot widget

Create a Widget Blueprint derived from Roo Equipment Slot Widget.

Configure:

* Equipment Slot Index
* Slot Tag
* Accepted Type Tag
* Allow Drag In
* Allow Drag Out

Blueprint event:

* On Equipment Slot Refreshed(Item Instance, Has Item)

Requests:

* Request Equip From Inventory Slot
* Request Equip By Instance
* Request Unequip
* Can Accept Item

## Drag visual

Create a Widget Blueprint derived from Roo Inventory Drag Visual Widget. Add an optional ItemIconImage, then register the instance with Roo Inventory Component.

The component prepares and refreshes the visual when a supported slot starts dragging.

## Registration

Use:

* Register Inventory Slot Widget
* Register Inventory Slot Widget Auto
* Register Equipment Slot Widget
* Register Drag Visual Widget
* Refresh Registered Widgets

Unregister widgets when your UI lifecycle requires it.
