🎲 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.
CRITICAL: Never use TAB characters in loot.yml!
TAB characters will cause the entire YAML file to fail to load silently. This results in all loot tables being empty, causing vaults to give no loot even though keys are consumed (fixed in v1.2.19+).
Symptoms of TAB character issues:
Console shows:
Loot table not found: default (available: )Keys are consumed but no loot is given
No YAML parsing errors are shown
How to check:
Open
loot.ymlin a text editor that shows whitespaceLook for
→(TAB) characters instead of spacesReplace all TABs with spaces (2 or 4 spaces per indentation level)
Prevention:
Configure your text editor to use "spaces for tabs"
Use editors like VS Code, Notepad++, or Sublime Text that can show whitespace
---
🎯 Understanding Loot Tables
A loot table is a collection of possible rewards. When a player opens a vault, the plugin:
Rolls between
min-rollsandmax-rollstimesEach roll picks ONE item from
weighted-itemsbased on weightAdds all
guaranteed-items(these ALWAYS drop)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
min-rolls / max-rollsHow 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 itemsmin-rolls: 1+max-rolls: 1= Player gets exactly 1 item (hardcore mode!)min-rolls: 10+max-rolls: 15= Loot explosionDon't go crazy! More rolls = more items. A vault that drops 20 items might be fun once, but it trivializes progression. Start conservative.
---
🎱 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: 0for bonus items
Multi-Pool Example
How it works:
Player opens vault
Common pool rolls 2-3 times → always get basic items
Rare pool rolls 1-2 times → get valuable items
Unique pool rolls 0-1 times → might get special item
Total: 3-6 items with good variety!
GUI Limitation: The loot editor GUI currently only supports the legacy single-pool format. To use multi-pool, you must edit
loot.ymldirectly and reload with/tcp reload.### Config Option
Control the maximum number of pools in config.yml:
✨ Item Types
Basic Items
Required fields:
type: Material name (see Spigot Material enum)weight: Probability weight (explained below)
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 enum 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:
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
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-typefor normal potions (Strength, Speed, Healing, etc.)Use
custom-effect-typefor 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.
Important: In vanilla Minecraft, ominous bottles only come in levels III, IV, and V—never I or II. Match vanilla behavior by using potion-level: 2 (III), potion-level: 3 (IV), or potion-level: 4 (V).
#### 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-minanddurability-maxare 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
### 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
Make sure the item IDs are correct! If the plugin can't find the item, it'll drop nothing. Test your loot tables after adding custom items.
---
🎯 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
Edit
loot.ymlRun
/tcp reloadRun
/tcp reset TestChamber(forces instant reset)Open vaults
Check if loot feels right
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.
### Basic Example
When a player opens a vault:
They get 3-5 random items (from weighted-items)
25% chance to receive 1000 coins
10% chance to get a special permission
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
Commands run as CONSOLE with OP permissions. Be careful with what commands you allow!
Weight = Probability. Higher weight = more likely. A weight: 50.0 is twice as likely as weight: 25.0.
Don't use type: COMMAND in weighted-items! That's incorrect. Use the command-rewards list instead.
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-itemsUse
command-rewardslist instead (see examples above)
"Player gets no message"
Make sure
display-nameis setCheck if commands are actually executing (console logs)
Weight might be too low (increase for testing)
"Economy commands don't work"
Vault plugin required for
ecocommandsNeed 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
Create loot tiers: Make tables named tier1, tier2, tier3 with progressively better loot. Assign them to chambers in different regions of your world!
Backup before experimenting! Copy loot.yml before making drastic changes. Easy to restore if you mess up the YAML formatting.
Happy looting! ⚔️
Last updated