Trialgate
Trialgate turns any arena you build into a repeatable dungeon run. A party queues up, a key opens the gate, and the group races a shared timer to reach the finish before it runs out. Clears fire the reward commands you set, then the party goes on cooldown.What it is: a dungeon run system for builds you make yourself. Trialgate does not generate dungeons or paste structures. You design the arena with blocks, mobs, and redstone, then mark its start, finish, and exit with three commands. Trialgate handles the parties, keys, queue, timer, rewards, and stats. The two dungeons in the default config are examples ready to point at your own builds.
How runs work: each dungeon is one arena in your world. One party runs it at a time, and other parties wait in an automatic queue and start the moment it frees up. No world copies, no extra worlds, no disk bloat.
Built for: Survival and SMP servers that want repeatable PvE content with real stakes, no separate minigame server needed.
Dungeon browser
/trial menu opens a browsable GUI of every dungeon. Each icon shows its tier, party size range, time limit, whether it needs a key, and its live status: open, occupied by another party, or on cooldown. Left-click an icon to queue your party on the spot.Parties
Create a party, invite friends by name, and queue together. Only the party leader can queue or force a start. A party invite expires after 60 seconds by default (config-tunable) if it is not accepted. Leaving or disbanding a party automatically pulls it out of any queue it was waiting in.Key based entry
Dungeons can require a key, a real item the leader must hold to enter. Admins hand out keys with /trial key, and the key's material, name, lore, and glow are all set in config.yml. Keys are consumed on entry, so a party needs a fresh one for every run.Timed runs with a shared boss bar
Once a run starts, every member sees one shared boss bar counting down the time limit. Reach the completion zone before it hits zero or the run fails and everyone is sent back to the exit. Each dungeon sets its own time limit, party size range, and per-player cooldown after a clear.Rewards and stats
Clearing a dungeon runs any console command reward you configure per dungeon (items, currency, anything a command can do). Trialgate also tracks each player's total completions and best clear time per dungeon, both readable in-game with /trial stats and saved to disk so nothing is lost on restart.Commands
- /trial opens the dungeon menu (or shows help if you lack access). Aliases: /trialgate, /dungeon.
- /trial menu|gui|list opens the dungeon browser, or lists dungeons as text.
- /trial queue <id> queues your party for a dungeon.
- /trial leave leaves your current run or queue.
- /trial stats [id] shows your total clears, or your clears and best time for one dungeon.
- /trial party create|invite <player>|accept|leave|disband|info manages your party.
- /trial key <player> <id> [amount] gives a dungeon key (admin).
- /trial setentry|setexit|setcompletion <id> [radius] sets a dungeon's locations from where you stand (admin).
- /trial forcestart <id> force-starts your party in a dungeon, skipping the key and cooldown (admin).
- /trial cancel <id> cancels the active run in a dungeon (admin).
- /trial reload reloads config.yml, messages.yml, and every dungeon (admin).
Permissions
- trialgate.use opens the menu, joins parties, and queues for dungeons. Default: everyone.
- trialgate.admin gives keys, sets up dungeons, force-starts, cancels runs, and reloads. Default: operators.
Configuration
config.yml covers party max size and invite expiry, the key item's material, name, lore, and glow, the boss bar color, sound cues for start, complete, and fail, save interval for stats, and an optional Discord webhook that posts a line each time a dungeon is cleared. Every dungeon is its own config block: display name, tier, icon, min and max party size, time limit, cooldown, whether a key is required, its entry, exit, and completion locations, and its reward commands. Set locations in-game by standing where you want them and running /trial setentry, /trial setexit, or /trial setcompletion. All player-facing text is in messages.yml with full MiniMessage support. Run /trial reload to apply changes without a restart. Updates add new config keys without wiping your settings.Requirements
- Minecraft 1.21 to 26.1.2.
- Paper, Spigot, or Bukkit.
- Java 21.
- PlaceholderAPI is optional, only needed for placeholders.
Installation
- Put Trialgate-1.0.0.jar in your plugins folder.
- Start the server once to create config.yml and messages.yml.
- Build or pick an arena, stand where you want each location, and run /trial setentry, /trial setexit, and /trial setcompletion, then /trial reload.
