Tournament System

Comprehensive automated tournament system featuring single-elimination brackets, persistent countdown timers across reboots, wave arena scheduling, live visual bracket GUIs with auto-pagination, Nexo custom items, and spectator integrations.

Master Toggle

The entire tournament feature can be enabled or disabled in tournament.yml via enabled: true/false.

Feature Highlights

Commands Reference

Command Permission Description
/tournament or /tourney None Opens the main interactive Tournament Overview GUI.
/tournament join None Joins an open tournament registration.
/tournament leave None Leaves an open tournament registration.
/tournament bracket None Opens the visual live bracket viewer.
/tournament info None Displays current tournament status, kit, round, and remaining players in chat.
/tournament list None Lists all registered tournament participants.
/tournament spectate [player] Configurable Spectates a running tournament fight or opens the bracket.
/tournament start [kit] shyamduels.tournament.admin Starts registration for a tournament with the specified kit.
/tournament forcestart shyamduels.tournament.admin Force starts an active registration immediately without waiting for timer.
/tournament stop shyamduels.tournament.admin Cancels the currently active or registering tournament.
/tournament setkit <kit> shyamduels.tournament.admin Changes the default or current registration tournament kit.
/tournament setmin <amount> shyamduels.tournament.admin Sets the minimum required participants.
/tournament setmax <amount> shyamduels.tournament.admin Sets the maximum tournament player capacity.
/tournament nextmatch shyamduels.tournament.admin Forces wave execution to launch pending matches into available arenas.
/tournament skipround shyamduels.tournament.admin Resolves all pending matches in the active round and advances the bracket.
/tournament add <player> shyamduels.tournament.admin Manually adds a player into the tournament.
/tournament remove <player> shyamduels.tournament.admin Manually eliminates or removes a player from the tournament.
/tournament reload shyamduels.tournament.admin Reloads tournament.yml into memory and restarts schedulers.
/tournament debug shyamduels.tournament.admin Outputs internal tournament engine and bracket state diagnostics.

Configuration Overview (tournament.yml)

# Master toggle: disables all tournaments, commands, and schedulers when false
enabled: false

schedule:
  enabled: true
  interval: "24h"
  initial-delay: "30m"
  persist-schedule-across-restarts: true

players:
  minimum: 4
  maximum: 16
  require-even: true
  odd-player-handling: "BYE" # "BYE", "WAIT", or "CANCEL"

kit:
  default-kit: "Nethpot"
  random-kit: false
  kit-pool:
    - "axe"
    - "crystal"
    - "BuildUHC"

match:
  time-limit: "5m"
  timeout-behavior: "DISQUALIFY_BOTH" # "DISQUALIFY_BOTH", "HIGHEST_HEALTH", "RANDOM_WINNER"
  rounds: 1
  round-system: "BEST_OF" # "BEST_OF" (win majority e.g. Best of 3) or "FIRST_TO" (e.g. First to 3 wins)
  affect-elo: false
  record-stats: false

arenas:
  reserve-before: "5m"
  strict-mode: false
  force-reserve: true
  minimum-required: 1

spectator:
  enabled: true
  # Automatically spectate when eliminated
  auto-spectate-on-elimination: false
  # Auto-teleport waiting players to spectate the active match (non-strict mode)
  # They exit spectator automatically when their own match is ready
  auto-spectate-waiting-players: false
  # When auto-spectate is false, send a 1-click [CLICK TO SPECTATE] chat prompt
  notify-waiting-players: true

rewards:
  first-place:
    enabled: true
    title: "<gradient:#37F699:#55FFFF><bold>CHAMPION!</bold></gradient>"
    subtitle: "<gray>You won the <aqua>%kit%</aqua> tournament!</gray>"
    commands:
      - "eco give %player% 10000"
      - "give %player% diamond 10"

Bracket GUI: Navigation & Pagination

The live bracket viewer GUI supports full Nexo / CustomModelData items and auto-paginates brackets with more than 16 players.

Key Default Description
bracket-gui.back-button.slot 45 Inventory slot for the back button (bottom-left of a 6-row chest).
bracket-gui.back-button.custom-model-data 0 CustomModelData int applied to the back button item. Set 0 to disable.
bracket-gui.back-button.nexo "" Nexo item ID for the back button. Takes priority over material when set.
bracket-gui.back-button.item-model "" Vanilla minecraft:item_model component key for the back button (1.21.4+).
bracket-gui.pagination.previous.slot 48 Slot for the "previous page" arrow (only shown when multiple pages exist).
bracket-gui.pagination.next.slot 50 Slot for the "next page" arrow.
bracket-gui.pagination.info.slot 49 Centre slot showing current page / total pages. Supports {page} and {total_pages}.
Nexo & item-model priority

For any bracket GUI button: if nexo is non-empty it takes priority; otherwise item-model is applied if set; otherwise the plain material is used. custom-model-data is always applied on top of whichever item is chosen.

Messages: Waiting Player Notification

When spectator.notify-waiting-players is true, waiting participants receive a clickable chat prompt. Customise the text in tournament.yml under messages.waiting-match-running.

Placeholder Description
{player1} Name of the first fighter currently in the arena.
{player2} Name of the second fighter currently in the arena.
{arena} Arena name where the current match is taking place.

PlaceholderAPI Placeholders

Placeholder Description Example Output
%shyamduels_tournament_status% Current tournament lifecycle state Waiting, In Progress, Disabled
%shyamduels_tournament_kit% Selected kit for the tournament Nethpot
%shyamduels_tournament_players% Current participant count 8
%shyamduels_tournament_max_players% Maximum capacity 16
%shyamduels_tournament_current_round% Active round number 2
%shyamduels_tournament_total_rounds% Total expected bracket rounds 4
%shyamduels_tournament_champion% Crowned tournament champion Steve
%shyamduels_tournament_next_auto% Time remaining until next automated tournament 12h 30m 00s
%shyamduels_tournament_player_status% Viewer's participation status Alive, Fighting, Eliminated
%shyamduels_tournament_player_wins% Matches won by the viewing player 3