Changes for page Looting System

Last modified by Alexandros Mloukie on 2026/01/26 19:12

From version 3.1
edited by Alexandros Mloukie
on 2026/01/20 01:56
Change comment: Deleted image "slice1.png"
To version 15.2
edited by Alexandros Mloukie
on 2026/01/26 16:23
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -4,26 +4,50 @@
4 4  
5 5  ----
6 6  
7 -= 1 - Looting Process =
7 +(% class="wikigeneratedid" %)
8 +[[image:Looting Manual.png]]
8 8  
9 -== 1.1 - Enemy Inventory ==
10 += 1 - Enemy Inventory =
10 10  
11 -For looting to be possible, the enemies need to have their own inventory components, similar to the ones the player has. This inventory also has to be populated with the enemy drops, which must be **changeable later using a designer-friendly approach**.
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.
12 12  
13 -{{info}}
14 -My suggestion would be the use of a Data Table, where each enemy will have an entry that holds an array of ItemStacks. The appropriate Data Table entry is then used on the enemy's to populate the enemy inventory.
15 -{{/info}}
14 +== 1.1 - Enemy Loot Data Table{{id name="lootingStruct"/}} ==
16 16  
17 -== 1.2 - Loot Display ==
16 +The loot entries struct that will fill the {{success}}Loot Data Table{{/success}} will be in the following form:
18 18  
19 -When interacting with the corpse of an enemy to loot them, both the player and enemy inventories must be displayed side by side:
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%)
20 20  
21 -[[image:slice1.png||data-xwiki-image-style-border="true" height="319" width="561"]]
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.
22 22  
23 -== 1.3 - Item Movement ==
25 +----
24 24  
25 -With the looting engaged, the player can now move items from the enemy's inventory to their own. Items are only moved if they can fit in the inventory.
27 += 2 - Looting Interaction =
26 26  
27 -* Should the player attempt to move an item but ends the interaction with the enemy corpse, the item is not moved and retains its original place on the enemy's inventory.
28 -* Items cannot be moved from the player's inventory to that of the enemy's. One-way only.
29 -* Items cannot be placed onto the toolbar directly from the enemy inventory.
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 +== 2.3 - Interaction Cancellation ==
45 +
46 +The looting interaction can be cancelled due to a variety of circumstances:
47 +
48 +* Player death while interacting
49 +* The corpse or player moving out of interaction range
50 +* Pressing the button to end the interaction while an item is being dragged by the mouse but not yet dropped somewhere
51 +* and other such edge cases.
52 +
53 +Should the looting get cancelled for **any** reason, then __any item(s) currently being held by the mouse are automatically moved back to their previous positions__. In essence, an item is moved from one inventory to another **only** when the drag & drop process has been successfully completed.
Looting Manual.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.AlexandrosMloukie
Size
... ... @@ -1,0 +1,1 @@
1 +8.0 MB
Content