Voxel Shop beta is live. Expect occasional bugs. Learn more
A survival/kit duel plugin.
[1] Fixed schematic arenas pasting off to one side when the schematic was saved with WorldEdit's `//schem save`, which puts its origin at your copy spot instead of the arena corner. JustDuel now lines the schematic up with the arena corner however it was saved, so players spawn on the floor.
[2] Fixed players getting kicked for flight by anticheats during the pre-match countdown. In a freshly built arena a frozen player could sit just above the pasted floor and get flagged. The countdown now clears fall distance and briefly allows flight. Toggle: `arena-spawns.warmup-flight-exempt` (default on).
[3] Fixed `kit-browser.allow-player-creation: false` only blocking `/duel createkit` and `/duel savekit`. It now blocks every route: `/duel kit create`, the kit editor GUI, the template picker, editing a kit, and kit editor zones. Admins with `justduel.kit.create.bypass` keep access.
[1] New Queue Status tile in the `/duel` menu: shows your queue, mode, kit and party standing; click to leave the queue or pick a mode.
[2] Players are fully frozen during the pre-match countdown in every mode: no placing, breaking, dropping, shooting arrows or throwing projectiles. Toggle `duel.countdown-freeze-actions`.
[3] Item drops work normally in a duel and no longer duplicate (each drop is swept at match end). Toggle `duel.allow-item-drop-in-match`.
[4] Temporary arenas now show as Available instead of In Use.
[5] `/party` and `/p` work as standalone commands, party invites show clickable [ACCEPT] / [DENY], and party messages match the JustDuel style.
[6] Blocks placed during a duel are always restored before the arena is reused, including between best-of rounds.
[7] Random Kit only picks kits shown in the queue, and rematch "Same Setup" works after a random duel.
[8] Scoreboard fixes: real FFA kill count, the queue/spectator/sudden-death boards now show, and end-of-match boards show the real winner and rosters.
[9] `/duel leave` while spectating returns you to your original position.
[10] Cross-server duels return you to your home server when the match ends.
[11] No errors on shutdown, and leftover temporary duel worlds are cleaned up on a clean stop.
[12] Throttled the arena-edge correction teleports; stays smooth under heavy load (tested with 40 bots).
[13] Fixed a rare stuck QUEUE sidebar after leaving the queue.
[14] Kit armor applies again (it was silently dropped when the kit loaded).
[15] The kit creator is a Creative editing mode: `/duel kit create`, `save` and `cancel` build the kit on your own person, with drops, pickups, containers and gamemode changes blocked while editing.
[16] Live Server Settings panel (`/dueladmin settings`): switch duel mode and tune countdown, timers, death tracking and SMP-HARD claim time without a restart.
[17] SMP and SMP-HARD now behave the same in team and FFA as in 1v1 (own inventory kept and restored; SMP-HARD losers drop their gear).
[18] Team and FFA matches get the same leftover-gear sweep as 1v1.
[19] Spawn-safety guard: a teleport that would land you inside a block lifts you to the first safe spot instead of suffocating you.
[20] Temporary arena worlds no longer leak (scrubbed on boot, deleted on clean shutdown, and a janitor reclaims strays).
[21] Smoother result holograms; the old fullscreen VICTORY/DEFEAT title is off by default (`holograms.match-result.show-title`).
[22] Recipe-unlock toasts and advancement broadcasts are suppressed inside arenas (`arena-notifications.*`).
[23] The main menu, mode selector and admin panel refresh their live numbers in place, without reopening.
[24] Kit templates: start a new kit from blank, a premade kit, or one of your own (`kit-templates.*`).
[25] Preset library (`/duel kit preset`): save and load named loadouts across kits, separate from your kit list.
[26] Two new hub hotbar items, Leaderboard and Kits (`hub.inventory`, actions `open_leaderboard` / `open_kits`).
[27] Offline player heads now render the real skin instead of showing "Dynamic".
[28] Cross-server duels no longer strand a transferred player (the arena and kit travel with them).
[29] Two cross-server duels can no longer be booked into the same arena, and the MySQL manager stays off on SQLite servers.
[30] Each mode opens its own page (what it is, your readiness, the supported arenas) instead of dropping you straight into a queue.
[31] Leaf and other Paper forks are detected properly and get full support, instead of an "unknown server" warning.
[32] Menu icons no longer leak vanilla tooltip text; preview and inspect screens still show real item details.
[33] Right-click a preset to preview its full loadout before loading it.
[34] Menus no longer flicker when navigating; same-size menus hand off in place.
[35] Ranked toggle in `/duel settings`: ELO changes only when both players are ranked, with your status shown in the action bar.
[36] Fixes: garbled menu titles, a kit swapped by your last duel, a lingering "Waiting for X", WLR mislabelled as KDR, the queue action bar naming you instead of your opponent, and being stuck after naming a preset on rejoin.
[37] Party invites show "Invite pending" and glow until the player accepts.
[38] Clicking a match in `/duel history` opens a detailed overview with a Challenge Again button.
[39] Team/FFA: a match decided during the countdown ends cleanly with no hanging bar; empty admin-menu slots are filled in; the tournament live-match card is no longer hidden behind a head.
[40] Menus keep their coloured title when `gui.yml` omits one.
[41] Reworded in-game text that used a spaced hyphen as a sentence dash.
[1] Kit creation works the way you'd actually type it now. Do /duel kit create <name> and it starts building your kit. Before this it just said "Player not found", because the command had no idea "kit" was a keyword and thought you were trying to duel a player named kit. Now /duel kit create, /duel kit save and /duel kit cancel all work and tab-complete as you type. The old /duel createkit, savekit and cancelkit still work too, nothing got removed, you've just got the obvious version on top of them.
[2] The admin menus aren't spitting out raw code anymore. A big chunk of /dueladmin was printing things like <yellow> and <gray> as literal text instead of the actual colors, the kit approval list, the world commands, validate, audit, the help pages, all of it. Every one of those lines runs through the proper formatter now, so the whole /dueladmin (or /da) interface reads clean instead of looking half broken.
[3] Players stop spawning inside blocks. People were landing stuck in terrain when they joined or respawned at the hub. Two separate things were wrong: the saved spawn wasn't centered on the block, so you could clip into the one next to it, and the join teleport never checked whether the spot was even open. Both are sorted. The spawn now saves dead-center on the block, and the join, respawn and back-to-hub teleports all look for a clear spot and lift you up out of any solid blocks before they drop you in.
[4] One thing worth doing after you update: stand where you want the hub and run /da system setspawn once. Your current saved spawn could still be a bad point from before the fix, and re-running it writes a clean centered one. If you forget, the new safety check still pulls players out of blocks on join, but setting it fresh gets you the exact spot you picked.
[5] Fixed the disconnects on 1.21.11. Players were getting booted with an "Internal Exception" the second the plugin tried to show an action bar, the queue timer, the idle hub bar, that kind of thing. The text library the plugin used to ship didn't know about the new Minecraft version and was quietly building broken packets, and the server kicked the player rather than send a bad one. That library is gone. The plugin uses Paper's own built-in text now, so action bars and titles show up and nobody gets dropped.
[6] Tidied up the Folia and reload side of things. Spawning a second queue NPC could throw an error, and the NPC bobbing animation could keep running after a reload and pile up. A scheduler fallback could also call itself in a loop and take the server down with it. All fixed. A few teleports that could error out on Folia now go through the safe async teleport that handles crossing regions and worlds.
[7] Keeping it off your survival worlds is just config. JustDuel only applies its arena rules inside arena worlds, so survival is already left alone there. The one thing that reaches everywhere is the hub pulling players in on join, so if you run duels next to a survival world, set hub.teleport-on-join and hub.hub-on-join to false and force-spawn-on-join to false, then put your duel hub and arenas in their own world. Players stay where they log out and only come to the hub when you send them.
[8] Runs on Paper 1.21.11, 26.1.x, Folia and Spigot, single server or cross-server over Redis, same as before.
### NEW
- Party menu. Open it with /duel party (or click the new Party item in /duel). You see your members, who the leader is, your pending invites, and shortcuts to queue the whole party for 2v2, 4v4 or FFA. Leader gets the kick / transfer / disband buttons. Everyone else gets a Leave button
### FIXED
/queue jumped your mouse cursor to the middle of the screen when you clicked a kit.
### COMPATIBILITY
- Same single jar still works on Paper 1.21.1, 1.21.11, 26.1+, Folia 1.21.x and Folia 26.1+