# Open World List Inventory

> The Open World List inventory style, as in Skyrim: one sorted list with room for everything, a category column by item kind, weight that stops the character past a limit, and no belt.

Markdown version of https://rigbak.com/docs/universal-player-combat/inventory-open-world-list, a page of the Universal Player Combat documentation. Link that page when citing it.

## Set it up (3 minutes)

1. **Set the config**

   On `BP_UPC_Character` (or your own), set the **InventoryComponent** **Config** to `Demo/Items/Inventory/InventoryConfig_UPC_OpenWorldList`.
2. **Press Play and take everything**

   Take the swords and shield off the weapon rack in `LVL_UPC_Demo` and press **F** at the loot chest. Nothing is refused and nothing goes on a belt.
3. **Open the satchel**

   Press **I** (or tap View). The list opens on **All**, weapons first, with the first item's card over the weight bar. A category, or LB and RB, narrows it.

At a loot chest or a stash box, its items (at a stash box, your own stash) show in a panel on the right with the same categories. Move between the lists with the arrows or the D-pad, and press E to take or store.

To make it your own, duplicate the config and `Container_UPC_Satchel` into your own folder, point the config copy's Satchel row **Definition** at your satchel copy, and set the config copy as **Config**. The screens component opens this screen for any config it does not list, so the copy needs no row in **Inventory Screen Classes**.

---

## What it holds

| Row or setting | Does |
| --- | --- |
| **Satchel** | A list with no size: every add fits. |
| **Weight Limit** | 60, refusing nothing; at a load of 60 or more the character holds `UPC.State.Overburdened`. |
| **Valuables** | Blueprint carry rule: an item worth 100 gold or more (the demo necklace, 150) puts `UPC.State.CarryingValuables` on the character. |
| **Stash** | Your own 30-slot stash, listed by all three demo styles, reached at a stash box. |
| **Pouches** | No container here opens bags, so a pouch's items stay out of reach. |
| **Sort Order** | Weapons, off-hand items, apparel, consumables, ingredients; by name within a kind, unlisted kinds last (a key, a herb, a potion, a helmet and a sword list as sword, helmet, potion, herb, key). An item's kind is the tag in its **Slot Tags**, such as `UPC.Slot.Weapon`. |
| **Combine Sets** | `CombineSet_UPC_Demo` ([Combines](https://rigbak.com/docs/universal-player-combat/inventory-combines)). |
| **Equip At Once**, **Put Away At Once**, **Combine At Once** | On: what the screen does lands at once, with no animation or wait. |
| **Has Belt** | Off: no belt while this style is used. A weapon equipped from the list stays in hand, and G drops it ([Quick Bar](https://rigbak.com/docs/universal-player-combat/quick-bar#a-belt-an-inventory-config-names)). |

The demo character answers Overburdened itself: its **UPC Speed Modifier** scales walking to 0 for `UPC.State.Overburdened` and its **UPC Sprint** lists it in **Blocked Tags**. Yours needs both ([Sprint and Speed](https://rigbak.com/docs/universal-player-combat/sprint-and-speed)).

---

## Change it

| To | Change |
| --- | --- |
| Refuse items past the limit | Tick **Refuse Over Limit** on the Weight Limit. |
| Sort by another order | Reorder **Sort Order** (move `UPC.Slot.Ingredient` above `UPC.Slot.Consumable` to list ingredients first); an item sorts under the first entry its **Slot Tags** match. |
| Value items differently | Change each item's **Gold Value** **Value** and the Valuables rule's **Threshold** on the config; remove the rule from **Carry Rules** to drop the tag. |
| Give the list a belt as favorites | Tick **Has Belt** on your copy of the config. The controller's belt comes back (the demo's diamond, unless **Belt Slots** names others), adding an **On Belt** category, the **Add to belt** action (F, or Y on a gamepad) and the 1 to 4 keys on the screen and HUD. |
| Hang the satchel's weapons on the character's body | Tick **Show Carried Items On Body**. |
| Wait for a draw or a combine | Untick **Equip At Once**, **Put Away At Once** or **Combine At Once** ([Containers and Rules](https://rigbak.com/docs/universal-player-combat/inventory-containers#combine-sets-and-timing)). |

<details>
<summary>Sort, categories and worth (Advanced)</summary>

- The kinds are the `UPC.Slot` hierarchy the belt reads too ([every demo item's kind](https://rigbak.com/docs/universal-player-combat/inventory-pick-what-you-need#a-belt-and-nothing-else)).
- The screen draws the satchel in that order through **Get Items in Sort Order**. **Request Sort** with `UPC.Inventory.Container.Satchel` lays the items out in that order, for a screen that shows place order.
- A category is a filter the screen applies as it draws: it keeps items whose Slot Tags hold the category's kind (**Has Tag**, not exact, so `UPC.Slot.Weapon` keeps swords and the baton). **Category Rows** give All, Weapons, Off Hand, Apparel, Consumables, Ingredients and Other (what no other row takes), plus On Belt (**Belt Only**) while the player has a belt. A kind of your own goes on its items' Slot Tags and in Sort Order, and shows under Other until your copy of the screen gives it a Category Rows entry.
- The weight bar reads **Get Weight** (empty scope) beside the rule's **Get Effective Limit** and redraws on **On Carry Changed**.
- Worth comes from the Blueprint fragment **Gold Value** ([Inventory Rules and Combines in Blueprint](https://rigbak.com/docs/universal-player-combat/inventory-blueprint)).

</details>

<details>
<summary>The demo</summary>

**Details panel: InventoryConfig_UPC_OpenWorldList** (data asset, in Content Browser)

**Category: Containers**

| Property | Value |
| --- | --- |
| Containers | 2 Array elements |
| Containers > Index [0] > Container | UPC.Inventory.Container.Satchel |
| Containers > Index [0] > Definition | Container_UPC_Satchel |
| Containers > Index [1] > Container | UPC.Inventory.Container.Stash |
| Containers > Index [1] > Definition | Container_UPC_Stash |

**Category: Rules**

| Property | Value |
| --- | --- |
| Carry Rules | 2 Array elements |
| Carry Rules > Index [0] | Weight Limit |
| Carry Rules > Index [0] > Limit | 60 |
| Carry Rules > Index [0] > Capacity Tag | None |
| Carry Rules > Index [0] > Refuse Over Limit | false |
| Carry Rules > Index [0] > Thresholds | 1 Array element |
| Carry Rules > Index [0] > Thresholds > Index [0] > Fraction | 1 |
| Carry Rules > Index [0] > Thresholds > Index [0] > Tag | UPC.State.Overburdened |
| Carry Rules > Index [1] | BP_UPC_InventoryRule_Valuables |
| Carry Rules > Index [1] > Threshold | 100 |
| Carry Rules > Index [1] > Status Tag | UPC.State.CarryingValuables |

**Category: Combines**

| Property | Value |
| --- | --- |
| Combine Sets | 1 Array element |
| Combine Sets > Index [0] | CombineSet_UPC_Demo |

**Category: Held Items**

| Property | Value |
| --- | --- |
| Belt Space | Keeps Its Place |
| Equipped Space | Keeps Its Place |
| Has Belt | false |
| Belt Slots | 0 Array elements (greyed out) |
| Swap When Full | false |

**Category: Body**

| Property | Value |
| --- | --- |
| Show Carried Items On Body | false |

**Category: Sorting**

| Property | Value |
| --- | --- |
| Sort Order | 5 Array elements |
| Sort Order > Index [0] | UPC.Slot.Weapon |
| Sort Order > Index [1] | UPC.Slot.OffHand |
| Sort Order > Index [2] | UPC.Slot.Apparel |
| Sort Order > Index [3] | UPC.Slot.Consumable |
| Sort Order > Index [4] | UPC.Slot.Ingredient |

**Category: Timing**

| Property | Value |
| --- | --- |
| Equip At Once | true |
| Draw Timing > Seconds | 0.2 (folded until clicked) |
| Draw Timing > Start Sound | None (folded until clicked) |
| Draw Timing > Commit Sound | None (folded until clicked) |
| Draw Timing > Cancel on Move | false (folded until clicked) |
| Put Away At Once | true |
| Stow Timing > Seconds | 0.2 (folded until clicked) |
| Stow Timing > Start Sound | None (folded until clicked) |
| Stow Timing > Commit Sound | None (folded until clicked) |
| Stow Timing > Cancel on Move | false (folded until clicked) |
| Combine At Once | true |

*An open world list: one satchel with no size and the stash, a weight limit of 60 that refuses nothing and puts Overburdened on the character, the Valuables rule, and a sort by item kind.*

The One List pad in the wardrobe hall switches the player to this style and starts it with the sword and the shield in hand.

</details>

<details>
<summary>What runs where (Multiplayer)</summary>

- **Request Sort** goes to the server; the owning player sees the new order about a round trip later. `UPC.State.Overburdened` and `UPC.State.CarryingValuables` reach every machine through the character's ability system.

</details>

---

Previous page: [Party RPG Inventory](https://rigbak.com/docs/universal-player-combat/inventory-party-rpg). Next page: [Containers and Rules](https://rigbak.com/docs/universal-player-combat/inventory-containers)
