Skip to main content

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.

KeyTypeDefaultDescription
isEnabledBooleantrueWhether this loot table is active
spawnPoolsString list[]BetterStructures spawn pool names. When an EliteMob associated with a matching spawn pool is killed, this loot table is used for its drops.
lootTableList 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.

KeyTypeDefaultDescription
isEnabledBooleantrueWhether this loot pool is active
eliteMobsLootList of objects[]EliteMobs custom items that can drop
vanillaLootList 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:

  1. The player must stand still for 3 seconds while the container opens.
  2. Moving cancels the interaction.
  3. On success, one loot table is selected from the content package's chestLootTables or barrelLootTables list (weighted selection).
  4. The selected loot table's entries each roll independently, and resulting items drop at the container's location.
  5. 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 deleteItemsOnFailToExtract is true in config.yml.