NDuels
PluginApache-2.0

NDuels

A simple but a all in one Duels Plugin

10
Downloads
1
Followers
2 months ago
Updated
📦
4
Versions

📖About NDuels

NDuels

Fast, configurable duels plugin for Paper/Spigot.
Designed for clean queues, flexible menus, and smooth arena resets.

Core Features

  • Matchmaking & queues with /duel menu support
  • Custom kits per mode + in‑game editor
  • Configurable /duel menu layout via menu.layout
  • Lag‑safe arena reset (batch block restore)
  • And Much more! :D

Important Notes

  • TAB integration: duelists can see only opponent + spectators in tablist (if TAB is installed)
  • PlaceHolderAPI support included

Player Commands

Player Commands
  - /duel - show basic help
  - /duel queue <mode> - join queue for a mode
  - /duel leave - leave current queue
  - /duel unqueue - same as leave
  - /duel modes - list available modes
  - /duel menu - open duel menu
  - /duel preview <kitId> - preview a kit
  - /duel spectate <player|off> - spectate a player or stop spectating
  - /duel accept <player> - accept a duel request
  - /duel ready - confirm ready check
  - /duel stats [player] - view duel stats
  - /duel <player> <mode> - send duel request

Admin Commands

Admin Commands
  - /dueladmin menu - open the admin GUI
  - /dueladmin placeholders - open placeholder list GUI
  - /dueladmin save <arenaName> - save selected arena positions
  - /dueladmin removearena <arenaName> - delete an arena
  - /dueladmin reload - reload config, modes, arenas, queues
  - /dueladmin victorymsg <all|players|none> - set who sees win message
  - /dueladmin startmsg <all|players|none> - set who sees start message
  - /dueladmin gdelay <mode> <time> - set glowing delay for a mode
  - /dueladmin casing <unbreakable|breakable> - toggle arena casing protection
  - /dueladmin modearena add <mode> <arena> - assign arena to a mode
  - /dueladmin modearena remove <mode> <arena> - remove arena from a mode
  - /dueladmin setspawn <arenaName> <1|2> - set arena spawn point
  - /dueladmin kit create <mode> - create kit from your inventory
  - /dueladmin kit preview <mode> - preview a kit
  - /dueladmin kit editor <kitId> - edit a kit
  - /dueladmin kit list - list all kits
  - /dueladmin mode delete <mode> - delete a mode
  - /dueladmin rdelay <seconds> - set respawn delay after duel
  - /dueladmin list - list arenas and their status

Permissions

Permissions
  - nduels.bypass
  - nduels.admin
  - nduels.admin.legacy (deprecated)
  - nduels.admin.wand
  - nduels.admin.menu
  - nduels.admin.placeholders
  - nduels.admin.save
  - nduels.admin.arena.remove
  - nduels.admin.reload
  - nduels.admin.victorymsg
  - nduels.admin.gdelay
  - nduels.admin.kit.rename
  - nduels.admin.nosat
  - nduels.admin.modearena.add
  - nduels.admin.modearena.remove
  - nduels.admin.modearena.list
  - nduels.admin.setspawn
  - nduels.admin.kit.editor
  - nduels.admin.kit.create
  - nduels.admin.kit.preview
  - nduels.admin.kit.list
  - nduels.admin.rdelay
  - nduels.admin.list

Placeholders (Using PlaceHolderAPI)

Placeholders
  - %nduels_queue%
  - %nduels_queuepos%
  - %nduels_queue_eta%
  - %nduels_queued_mode%
  - %nduels_in_duel%
  - %nduels_duel_mode%
  - %nduels_duel_mode_display%
  - %nduels_duel_opponent%
  - %nduels_ready%
  - %nduels_requests%
  - %nduels_arenas_total%
  - %nduels_arenas_free%
  - %nduels_arenas_inuse%
  - %nduels_arenas_resetting%
  - %nduels_modes_total%
  - %nduels_queued_total%
  - %nduels_online%
  - %nduels_wins%
  - %nduels_losses%
  - %nduels_kills%
  - %nduels_deaths%
  - %nduels_kd%
  - %nduels_wl%
  Per-mode (replace <mode> with mode id)
  - %nduels_queue_<mode>%
  - %nduels_queuepos_<mode>%
  - %nduels_wins_<mode>%
  - %nduels_losses_<mode>%
  - %nduels_kills_<mode>%
  - %nduels_deaths_<mode>%
  - %nduels_wl_<mode>%

Menu Example:

Examples

Example Menu 1

Code:

menu:
  layout:
    row2: '[] [] [] m o a [] [] []'
    row3: '[] [] [] t r h [] [] []'
    row4: '[] [] [] [] [] [] [] [] []'
    row5: 'p [] [] c [] u [] [] n'
    row6: ''
  items:
    p: page_prev
    n: page_next
    c: close
    u: unqueue
    a: mode_axe
    r: mode_crystal1
    m: mode_mace1
    h: mode_helden2
    o: mode_only
    t: mode_uhc

Default Config.yml

Config.yml

U can change many settings/options with the ingame Admin Commands

#
# NDuels configuration
# Tips:
# - Most values can be changed and reloaded with /dueladmin reload
# - Times are in seconds unless stated otherwise
#
# Arena definitions (auto-filled by /dueladmin save)
arenas: {}
modes:
  # Example mode (copy this to add more)
  example:
    # Display name shown in menus & messages
    displayName: "&bExample"
    # Fallback icon material (if no icon-item is set)
    icon: DIAMOND_SWORD
    # Optional: glowing delay for this mode (seconds). 0 = off
    # glowing-delay-seconds: 0
    # Optional: disable hunger drain for this mode
    # no-saturation: false
    # Optional full item override (serialized ItemStack)
    # icon-item: {}
settings:
  # Block non-/duel commands while in a duel
  command-blocking: true
  # Make arena casing (border) unbreakable
  arena-shell-unbreakable: true
  # Broadcast duel start messages to the whole server
  broadcast-duels: true
  # Victory message scope: ALL / PLAYERS / NONE
  victory-message: PLAYERS
  # Start message scope: ALL / PLAYERS / NONE
  start-message: PLAYERS
  # Time after duel before returning to lobby (0 = instant)
  respawn-delay: 0
  # Seconds before killing players who leave the arena during a duel
  arena-exit-seconds: 3
  # How many blocks are reset per tick (higher = faster, more load)
  arena-reset-blocks-per-tick: 2000
  # Particle radius to show arena borders when near
  boundary-particle-radius: 3
  # Queue status actionbar update interval (ticks)
  queue-status-interval-ticks: 40
  # Average duel length used for ETA (seconds)
  queue-avg-duel-seconds: 60
  # Ready check timeout (seconds)
  ready-check-seconds: 10
  # Duel request timeout (seconds)
  duel-request-timeout-seconds: 30
  # Menu sound effects
  menu-click-sound: UI_BUTTON_CLICK
  menu-page-sound: ITEM_BOOK_PAGE_TURN
  menu-open-sound: BLOCK_CHEST_OPEN
  xp:
    # XP needed per level
    per-level: 100
    # XP for wins / losses / kills
    win: 10
    loss: 5
    kill: 2
menu:
  # /duel menu layout (up to 6 rows).
  # Use [] for empty (auto-filled with gray glass).
  # Set row6: "" to make a 5-row menu, row5: "" for 4 rows, etc.
  layout:
    row1: "[] [] [] [] [] [] [] [] []"
    row2: "[] [] [] [] [] [] [] [] []"
    row3: "[] [] [] [] [] [] [] [] []"
    row4: "[] [] [] [] [] [] [] [] []"
    row5: "[] [] [] [] [] [] [] [] []"
    row6: "p [] [] [] c [] [] n u"
  # Map layout letters to actions
  items:
    p: "page_prev"
    n: "page_next"
    c: "close"
    u: "unqueue"
    # Generic mode slot (auto-fills modes, with paging)
    s: "mode"
    # You can also pin specific modes:
    # x: "mode_sword"