Skip to content

docs(openspec): propose add-late-join-spectator - #442

Merged
theEvilReaper merged 1 commit into
mainfrom
docs/propose-late-join-spectator
Oct 28, 2026
Merged

theEvilReaper merged 1 commit into
mainfrom
docs/propose-late-join-spectator

Conversation

@TheMeinerLP

Copy link
Copy Markdown
Contributor

Proposed changes

Someone who connects while a round is already running is turned away with "the game has already started". They can't play, and they can't even watch the round they came for. Their only option is to wait for the restart and reconnect.

This proposal describes the change that lets them watch instead. A late joiner becomes a spectator with the same rules as a player who died in the round:

  • invisible to the living players in the world;
  • flying, with the overview of the survivors;
  • reads the chat of the living players, while their own chat stays with the spectators.

The living players are not told about the join, so the late joiner can't give anything away.

A late joiner is never a participant. They get no statistics row and no pity progress, can't use a Slender pass, and don't count as a living survivor. Leaving again does nothing to the round.

Decisions taken with the maintainer:

  • Who may join: everybody, no permission needed.
  • When: in every phase after the lobby (preparation, game, end). The lobby is unchanged.
  • Limit: a separate round setting maxSpectators, default 8. Only late joiners count against it. 0 brings back the old refusal. maxPlayers now applies in the lobby only.

Out of scope: how a player reaches a server that CloudNet reports as INGAME. That is decided on the proxy and hub side.

This PR contains only the OpenSpec documents. The implementation follows in its own PR, feat(spectator): let late joiners watch the running round, after this one is merged.

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update (if none of the other choices apply)

Checklist

  • I have read the CONTRIBUTING.md
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)

Further comments

openspec validate add-late-join-spectator --strict passes. The design's open questions (the wording of the two new messages, and whether the overview should show the round time) can be settled in the code PR.

@github-actions github-actions Bot added the area: docs Everything related to documentation label Oct 28, 2026
@theEvilReaper
theEvilReaper merged commit a301eae into main Oct 28, 2026
6 checks passed
@theEvilReaper theEvilReaper added this to the v2.21.0 milestone Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: docs Everything related to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants