UltimateTournament - Web Bracket v2.3.2rc

Create a fully automated easy tournament with teams! With online live-updated bracket.
Bug fixes:
  • improve tournaments caching
  • synchronize player storage on join/leave/removeAll/save concurrent DataSaver writes
  • arena enter: fix wrong config path settings.require_empty_inventory → settings.general.*
  • fix require_empty_inventory condition
  • reset command available when tournament not FINISHED and not IN_PROGRESS
  • local tournaments ID collision after deletions
  • improve active tournamente lookup
  • match: add TIMEOUT as winning cause with health-based resolution
  • better use of bye fake team

Tournament logic:
  • add configurable match timeout with health-based winner resolution
  • add third_place_match and match_timeout_minutes config options
  • fix third-place match result never pushed to web API
  • add onMatchStart() hook; WebTournament pushes IN_PROGRESS state to bracket on match start
  • Add match.serverId for server-side match ID
  • add winning cause in create match API so bracket can shows KILL/TIMEOUT/FORFEIT
  • fix start tournament race condition
  • fix BYE seeding to interleave BYEs at front of bracket pairs
  • fix third-place loser collection

Web bracket:
  • add retry logic (3 attempts, 2s delay) for createMatch
  • add endpoint for live IN_PROGRESS/COMPLETE bracket updates
  • fix team loading when players are null
  • wait for team loading before continue
  • fix web join/leave thread
  • Remove unused WebStartResponse and WebTeam dead code

Admin commands:
  • set max team: validate input
  • set max player per team: validate input
  • batch tournament config writes
fix: config file not loading
Remove BasementLib library. Update to the latest versions
feat: skip BYE vs BYE matches
Tournament start feedback
fix: world location validation in region checks
feat: update XSeries to fix sounds
feat: bump version to 2.2.91
Now those commands can be run from console:
  • delete
  • removeall
  • reset
  • setmaxplayer
  • setmaxteams
  • shuffle
  • start

%ut_<arena>_round_team1%
%ut_<arena>_round_team2%
Fixed error using those placeholders when the tournament match is null
Now all messages in settings.yml uses MiniMessages
Update your file:


YAML:
# Logic behind the matches in case one or both players are offline
# at the time of the duel: if only one of the two players is offline,
# the other wins directly if both are offline, a lot draws a winner
settings:
  general:
    # If activated, teleports the player to the "exit" position
    teleport_after_duel: true
    # If activated, it saves the player's inventory before the duel and restores it after the duel
    save_and_restore_inventories: true
    # Require empty inventory before duel
    require_empty_inventory: false
    # If the player quit loses the duel, otherwise the duel ends when he dies (recommended default)
    handle_quit: true
    # The integration with placeholder api is automatic, therefore, it is advisable to leave the default value
    hook_in_papi: true
    starting_gamemode: SURVIVAL
    disable_hunger: true
    use_death_event: true
    no_team_name: "BYE"
    api_key: ""

  nametag:
    team1: "§7[§cR§7] §c"
    team2: "§7[§9B§7] §9"

  messages:
    # %tournament% Name of the tournament
    # %rounds% Number of rounds
    # %max_teams% Maximum number of teams
    # %max_players_per_team% Maximum number of players per team
    # %uuid% (WEB Only) UUID of the tournament
    # %url% (WEB Only) URL of the tournament
    # Examples:
    # "§7(%max_teams% teams, %max_players_per_team% players per team)"
    # "§7Bracket: §a%url%"
    tournament_starting: "<gold>The tournament is starting! <gray>(%tournament%) <gray>(%rounds% rounds)"
    # %player% Name of the player involved (winner)
    opponent_offline: "<red>The opponent is offline! %player% won by forfeit."
    # %player% Name of the player involved (winner)
    both_opponents_offline: "<red>Both players are offline. Random drawing of the winner..."
    # %player% Name of the player involved (winner)
    match_victory: "<red>%loser% <gray>lost against <green>%winner% <gray>(<red>%health%❤) <gray>in the duel."

  titles:
    # %round% Group number
    round_presentation:
      title: "§6§l%round%° Round"
      subtitle: ""
      fadeIn: 500
      stay: 2000
      fadeOut: 500
    # %player1% Name of the first player involved
    # %player2% Name of the second player involved
    match_presentation:
      title: "§6§lDuel"
      subtitle: "§c%player1% §7vs §9%player2%"
      fadeIn: 500
      stay: 2000
      fadeOut: 500
    match_starting:
      title: "§6§lStarting in"
      subtitle: "%seconds%"
      fadeIn: 200
      stay: 800
      fadeOut: 200
    # %player% Name of the player involved (winner)
    match_victory:
      title: "§b§l%player% §7won"
      subtitle: ""
      fadeIn: 500
      stay: 2000
      fadeOut: 500
    # %player% Name of the player involved (winner)
    third_place:
      title: "§6§l3° Place"
      subtitle: ""
      fadeIn: 500
      stay: 2000
      fadeOut: 500
    # %player% Name of the player involved (winner)
    tournament_victory:
      title: "§d§l%player%"
      subtitle: "§fwon the tournament"
      fadeIn: 500
      stay: 2000
      fadeOut: 500

sounds:
  arena_join: "ENTITY_EXPERIENCE_ORB_PICKUP"
  arena_leave: "ENTITY_EXPERIENCE_ORB_PICKUP"
  match_starting: "ENTITY_EXPERIENCE_ORB_PICKUP"
  match_victory: "ENTITY_PLAYER_LEVELUP"
  tournament_victory: "ENTITY_ENDER_DRAGON_GROWL"

events:
  # When a player enters the arena for his duel
  # %player% Name of the player involved
  arena_join:
    commands: [ ]
  # When a player leaves the arena for his duel
  # %player% Name of the player involved
  arena_leave:
    commands: [ ]

commands:
  invite:
    not_supported: "<red>This command is not supported in this tournament</red>"
    player_not_found: "<red>Player not found</red>"
    invite_self: "<red>You can't invite yourself</red>"
    no_team: "<red>You are not in a team</red>"
    not_leader: "<red>You are not the leader of the team</red>"
    team_full: "<red>The team is already full</red>"
    already_in_team: "<red>Player is already in the team</red>"
    invite_error: "<red>An error occurred while inviting the player</red>"
    already_sent: "<red>Player %player% has already been invited</red>"
    invite_sent: "<green>Player %player% has been invited to the team</green>"
    invite_received: "<green>You have been invited to the team of %player%</green>"

  join:
    not_invited: "<red>No one has invited you in this team</red>"
    success: "<green>You signed up for the tournament</green>"
    success_team: "<green>You joined the team %team%</green>"
    leader: "<green>Player %player% joined your team</green>"
    no_team: "<red>Team not found</red>"
    full: "<red>The team is already full</red>"
    tournament_full: "<red>The tournament is already full</red>"
    already_participant: "<red>You are already registered for the tournament</red>"
    status_error: "<red>The tournament doesn't accept new registrations</red>"

  leave:
    not_participant: "<red>You are not registered for the tournament</red>"
    unsubscribe: "<green>You have unsubscribed from the tournament</green>"
Buy a license now
$14.99
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
Lifetime
Share and earn
Refer this resource and earn a 10% commission.
7,619 Views
63 Purchases
61 Downloads
Jun 18, 2023 Published
May 31, 2026 Updated
5.00 star(s)
Average rating (2)
5 MB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Gameplay
  1. Minigame
  1. Staff
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
  1. 1.20
  1. 1.19
  1. 1.18
  1. 1.17
  1. 1.16
  1. 1.15
  1. 1.14
  1. 1.13
  1. 1.12
  1. 1.11
  1. 1.10
  1. 1.9
  1. 1.8
  1. 1.7
Supported languages
  1. English
  1. Italian
Includes DRM
No
Source access (legacy)
Closed source & unobfuscated
Creator
Owner
Recommended for you
Not yet rated
22 purchases
Control every single action performed across the entire network (+Web Panel)
Not yet rated
11 purchases
3.00 star(s) 2 ratings
13 purchases
Create a guild with all players, manage roles and set tags
Not yet rated
10 purchases
Check player cps wherever you want within your network
Not yet rated
6 purchases
Share and earn
Refer this resource and earn a 10% commission.
7,619 Views
63 Purchases
61 Downloads
Jun 18, 2023 Published
May 31, 2026 Updated
5.00 star(s)
Average rating (2)
5 MB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Gameplay
  1. Minigame
  1. Staff
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
  1. 1.20
  1. 1.19
  1. 1.18
  1. 1.17
  1. 1.16
  1. 1.15
  1. 1.14
  1. 1.13
  1. 1.12
  1. 1.11
  1. 1.10
  1. 1.9
  1. 1.8
  1. 1.7
Supported languages
  1. English
  1. Italian
Includes DRM
No
Source access (legacy)
Closed source & unobfuscated
Creator
Owner
Recommended for you
Not yet rated
22 purchases
Control every single action performed across the entire network (+Web Panel)
Not yet rated
11 purchases
3.00 star(s) 2 ratings
13 purchases
Create a guild with all players, manage roles and set tags
Not yet rated
10 purchases
Check player cps wherever you want within your network
Not yet rated
6 purchases
Top