
Because Trial Chambers deserve better than being a "one and done" dungeon.
The definitive Trial Chamber management plugin for multiplayer servers.
Transform Minecraft 1.21's Trial Chambers from single-use dungeons into renewable, multiplayer-ready content.
Automatic resets, per-player loot, custom rewards, griefing protection & many more features.
Vanilla Trial Chambers weren't designed for multiplayer.
The first player takes everything, vaults stay locked forever, and griefers destroy spawners. TrialChamberPro fixes all of this.
| Problem | Solution |
|---|---|
| First player gets all loot | Per-player vault system with individual cooldowns |
| No way to reset chambers | Automatic scheduled resets with player warnings |
| Griefers break spawners | Full protection system with WorldGuard support |
| Paper trial key bugs | Built-in fixes for known Paper issues |
| No progression tracking | Statistics, leaderboards, and PlaceholderAPI support |
/tcp menu—no YAML editing required1. Drop the JAR in your plugins folder
2. Start your server
3. Select a Trial Chamber with WorldEdit (//wand)
4. Run: /tcp generate wand MyChamber
5. Run: /tcp scan MyChamber
6. Run: /tcp snapshot create MyChamber
7. Done! Your chamber now auto-resets and has per-player loot.
| Command | Description |
|---|---|
/tcp menu |
Open the admin GUI |
/tcp generate wand <name> |
Register chamber from WorldEdit selection |
/tcp scan <chamber> |
Detect vaults and spawners |
/tcp snapshot create <chamber> |
Enable automatic resets |
/tcp reset <chamber> |
Force immediate reset |
/tcp stats [player] |
View statistics |
/tcp leaderboard <type> |
View top players |
| Command | Description | Permission |
|---|---|---|
/tcp menu |
Open admin GUI | tcp.admin |
/tcp generate wand <name> |
Create from WorldEdit selection | tcp.admin |
/tcp generate coords <name> <coords> |
Create from coordinates | tcp.admin |
/tcp scan <chamber> |
Scan for vaults/spawners | tcp.admin |
/tcp snapshot create <chamber> |
Create restoration snapshot | tcp.admin |
/tcp snapshot restore <chamber> |
Restore from snapshot | tcp.admin |
/tcp reset <chamber> |
Force chamber reset | tcp.admin |
/tcp delete <chamber> |
Delete chamber | tcp.admin |
/tcp setexit <chamber> |
Set exit location | tcp.admin |
/tcp list |
List all chambers | tcp.admin |
/tcp info <chamber> |
View chamber details | tcp.admin |
/tcp tp <chamber> |
Teleport to chamber | tcp.admin |
/tcp stats [player] |
View statistics | tcp.stats |
/tcp leaderboard <type> |
View leaderboards | tcp.stats |
/tcp reload |
Reload configuration | tcp.admin |
| Permission | Description | Default |
|---|---|---|
tcp.admin |
Full admin access | OP |
tcp.stats |
View own statistics | Everyone |
tcp.leaderboard |
View leaderboards | Everyone |
tcp.spectate |
Use spectator mode after death | Everyone |
tcp.bypass.cooldown |
Ignore vault cooldowns | OP |
tcp.bypass.protection |
Build in protected chambers | OP |
Player Statistics
%tcp_vaults_opened% — Total vaults opened%tcp_vaults_normal% — Normal vaults opened%tcp_vaults_ominous% — Ominous vaults opened%tcp_chambers_completed% — Chambers completed%tcp_mobs_killed% — Mobs killed in chambers%tcp_deaths% — Deaths in chambers%tcp_time_spent% — Time spent (formatted)%tcp_time_spent_raw% — Time spent (seconds)Current State
%tcp_current_chamber% — Chamber player is in%tcp_in_chamber% — Whether player is in a chamberLeaderboards
%tcp_leaderboard_vaults% — Player's vault rank%tcp_leaderboard_chambers% — Player's chamber rank%tcp_leaderboard_time% — Player's time rank%tcp_top_vaults_1_name% — #1 player by vaults%tcp_top_vaults_1_value% — #1 player's vault count| Requirement | Version |
|---|---|
| Minecraft | 1.21.1+ |
| Server | Paper, Folia, Purpur, or Pufferfish |
| Java | 21+ |
All configuration is optional—sensible defaults work out of the box.
config.yml highlights# Vault cooldowns
vaults:
normal-cooldown-hours: -1 # -1 = until reset (vanilla behavior)
ominous-cooldown-hours: -1
per-player-loot: true
# Automatic resets
global:
default-reset-interval: 172800 # 48 hours
reset-warning-times: [300, 60, 30]
teleport-players-on-reset: true
# Protection
protection:
prevent-block-break: true
prevent-block-place: true
prevent-mob-griefing: true
worldguard-integration: true
# New in 1.2.5
spawner-waves:
enabled: true
show-boss-bar: true
spectator-mode:
enabled: true
offer-timeout: 30
Example loot table
default:
pools:
common:
min-rolls: 2
max-rolls: 4
items:
- material: ARROW
amount: 8-16
weight: 100
- material: TIPPED_ARROW
potion-type: SLOWNESS
amount: 4-8
weight: 50
rare:
min-rolls: 1
max-rolls: 2
guaranteed: true
items:
- material: DIAMOND
amount: 1-3
weight: 30
- material: EMERALD
amount: 2-5
weight: 70
unique:
min-rolls: 0
max-rolls: 1
items:
- material: OMINOUS_BOTTLE
custom-effect-type: BAD_OMEN
potion-level: 3
weight: 10
- type: COMMAND
command: "eco give {player} 500"
weight: 20
Paper 1.21.1+ · Folia Native · Java 21+
Made with Kotlin by darkstarworks