Wiki source code of Looting System

Version 12.2 by Alexandros Mloukie on 2026/01/21 17:40

Show last authors
1 = 0 - Introduction =
2
3 The purpose of this document is to give a more detailed explanation on how Looting would work in the Mawforged MVP. Note that changes can be made to this system in the final game. Should the assigned programmer need any more information, contact {{mention reference="XWiki.AlexandrosMloukie" style="FULL_NAME" anchor="XWiki-AlexandrosMloukie-9xtdtf"/}} .
4
5 ----
6
7 (% class="wikigeneratedid" %)
8 [[image:Looting Manual.png]]
9
10 = 1 - Enemy Inventory =
11
12 Every enemy in the game needs to have access to their very own inventory. This can probably use the {{info}}MAWInventoryComponent{{/info}} already used for the player, though there are gonna be some extra things to it so a new component might be needed. The inventory will be populated with items on __enemy spawn__ instead of on-death. The items that will occupy the inventory will be defined through a {{success}}Data Table{{/success}}, so designers can easily tweak values later on.
13
14 == 1.1 - Enemy Loot Data Table ==
15
16 The loot entries struct that will fill the {{success}}Loot Data Table{{/success}} will be in the following form:
17
18 (% class="table-bordered" %)
19 (% class="active" %)|=(% style="width: 140px;" %)Variable|=(% style="width: 170px;" %)Type|=(% style="width: 852px;" %)Description
20 |(% style="width:140px" %)Item|(% style="width:170px" %){{info}}FMAWItemStack{{/info}}|(% style="width:852px" %)The item and amount that will be added to the enemy inventory.
21 |(% style="width:140px" %)DropWeight|(% style="width:170px" %){{success}}float{{/success}}|(% style="width:852px" %)The chance that this item will be added to the enemy inventory. The value must be between 0 and 1 (mapped to 0% - 100%)
22
23 The enemy uses a {{info}}[[Data Table Row Handle>>https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/FDataTableRowHandle]]{{/info}} to define which entry in the Data Table they will be using to populate their inventory.
24
25 ----
26
27 = 2 - Looting Interaction =
28
29 == 2.1 - Staring the Interaction ==
30
31 To start looting a target, the player must be within __interaction range__// //of the enemy's corpse, and press the interaction button while looking at said corpse. Once these actions have been completed, the player is presented with the {{warning}}Looting UI{{/warning}} which displays both the player's and the enemy's inventories side by side.
32
33 == 2.2 - Moving Items ==
34
35 The player can move items from one inventory to another by __Dragging & Dropping__ the desired item. The looting interaction has 2 types based on the container being looted:
36
37 (% class="table-bordered" %)
38 (% class="active" %)|=Container Type|=Interaction Style
39 |One-Way (e.g. Enemy Corpse)|The player can only move items from the enemy's inventory to their own and **not** the other way around.
40 |Two-Way (e.g. Chest)|The player can move items between **both** inventories, allowing them to off-load items if they wish to in this container.
41
42 Attempting to move an item from one inventory to another, is successful only if that item has enough space in the area of the inventory it has been dropped off.
43
44 (% class="box warningmessage" %)
45 (((
46 Should the looting get cancelled for **any** reason, then any items currently being held by the mouse are automatically moved back to their previous positions. In essence, an item is moved **only** when the drag & drop process has been successfully completed.
47 )))