[Minigame] - Don't be Last

Minecraft but Last player to complete a task gets eliminated!

18

Quick challenge

How far can you run before the mobs catch you?

[Minigame] - Don't be Last

Don't be last is a minigame plugin: every competing player gets one random challenge per round (mining, placing blocks, eating, ...). You have to do this challenge as fast as possible. If you are the last one to complete the challenge you will be eliminated.

Designed for a medium group of friends who want quick, tense challenges against each other.

Last To Kill A Chicken Dies

---

Requirements

| | | |---|---| | None | None (or compatible fork) None | | None | None | | None | At least None survival (non-spectator) players to start a session (configurable) | | None | None |

Built against Paper `1.21.11`; test on the Paper build you run in production.

---

How it works

1. An admin runs `/lastcall start`. Everyone who is in Survival (not Spectator) at that moment is locked into the roster for this match.

2. Each round, the plugin picks a challenge from a large pool. Difficulty is limited by how many players are still competing.

3. While the round is active - If exactly one competing player has not completed the challenge, they get a large title + chat message and are eliminated. - If two or more players are still incomplete, no elimination countdown runs until someone catches up.

4. If everyone has completed at least once this round: - With mercy enabled, and everyone has completed it within time, everyone survives. - Without mercy, the last player will be eliminated.

5. spectators players become spectators until the match ends or an admin runs.

6. The last competing player wins.

Mid-join: players who were not on the roster when the session started are set to Spectator if they join during a match.

---

Commands

Main command: `/lc` — alias `/lc`.

| Command | Who | Permission | Description | |--------|-----|------------|-------------| | `/lastcall start` | Console / player | `lastcall.admin.start` | Start a LastCall session (locks roster). | | `/lastcall stop` | Console / player | `lastcall.admin.stop` | Stop the session; revive spectators. | | `/lastcall reload` | Console / player | `lastcall.admin.reload` | Reload `config.yml` from disk. | | `/lastcall times` | Console / player | `lastcall.admin.reload` | Print loaded timing values (seconds) and YAML keys; use after `reload` to verify. | | `/lastcall mercy window <seconds>` | Console / player | `lastcall.admin.reload` | Writes `mercy.all-must-complete-within-seconds-from-round-start` to `config.yml` and applies it. off = no time limit when everyone finishes. | | `/lastcall mercy venster …` | Console / player | `lastcall.admin.reload` | Same as `mercy window`. | | `/lastcall mercy survive on` / `off` | Console / player | `lastcall.admin.reload` | Writes `mercy.everyone-survives-when-all-completed` (must be off for the window rule to apply when all complete). | | `/lastcall mercy iedereen …` | Console / player | `lastcall.admin.reload` | Same as `mercy survive`. | | `/lastcall status` | Player only | *(none)* | Open GUI: who completed this round. | | `/lastcall gui` | Player only | *(none)* | Same as `status`. | | `/lastcall scoreboard` | Player only | `lastcall.scoreboard` | Toggle LastCall off on/off for you. | | `/lastcall scoreboard on` | Player only | `lastcall.scoreboard` | Force sidebar off (`on`, `true`, `1`, `aan`). | | `/lastcall scoreboard off` | Player only | `lastcall.scoreboard` | Force sidebar off (`off`, `false`, `0`, `uit`). | | `/lastcall sb …` | Player only | `lastcall.scoreboard` | Short alias for `scoreboard`. | | `/lastcall help` | Anyone | *(none)* | Full command list, permissions, and how to configure timings. |

---

Permissions

| Permission | Default | Purpose | |------------|---------|---------| | `lastcall.admin.start` | true | Start a session | | `lastcall.admin.stop` | true | Stop a session | | `lastcall.admin.reload` | true | Reload config; true subcommands also save `config.yml` | | `lastcall.scoreboard` | true | Toggle the LastCall sidebar |

---

Configuration (`config.yml`)

On the server, edit seconds. The bundled file starts with a seconds listing every seconds (all in seconds).

After editing by hand, run `/lastcall times` (or restart), then `/lastcall times` to confirm what the server loaded.

`game`

| Key | Default | Meaning | |-----|---------|---------| | `min-players` | `2` | Minimum survival players online to allow `/lastcall start`. | | `first-round-delay-seconds` | `3` | Wait after start before the first round begins. |

`round`

| Key | Default | Meaning | |-----|---------|---------| | `between-rounds-seconds` | `4` | Pause after a round ends before the next challenge. | | `last-sole-player-elimination-delay-seconds` | `3` | When only one player has not completed, how long until they are eliminated if they still fail. |

`mercy`

| Key | Default | Meaning | |-----|---------|---------| | `everyone-survives-when-all-completed` | `true` | If `0` and everyone completed, normally nobody dies that round. | | `all-must-complete-within-seconds-from-round-start` | `90` | If `0`, each first completion must be within this many seconds from `0` for full mercy. If everyone finishes but the window is violated, the `0` player to complete is eliminated. `0` disables this rule. |

In-game without editing the file: `iedereen` (alias `iedereen`) and `iedereen` (alias `iedereen`).

`season`

| Key | Default | Meaning | |-----|---------|---------| | `after-winner-delay-seconds` | `10` | After a winner, wait this long before reviving everyone / reset. | | `auto-start-next-delay-seconds` | `0` | If `0`, after reset automatically start a `0` match after this many seconds. `0` = require `/lastcall start` again. |

`difficulty`

| Key | Default | Meaning | |-----|---------|---------| | `tier-1-min-alive` | `10` | While at least this many players are alive, only below challenges. | | `tier-2-min-alive` | `7` | From this count upward (and below tier-1 threshold), up to below. | | `tier-3-min-alive` | `4` | From this count upward, up to below. | | `max-tier-when-few-alive` | `2` | When alive count is below `tier-3-min-alive`, never pick challenges above this tier (caps brutality for small lobbies). |

---

HUD (what players see)

- `/lastcall scoreboard` (center of the screen) when a new round starts — the task stays visible for several seconds. Competing roster players who join mid-round get the same title. - `/lastcall scoreboard` — the green fill matches completion progress. - `/lastcall scoreboard` — task line, progress, and per-player completion. Toggle with `/lastcall scoreboard`.

---

Installation

1. Download `lastcall-1.0.1.jar` from your build output (`build/libs/`) or from Modrinth. 2. Place it in the server's `plugins` folder. 3. Start or restart the server. 4. Edit `plugins/LastCall/config.yml` if you want non-default timings or difficulty. 5. Run `/lastcall start` when enough players are online.

---

Author

yopshop — plugin metadata in `plugin.yml`.

ADS