Extractioncraft Loot System
Extractioncraft has a layered loot system built on three concepts: content packages reference loot tables, loot tables reference loot pools, and loot pools define the actual items that can drop.
Overview
Content Package
-> chestLootTables / barrelLootTables (weighted selection)
-> Loot Table
-> lootTable entries (each has a chance to roll)
-> Loot Pool
-> eliteMobsLoot / vanillaLoot (weighted selection of one item)
Loot Tables
Loot table configs live in the loot_tables/ folder. Each file defines a list of loot pool entries, where each entry has an independent chance to produce an item.
| Key | Type | Default | Description |
|---|---|---|---|
isEnabled | Boolean | true | Whether this loot table is active |
spawnPools | String list | [] | BetterStructures spawn pool names. When an EliteMob associated with a matching spawn pool is killed, this loot table is used for its drops. |
lootTable | List of objects | [] | Each entry references a loot pool filename and a chance (0.0 to 1.0) |
Loot Table Entry Format
lootTable:
- filename: my_loot_pool.yml
chance: 0.5
- filename: another_pool.yml
chance: 0.2
Each entry rolls independently. A chance of 0.5 means a 50% probability that this pool produces a drop.
Loot Pools
Loot pool configs live in the loot_pools/ folder. Each pool defines a set of possible items. When a pool is rolled, one item is selected based on weighted probability.
| Key | Type | Default | Description |
|---|---|---|---|
isEnabled | Boolean | true | Whether this loot pool is active |
eliteMobsLoot | List of objects | [] | EliteMobs custom items that can drop |
vanillaLoot | List of objects | [] | Vanilla Minecraft items that can drop |
EliteMobs Loot Entry
eliteMobsLoot:
- filename: my_elite_item.yml
weight: 1.0
- filename: another_item.yml
weight: 0.5
The filename references an EliteMobs custom item config. The weight determines relative drop probability among all entries in the pool.
Vanilla Loot Entry
vanillaLoot:
- material: DIAMOND
weight: 1.0
- material: GOLD_INGOT
weight: 2.0
The material is a Bukkit Material enum name. The weight works the same as for elite loot entries. All elite and vanilla entries in a pool compete in a single weighted selection.
Container Loot (Chests and Barrels)
During a match, chests and barrels are placed by BetterStructures. When a player right-clicks a chest or barrel:
- The player must stand still for 3 seconds while the container opens.
- Moving cancels the interaction.
- On success, one loot table is selected from the content package's
chestLootTablesorbarrelLootTableslist (weighted selection). - The selected loot table's entries each roll independently, and resulting items drop at the container's location.
- The container is destroyed after looting (replaced with air).
Containers display portal particles every 10 ticks while active in a match, making them visible to players.
Mob Kill Loot
When an EliteMob dies during a match, the plugin checks its BetterStructures spawn pool. Any loot table whose spawnPools list contains the mob's spawn pool will generate drops at the mob's death location. The mob's level is passed to EliteMobs for level-appropriate item generation.
Item Behavior on Extraction
- Players who successfully extract keep all items. Items in their inventory are soulbound (using EliteMobs soulbind enchantment) on exit.
- Players who fail to extract (leave, disconnect, or are caught by the world border) lose all inventory items when
deleteItemsOnFailToExtractistrueinconfig.yml.