OneLiteFeatherNET / OneLiteFeatherNET/Voyager
Spectator mode: watch ongoing race after finishing or DNF
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 0
- Forks
- 0
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 12
Description
Description
Players who finish a race early or disconnect/did-not-finish (DNF) currently have nothing to do while waiting for others to complete. A spectator mode lets them watch the remaining race from a free-camera or follow-player perspective.
Acceptance Criteria
- After crossing the finish line, player is automatically transitioned to spectator mode
- Spectator can cycle through active racers (next/prev player keybind via interaction)
- Spectator HUD shows: currently watched player name, their score, position in standings
- Spectators are invisible to racing players and cannot interfere with collision detection
- Spectator mode ends and player returns to lobby when the race ends
- Late-join players (joining after race has started) also enter spectator mode directly
- Unit test: spectator entity has no
CollisionComponent, noBoostComponent
Technical Details
- New
SpectatorComponentmarker component on the player ECS entity CollisionSystemmust skip entities withSpectatorComponent- Use Minestom spectator gamemode and camera API
Dependencies
- Live standings scoreboard (players need to be able to see who they're spectating)
Estimate
M
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the player ECS entity and CollisionSystem, then review Minestom’s spectator gamemode and camera API. Add the SpectatorComponent and connect race-finish, DNF, and late-join transitions, while using the live standings scoreboard for watched-player details. Done means the listed spectator behavior works and the unit test confirms spectator entities lack CollisionComponent and BoostComponent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100