COWMODSКаталог модов

Duels

GUI-driven one-versus-one duels for Paper servers, with own-items or kit loadouts, a toggleable arena queue, stake wagering, spectator betting, and stat leaderboards.

Автор: pawtistic2931обновлён 25 авг. 2026 г.
ЭкономикаМеханики игрыМини-игры

Описание

Duels is a fully GUI-driven duels plugin. Every feature is reachable from the in-game menu, so no chat commands are required to play, though full command equivalents are provided for convenience and automation.

Dueling

  • Challenge a player by clicking their head in a menu, or with /duel <player>
  • Fight with your own inventory, an admin-published kit, or your own saved personal kit
  • Toggleable arena mode: teleport, countdown, fight - or leave it off and hunt each other down in the open world with a compass tracker and live distance indicator
  • A clear VICTORY! / DEFEAT title and sound the instant a fight ends - no more guessing from a silent gear swap
  • Forfeit, disconnect-safe auto-forfeit, and a safety-net draw timeout all handled automatically

Wagers & Payouts

  • Stakes are optional by default - duel for free, or wager currency on yourself and take the pot
  • Admins can flip one switch to require a real wager on every duel server-wide
  • The winner is handed a trophy head of the loser, with hover text noting the duel and the wager
  • Multi-currency support, per-currency min/max stakes, and an optional tax on winnings only (never on a refund)
  • Stake real items too, not just currency - drag them into a stake area and confirm; the winner takes everything staked by both sides, no tax

Duel Rules & Final Confirmation

  • RuneScape Duel Arena-style rule toggles, adapted to Minecraft combat: No Ranged, No Potions, No Food, No Forfeit, No Movement - set per duel or open challenge
  • Before any own-items or item-staked duel begins, both players get a final confirmation screen - an own-items duel mirrors exactly what the opponent is currently wearing/carrying, an item-staked duel lays out both sides' staked items side by side
  • Both must click Ready before the fight starts; either can cancel, returning any staked items instantly

Spectating & Betting

  • Open Fights board: every live duel on the server, one click to teleport in and watch
  • Open Challenges board: post an un-targeted challenge - no need to pick an opponent, anyone online can accept it, coinflip-board style
  • Parimutuel spectator betting on either fighter, completely separate from the duelists' own stake - no house bankroll, the pool only ever pays out what was put in

Kits

  • Admin kits and personal kits (up to a configurable cap per player), built in a real drag-and-drop in-game editor with a fill-from-current-inventory shortcut
  • Admin kits also ship in a hand-editable YAML format for spreadsheet-style bulk editing outside the game
  • Both duelists always get an identical copy of whichever kit is picked - fully fair by construction

Fairness & Anti-Cheat

  • Nobody outside a duel can hit a duelist, and a duelist can't hit anyone outside their own fight - enforced in both directions
  • A duel supersedes land-claim/region PvP protection for hits between the two duelists specifically, so a PvP-disabled claim can't stall a fight either side agreed to
  • Containers are locked for the whole duel (crafting tables excepted) and items can't be dropped, so gear can't be stashed and retrieved after the match
  • Real inventories are snapshotted and safely restored the instant a duel ends, however it ends - including across a server restart mid-duel
  • An item held on your cursor the instant a duel starts is folded into your inventory first, so it can't ride into a supposedly identical kit loadout untouched by the wipe

Statistics & Leaderboards

  • Lifetime wins, losses, kills, deaths, and streaks with an in-game leaderboard
  • YAML storage out of the box, or MySQL to share one leaderboard across a whole network
  • Fully cached in memory - stats never block the main thread on a disk or database round-trip

Integrations

None of these are required to load - Duels works standalone with friendly (no-stakes) duels and no leaderboard placeholders. Each one activates automatically the moment it's detected; nothing to configure beyond config.yml.

PluginRoleRequired?
Vault + any Vault-compatible economy (EssentialsX, CMI, etc.)Currency backend for the VAULT providerOptional - needed for wagers/bets via Vault
ExcellentEconomyCurrency backend for the EXCELLENTECONOMY provider (a specific currency by its currency-id)Optional - needed for wagers/bets via ExcellentEconomy
PlaceholderAPI%duels_*% stat/leaderboard placeholdersOptional

A currency configured for a backend that isn't installed is simply hidden from menus (with a startup warning) until it becomes available - safe to leave in config.yml either way.

Commands

  • /duel - open the hub menu
  • /duel <player> [currency] [amount] - challenge a player, optionally pre-filling a stake
  • /duel accept, /duel deny - respond to a pending duel request
  • /duel forfeit - concede your current duel
  • /duel kits - manage your personal kits
  • /duel fights - open the Open Fights board
  • /duel challenges - post or accept an open challenge
  • /duel stats [player] - view a stats card
  • /duel top [wins|kills|streak] - open the leaderboard
  • /duel arena - manage arenas (administrator)
  • /duel kitadmin - manage server kits (administrator)
  • /duel reload - reload the configuration (administrator)

Permissions

  • duels.use - challenge, accept, save personal kits, and forfeit
  • duels.bet - place spectator bets on other players' duels
  • duels.admin - manage arenas, manage server kits, and reload the configuration

Configuration options (config.yml)

settings:
  request-expire-seconds: 60          # how long a sent duel request stays pending
  open-challenge-expire-seconds: 300  # how long a posted open challenge stays on the board

  find-timeout-seconds: 120           # free-roam mode: time to find & engage before cancel
  actionbar-tracker: true             # live "Xm away | Ys left" action bar (free-roam only)
  give-compass: true                  # tracking compass (free-roam only)
  same-world-required: false          # restrict duels to same-world opponents only

  isolate-duel-combat: true           # no hits in/out of a duel from outside it, in either direction
  reset-health-on-start: true         # heal both duelists to full at start and end

  broadcast-new-duel: true            # global chat announcement when a duel/open challenge starts
  broadcast-result: true              # global chat announcement of the winner

  require-stake: false                # force every duel/challenge to carry a real wager

  sounds:
    enabled: true
    request: BLOCK_NOTE_BLOCK_PLING
    accept: UI_BUTTON_CLICK
    countdown: BLOCK_NOTE_BLOCK_HAT
    start: ENTITY_ENDER_DRAGON_GROWL
    win: ENTITY_PLAYER_LEVELUP
    lose: ENTITY_VILLAGER_NO

arena:
  enabled: true
  countdown-seconds: 5                # movement-frozen countdown before a fight starts
  fight-timeout-seconds: 300          # safety-net draw timeout, 0 disables it

betting:
  enabled: true
  lock-on-fight-start: true           # false allows betting for the whole fight

kits:
  max-player-kits: 3                  # personal kits a player may save at once

tax:
  stake: { enabled: true, percent: 5.0 }   # taken from duel winnings only, never a refund
  bet:   { enabled: true, percent: 5.0 }   # taken from spectator bet payouts only

statistics:
  storage-type: YAML                  # or MYSQL, to share one leaderboard across a network
  leaderboard-refresh-seconds: 60
  mysql: { host: localhost, port: 3306, database: duels, username: root, password: '', use-ssl: false, pool-size: 4 }

currencies:
  money:
    enabled: true
    display-name: "Money"
    provider: VAULT                   # or EXCELLENTECONOMY (+ currency-id)
    icon: SUNFLOWER
    min-stake: 10.0
    max-stake: 100000.0                # 0 = unlimited
    quick-amounts: [10, 100, 1000, 10000]   # +buttons in the amount picker

Every player-facing chat message, GUI title, and broadcast also lives in a separate messages.yml (MiniMessage formatting, %placeholder% support) - fully customizable without a restart, just /duel reload.

Галерея

duels gui

Последние версии

Все версии →
release

1.2.2

1.2.2
25 авг. 2026 г.276Minecraft: 1.21, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1.1, 26.1.2, 26.2paper, purpur
Скачать
Что нового
Fix: the final confirmation screen for an own-items duel that also had item stakes only showed the opponent's current gear plus a text count of staked items, not the items themselves. Item stakes now always get a dedicated "Your Stake" vs "<opponent>'s Stake" side-by-side layout in the same Ready/Cancel confirmation screen, regardless of duel mode.
release

1.2.1

1.2.1
25 авг. 2026 г.5Minecraft: 1.21, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1.1, 26.1.2, 26.2paper, purpur
Скачать
Что нового
Fix: item staking (and manually dragging items into the kit editor) never actually worked - InventoryListener was cancelling every click on the player's own inventory while any Duels menu was open, not just clicks on the menu itself, including the pickup click needed before dragging an item into an editable slot. A plain click on your own inventory can't place anything into the top inventory by itself, so there's nothing to protect by cancelling it; shift-click stays blocked since vanilla auto-transfers it into the top inventory.
release

1.2.0

1.2.0
25 авг. 2026 г.3Minecraft: 1.21, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1.1, 26.1.2, 26.2paper, purpur
Скачать
Что нового
RuneScape Duel Arena-inspired additions, adapted to what's actually meaningful in vanilla Minecraft combat. New: - Duel rules: No Ranged, No Potions, No Food, No Forfeit, No Movement - toggleable per duel or open challenge, enforced live. - Item staking: stake real items alongside (or instead of) a currency stake via a drag-items-in GUI. Items are escrowed the moment you confirm and always returned if the duel is denied, expires, gets replaced, or otherwise never starts. - Gear/stake confirmation screen: before any own-items or item-staked duel, both players see a final read-only screen - own-items mirrors the opponent's current gear, item stakes are laid out side by side. Both must click Ready; either can cancel and get everything back. - Opponent win/loss records now shown before you challenge or accept. Verified across every stable Paper/Purpur release from 1.21 through 26.2 - all green.
release

1.1.3

1.1.3
25 авг. 2026 г.9Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2paper, purpur
Скачать
Что нового
Fixed a crash on Paper 1.21/1.21.1: Sound.valueOf(String) threw IncompatibleClassChangeError because Sound's binary shape changed from a concrete enum to a Registry-backed interface starting with Paper 1.21.3, and this plugin is compiled against 26.1.2 (the newer shape). Switched to Registry.SOUNDS.get(NamespacedKey), the same pattern already used for enchantment lookups. Verified compatibility across every stable 1.21.x and 26.x release on both Paper and Purpur (17 combinations, all passing) - the previous version's listed game versions were missing the entire 1.21.x line and included a non-existent "26.1" build; this corrects that.