Skip to content

Match End

For: intermediate admins tuning end-of-match feedback and disconnects.

What players see and where they go at the end: limbo notes, announcements, end delay, and disconnect handling.

Limbo Feedback

Players waiting to spawn (headstart holds, join holds, respawn waits) see personal return notes on the countdown marks. The match sees a solo note with the waiter's role color when exactly one waits; two or more waiting players broadcast a headcount instead, at most every:

settings:
  match:
    leaving:
      limbo-broadcast-interval: 20

Waiting players hear only their personal notes; the solo, headcount, and headstart broadcasts skip them (the countdown sound still plays match-wide). Every spawn announces in chat.

Role Announcement

Every participant learns their own role the moment a match starts, in chat and as a title, with a sound. All three toggle independently:

settings:
  players:
    identity:
      announce-roles:
        chat:
          enabled: true
        title:
          enabled: true
          fade-in-seconds: 0.5
          stay-seconds: 3.0
          fade-out-seconds: 0.5
        sounds:
          enabled: true

The announcement runs before the pre-start window opens, so players always learn their roles before anything can happen. Spectators are announced too; only none and afk players are skipped. Each role hears its own sound (sounds.announce.*). When both chat and title are disabled, no announcement plays at all.

Advancement Announcements

Advancement chat is match-scoped: when a participant earns an advancement in a running match, only their own match sees the line. The message key is manhunt.advancement-made with placeholders rolecolor, player, and advancement:

manhunt:
  advancement-made: "{prefix}{rolecolor}{player} <white>has made the advancement {brandcolor}[{advancement}]"

Recipe unlocks, hidden advancements, and display-less advancements stay silent, as do pre-start matches. Vanilla announcement is forced off (see Game Rules).

Match End Delay

How long the plugin waits between the win or cancel announcement and final cleanup (end commands, lobby return, deactivation):

advanced:
  advanced-match-controls:
    finish:
      end-delay: 10.0      # in seconds

Match statistics broadcast halfway through the delay. Interval modifiers stop at match end, so they never fire during it. Set to -1 to skip the delay entirely; other negatives count as zero.

To cancel right away without waiting, run /mh end -i (-immediate). Stats post instantly, then end commands and cleanup. It also works mid delay. Cancelling never saves career stats, with or without the flag.

Disconnect Handling

What happens when a participant disconnects mid-match, per role:

advanced:
  advanced-match-controls:
    disconnect-handling:
      speedrunner:
        reconnect-grace-seconds: 60
        max-strikes: 3
      hunter:
        reconnect-grace-seconds: 60
        max-strikes: 3

reconnect-grace-seconds is how long a disconnected player has to rejoin before removal from the match. A removed speedrunner counts as dead (no speedrunners left means the hunters win); a removed hunter simply leaves (no hunters left means the speedrunners win).

max-strikes is how many disconnects a player can accumulate before the next one removes them instantly. Strikes carry across reconnects within the match. Set to 1 to disable retries entirely.

Next Steps