Party RPG Inventory

Documentation Unreal Engine Player Combat Inventory

The Party RPG inventory style: a backpack with no size that slows the character as it fills, pouches with slots of their own, worn gear on a paper doll, a belt of four slots in a row and a stash.


Set it up

5 minutes
  1. 1

    Copy it with a low limit

    Duplicate Demo/Items/Inventory/InventoryConfig_UPC_PartyRPG as InventoryConfig_MyParty and set its Carry Rules Weight Limit Limit to 10. Set the copy as Config on BP_UPC_Character's InventoryComponent, and add it to Inventory Screen Classes on BP_UPC_PlayerController's InventoryScreens component with WBP_UPC_InventoryScreen_PartyRPG.
    InventoryConfig_MyParty
    ▾Rules
    ▾Weight Limit
    Limit60
    The Encumbered and Heavily Encumbered thresholds stay at 0.7 and 1 of the limit, 7 and 10 here.
  2. 2

    Press Play and take the rack's weapons

    Press Play in LVL_UPC_Demo and take the swords and shield off the weapon rack. Two swords weigh 8 of 10, past seven tenths of the limit: the character is Encumbered, walks at 85 percent and cannot sprint. The shield brings it to 14 and Heavily Encumbered too: it stands still until it drops something.
  3. 3

    Open the screen

    Press I (or tap View). The weight bar marks seven tenths of the limit and the limit.

What it holds

Row or settingDoes
BackpackUnsized list, so space never refuses an item. Opens Bags is on: a pouch opens its own slots as it lands (Bags and Banks).
StashThirty slots off the character, reached only while it holds UPC.State.AtStash.
Weight LimitShipped at 60, refusing nothing: at 0.7 of it UPC.State.Encumbered, at 60 UPC.State.HeavilyEncumbered too.
Equipped Space, Belt SpaceFrees Its Place: worn gear and belt items leave the backpack but their weight still counts.
Belt SlotsFour slots in a row, in place of the diamond. Each takes any item, but the screens put on the row only what its key would draw, put on or use: the ring, not arrows, poison or a pouch (Quick Bar).
Combine SetsCombineSet_UPC_Demo: poison onto arrows or a weapon, rounds into a magazine (Combines).
Equip At Once, Put Away At Once, Combine At OnceOn: what the screen does lands at once, with no animation or wait.
The demo character answers the weight tags itself. On your own, add the two components from Sprint and Speed if missing, set the UPC Speed Modifier's Speed Scale by Tag to UPC.State.Encumbered 0.85 and UPC.State.HeavilyEncumbered 0, and add UPC.State.Encumbered to the UPC Sprint Blocked Tags.

Change it

ToChange
Refuse items past the limitTick Refuse Over Limit on the Weight Limit.
Let an item raise the limitSet the Weight Limit's Capacity Tag to a tag of your own, such as Capacity.Strength, and give the item a Capacity Bonus fragment with a Bonuses row naming that tag and an Amount, such as 20: while the character owns it, the limit grows by 20.
Change how much each tier slowsSpeed Scale by Tag on the character's UPC Speed Modifier.
Open pouches only on a bag barDuplicate Container_UPC_Backpack, set the config copy's backpack row Definition to it, untick Opens Bags and add a bag bar row (Bags and Banks); the shipped screens draw no bag bar.
Keep worn gear and belted items in the backpackEquipped Space and Belt Space to Keeps Its Place.
Go back to the diamond beltClear Belt Slots.
Hang all carried weapons on the bodyTick Show Carried Items On Body.
Wait for a draw or a combineUntick Equip At Once or Combine At Once (Containers and Rules).
Show other body places on the dollEdit Places on WBP_UPC_PaperDoll or your copy (Inventory Screens).
AdvancedWeight in detail
  • The Weight Limit weighs everything carried (Weight fragment times count); the stash weighs nothing.
  • The tags sit on the character's ability system, where a speed scale, a sprint's Blocked Tags or a move's transition reads them. A weight bar reads Get Weight with an empty scope beside the rule's Get Effective Limit, and redraws on On Carry Changed.
  • A carry rule reading something outside the inventory needs Refresh Limits called when that value changes (Inventory Rules and Combines in Blueprint).
Demo itemWeight
Two-handed baton8
Shield6
Sword4
Helmet3
Shoulder cape2
Potion, necklace, pouch, poison0.5
The demo
Details
InventoryConfig_UPC_PartyRPG
Containers
Containers
2 Array elements
Index [ 0 ]
Container
UPC.Inventory.Container.Backpack
Definition
Container_UPC_Backpack
Index [ 1 ]
Container
UPC.Inventory.Container.Stash
Definition
Container_UPC_Stash
Rules
Carry Rules
1 Array element
Index [ 0 ]
Weight Limit
Limit
60
Capacity Tag
None
Refuse Over Limit
Thresholds
2 Array elements
Index [ 0 ]
Fraction
0.7
Tag
UPC.State.Encumbered
Index [ 1 ]
Fraction
1
Tag
UPC.State.HeavilyEncumbered
Combines
Combine Sets
1 Array element
Index [ 0 ]
CombineSet_UPC_Demo
Held Items
Belt Space
Frees Its Place
Equipped Space
Frees Its Place
Has Belt
Belt Slots
4 Array elements
Index [ 0 ]
None
Index [ 1 ]
None
Index [ 2 ]
None
Index [ 3 ]
None
Swap When Full
Body
Show Carried Items On Body
Sorting
Sort Order
0 Array elements
Timing
Equip At Once
Draw Timing
Seconds
0.2
Start Sound
None
Commit Sound
None
Cancel on Move
Put Away At Once
Stow Timing
Seconds
0.2
Start Sound
None
Commit Sound
None
Cancel on Move
Combine At Once
A party RPG inventory: a backpack with no size where pouches open, a stash the character reaches only while it holds UPC.State.AtStash, a weight limit of 60 that refuses nothing and puts Encumbered and Heavily Encumbered on the character, and a belt of four slots that take any item.
  • Item_UPC_Pouch opens Container_UPC_Pouch; the screen shows one pouch's slots at a time after the backpack.
  • WBP_UPC_PaperDoll shows what BP_UPC_Character wears and holds. The party kit fills the belt row with potion, sword, shield and a ring (its key puts it on and off).
  • Coat Weapon gives a weapon three poisoned strikes in its UPC.Inventory.Stat.Poisoned stat tag, and turns the next flask down while the weapon is still coated. Your damage code reads and spends the tag; the plugin only counts the strikes (Inventory Rules and Combines in Blueprint).
  • A BP_UPC_StorageBox with its Access Tag set to UPC.State.AtStash serves as the stash, as for the survival grid; LVL_UPC_Wardrobe_Hall places one that serves every style. A chest the whole party sees is a loot chest, as the hallway's BP_UPC_LootChest.
MultiplayerWhat runs where
  • The server keeps the weight tags on the character as one gameplay effect; every machine sees them about half a round trip later and works the slow out itself, so no speed is sent.