🎲 loot.yml Reference

Time to get creative! The loot.yml file is where you customize what players get from vaults. Want to rain diamonds? Give economy rewards? Drop custom items from other plugins? This is your playground.

circle-info

Location: plugins/TrialChamberPro/loot.yml

After making changes, reload with /tcp reload

triangle-exclamation

---

🎯 Understanding Loot Tables

A loot table is a collection of possible rewards. When a player opens a vault, the plugin:

  1. Rolls between min-rolls and max-rolls times

  2. Each roll picks ONE item from weighted-items based on weight

  3. Adds all guaranteed-items (these ALWAYS drop)

  4. Gives everything to the player

Think of it like rolling dice—higher weight = bigger section of the die.


📦 Loot Table Structure

min-rolls / max-rolls

How many times to randomly pick from weighted-items. A random number between min and max is chosen.

Examples:

  • min-rolls: 3 + max-rolls: 5 = Player gets 3-5 random items

  • min-rolls: 1 + max-rolls: 1 = Player gets exactly 1 item (hardcore mode!)

  • min-rolls: 10 + max-rolls: 15 = Loot explosion

    circle-exclamation

    ---

🎱 Multi-Pool Loot System (NEW!)

Like vanilla Trial Chambers, you can now create multiple loot pools that each roll independently! This gives you much finer control over loot distribution.

Why Use Multiple Pools?

Vanilla Minecraft vaults use 3 separate pools:

  • Common pool: Always gives 2-3 basic items (iron, gold, arrows)

  • Rare pool: Gives 1-2 valuable items (diamonds, enchanted books)

  • Unique pool: 0-1 chance at special items (enchanted golden apples, heavy core)

Benefits:

  • More predictable loot - Players always get common items + chance at rare/unique

  • Better progression - Separate rare items from common items

  • Matches vanilla - Feels like the real Trial Chambers

  • Flexible design - Can have pools with min-rolls: 0 for bonus items

Multi-Pool Example

How it works:

  1. Player opens vault

  2. Common pool rolls 2-3 times → always get basic items

  3. Rare pool rolls 1-2 times → get valuable items

  4. Unique pool rolls 0-1 times → might get special item

  5. Total: 3-6 items with good variety!

    circle-info

    Legacy Format Still Works! The old single-pool format (without pools:) is fully supported and will keep working. This is purely optional!

    circle-exclamation

    ### Config Option

Control the maximum number of pools in config.yml:


✨ Item Types

Basic Items

Required fields:

Optional fields:

  • amount-min / amount-max: Stack size range (default: 1)

Items with Custom Names & Lore

Color codes supported! Use & for colors:

  • &0-9, a-f = Colors

  • &l = Bold, &o = Italic, &n = Underline

  • &m = Strikethrough, &k = Magic

Enchanted Items

Enchantments use the format ENCHANTMENT_NAME:LEVEL.

See Spigot Enchantment enumarrow-up-right for names.

Enchanted Books

Pro tip: Give ONLY enchanted books for specific enchants, not enchanted gear. Let players choose what to apply it to!


🔮 Advanced Loot Features (NEW!)

Version 1.1.9+ brings vanilla-style loot customization with full Minecraft 1.21+ support! Create dynamic, randomized loot just like vanilla Trial Chambers.

🏹 Tipped Arrows

Add potion effects to arrows with custom amplifier levels!

Available potion types: SPEED, SLOWNESS, STRENGTH, INSTANT_HEAL, INSTANT_DAMAGE, JUMP_BOOST, REGENERATION, RESISTANCE, FIRE_RESISTANCE, WATER_BREATHING, INVISIBILITY, NIGHT_VISION, WEAKNESS, POISON, WITHER, TURTLE_MASTER, SLOW_FALLING

Examples:

Custom Effect Duration:

The effect-duration field lets you override how long potion effects last. When not specified, durations are automatically calculated from the potion type using vanilla Minecraft multipliers:

Item Type
Auto-Calculated Duration
Multiplier

POTION

Base duration from potion type

1.0× (100%)

SPLASH_POTION

75% of base potion

0.75×

LINGERING_POTION

25% of base potion

0.25×

TIPPED_ARROW

1/8 of base potion

0.125× (12.5%)

Examples with auto-calculation:

  • Speed I Potion (3:00 base) → Tipped Arrow = 22.5s (3:00 ÷ 8)

  • Slowness I Potion (1:30 base) → Tipped Arrow = 11.25s (1:30 ÷ 8)

  • Regeneration I Potion (0:45 base) → Tipped Arrow = 5.625s (0:45 ÷ 8)

  • Poison I Potion (0:45 base) → Tipped Arrow = 5.625s (0:45 ÷ 8)

Manual override: Specify effect-duration: <ticks> to use a custom duration instead of auto-calculation (20 ticks = 1 second)

🧪 Potions with Custom Levels

Create potions with any effect level—perfect for ominous vault rewards!

Works with:

  • POTION - Drinkable potions (3 minute duration)

  • SPLASH_POTION - Throwable (2:15 duration)

  • LINGERING_POTION - Creates cloud (45 second cloud)

Examples:

🌑 Ominous Potions (1.21+ Exclusive)

NEW IN 1.21! Ominous potions are special bottles with extreme effect levels—only available from Trial Chambers in vanilla!

Perfect for ominous vault loot! These are the rarest potions in Minecraft.

Popular ominous potions:

Key Differences: custom-effect-type vs potion-type

Field
Purpose
Examples

potion-type

Standard Minecraft potion effects

SPEED, STRENGTH, POISON, HEALING

custom-effect-type

Special/custom potion effect types

BAD_OMEN, HERO_OF_THE_VILLAGE, GLOWING, LUCK

When to use which:

  • Use potion-type for normal potions (Strength, Speed, Healing, etc.)

  • Use custom-effect-type for special effects not available as PotionType (Bad Omen, Hero of the Village, etc.)

Note: The effect-duration field works with both potion-type and custom-effect-type! Use it to customize how long any potion effect lasts.

circle-exclamation

#### Other Custom Effect Types

You can use custom-effect-type for other special effects:

✨ Enchantment Randomization

Add dynamic enchantments with random levels—just like vanilla treasure loot!

Fixed Level Ranges

Apply enchantments with random levels within a range:

Format: ENCHANTMENT:MIN_LEVEL:MAX_LEVEL

Examples:

Random Enchantment Pool

Pick ONE random enchantment from a pool—great for variety!

Perfect for enchanted books! Each player gets a different random enchantment.

Examples:

Combining Enchantment Features

You can mix fixed enchantments, ranges, and random pools!

🔨 Variable Durability

Drop pre-damaged items with random wear—makes loot feel "used" and realistic!

How it works:

  • durability-min and durability-max are damage values (higher = more damaged)

  • Diamond sword max durability: 1561 (so 200-800 damage = 60-50% durability remaining)

  • Perfect for "treasure" items that feel discovered, not crafted

Examples:

This creates an incredible loot item with:

  • Custom name and lore

  • Always has Unbreaking III

  • Random Sharpness IV or V

  • ONE random bonus enchantment (Looting/Sweeping/Fire Aspect)

  • Random damage (100-300), making it feel "discovered"

Perfect for ominous vault jackpots!


⚖️ Understanding Weights

Weight determines probability. Higher weight = more likely to be picked.

Example Breakdown

Total weight: 10 + 20 + 15 + 55 = 100

Probabilities:

  • Diamond: 10/100 = 10% chance per roll

  • Emerald: 20/100 = 20% chance per roll

  • Iron: 15/100 = 15% chance per roll

  • Coal: 55/100 = 55% chance per roll

    circle-info

    Weights don't need to add to 100! That's just for easy mental math. They're all relative to each other.

    ### Weight Strategies

Common items: High weight (20-50)

Uncommon items: Medium weight (5-20)

Rare items: Low weight (1-5)

Super rare items: Very low weight (0.1-1)


🎁 Guaranteed Items

Items in guaranteed-items ALWAYS drop, regardless of rolls or weight.

Every player gets 1 Golden Apple + 2-4 random items from weighted-items.

Use cases:

  • Participation rewards

  • Event tokens

  • Key fragments (for progression systems)


🌑 Ominous Vault Loot

The ominous-default table is for ominous vaults. Make it WAY better than normal vaults!

Design philosophy:

  • More rolls (5-8 vs 3-5)

  • Better items (netherite, enchanted golden apples)

  • Unique drops (Heavy Core for Mace crafting)

  • Higher amounts (2-4 golden apples vs 1)


💰 Economy Rewards

Got Vault + an economy plugin? Give money as loot!

Placeholders:

  • {player}: Player's name

  • {uuid}: Player's UUID

Multiple commands:

All commands run as console. Perfect for bundles of rewards!


🎨 Custom Plugin Items

ItemsAdder, Oraxen, MMOItems, etc.

TrialChamberPro detects which custom item plugin you're using and fetches the item automatically.

Supported plugins:

  • ItemsAdder

  • Oraxen

  • MMOItems

  • ExecutableItems

  • Nova

    circle-exclamation

    ---

🎯 Example Loot Tables

Beginner-Friendly Server

Generous amounts, guaranteed golden apple, decent diamond rate. Great for keeping new players engaged!


Hardcore/Competitive Server

Stingy! Only 1-2 items, low amounts, rare diamonds. Makes every vault opening feel earned.


Economy-Focused Server

Perfect for servers where money is the primary progression system.


Custom Items + Vanilla Mix

Best of all worlds—custom items, vanilla loot, and special perks.


🔧 Per-Chamber Loot Tables

Want different chambers to drop different loot? You can create multiple tables!

Then use /tcp setloot <chamber> <table> to assign the table to a specific chamber!


💡 Design Tips

Balance Philosophy

Don't make chambers replace mining/gameplay Chambers should supplement progression, not replace it. If vaults drop 64 diamonds, why would players mine?

Reward effort appropriately Chambers require keys and combat. Make rewards better than what players could get from 5 minutes of mining, but not game-breaking.

Progression over time Start conservative. It's easier to buff loot after launch than nerf it (players hate nerfs).

Weight Tuning

Test your tables! Open 20-30 vaults and see if the loot feels right. Use /tcp reset to quickly test.

Check the math:

Adjust based on rolls:

  • More rolls = lower individual weights

  • Fewer rolls = higher individual weights


🎲 Advanced: Conditional Loot (Future Feature)

In future versions, you'll be able to add conditions:

Not available yet, but coming soon!


🔄 Testing Your Loot

Quick Test Cycle

  1. Edit loot.yml

  2. Run /tcp reload

  3. Run /tcp reset TestChamber (forces instant reset)

  4. Open vaults

  5. Check if loot feels right

  6. Repeat!

Statistical Testing

Open 50 vaults, record what you get, calculate actual drop rates. Does it match your intended design?

Example:

  • Wanted diamonds at 10% per roll

  • Got diamonds in 8/50 vaults with 3 rolls each = 8/150 rolls = 5.3%

  • Weights might be off! Double-check total weight calculations


❓ Common Questions

"My loot tables aren't loading / vaults give no loot!" Most likely caused by TAB characters in your YAML file. Check the console for Loot table not found: default (available: ) - if the available list is empty, your entire loot.yml failed to parse. Open the file in an editor that shows whitespace and replace all TABs with spaces. See the warning at the top of this page for more details.

"Can I use NBT data for custom items?" Not directly. Use custom item plugins (ItemsAdder, Oraxen) which handle NBT internally.

"Can different players get different loot from the same vault?" Yes! With per-player-loot: true in config.yml, each player has their own loot roll.

"What happens if I typo a material name?" The plugin logs an error and skips that item. Check console after reloading.

"Can I make loot tables that call other loot tables?" Not currently, but you can work around it with multiple chambers assigned different tables.

"How do I remove an item from vanilla loot?" You can't remove vanilla loot directly—TrialChamberPro replaces vault loot entirely. Just don't include unwanted items in your weighted-items!


💰 COMMAND Rewards (Economy & Permissions)

Want to give players money, permissions, experience, or run any console command when they open vaults? COMMAND rewards let you do exactly that!

How It Works

Command rewards run console commands with a probability (weight-based). They execute alongside regular item drops.

circle-info

Key Point: Command rewards go in a separate command-rewards list, NOT in weighted-items!

### Basic Example

When a player opens a vault:

  1. They get 3-5 random items (from weighted-items)

  2. 25% chance to receive 1000 coins

  3. 10% chance to get a special permission

  4. Player sees message: "&6+1000 Coins" or "&5Special Permission Unlocked!"

Multi-Pool with Bonuses

Separate item drops from bonus rewards using pools:

Player opens vault:

  • Gets 3-5 premium items (diamonds, netherite)

  • Gets exactly 1 bonus (weighted probability):

    • 50% chance: 500 coins

    • 30% chance: 1000 coins

    • 15% chance: 5000 coins + nether star

    • 5% chance: VIP rank + 10000 coins + elytra

Common Examples

Economy Rewards (Vault Plugin)

Permissions (LuckPerms)

Experience & Levels

Items (Vanilla)

Titles & Messages

Combined Rewards

Available Placeholders

  • {player} - Player's name

  • {uuid} - Player's UUID

Example:

Important Notes

circle-exclamation
circle-check
circle-info

Multiple commands execute in order. Great for jackpot rewards that give items + money + permissions!

triangle-exclamation

Required Plugins

"Commands aren't running!"

  • Check console for errors when vault opens

  • Verify command syntax is correct (test in console manually)

  • Ensure required plugins (Vault, LuckPerms) are installed

"Getting 'type: COMMAND is not valid' error"

  • You're using the wrong format! Don't put commands in weighted-items

  • Use command-rewards list instead (see examples above)

"Player gets no message"

  • Make sure display-name is set

  • Check if commands are actually executing (console logs)

  • Weight might be too low (increase for testing)

"Economy commands don't work"

  • Vault plugin required for eco commands

  • Need an economy plugin (EssentialsX, CMI, etc.) alongside Vault

  • Test command manually in console: /eco give PlayerName 1000


🎯 What's Next?

Now that you've mastered loot configuration, check out:

Customize all player-facing messages to match your server's style.Hands-on guide to creating themed loot tables with examples.


💎 Pro Tips

circle-check
circle-info

Seasonal events: Copy your loot.yml, modify it for the event (Halloween, Christmas), swap it in, reload. Easy seasonal loot!

circle-exclamation

Happy looting! ⚔️

Last updated