A newcomer who connects while a match is running waits as a spectator until the round ends, and nothing tells them that .join would put them in straight away. Many first-time players arrive this way, and those who leave within minutes mostly arrived this way.
tws_t5_join.gsc:42 and tws_t6_join.gsc:47 spawn a spectating newcomer immediately when they type .join, as the T5 README describes ("Type .join in chat while spectating after joining a match in progress to spawn immediately", t5/scripts/README.md:231).
The only mention is the .help line "Join mid-round (newcomers only)" (tws_t5_join.gsc:12, tws_t6_join.gsc:17). The welcome on connect shows the map record and nothing else (lb_welcome, tws_t5_leaderboard.gsc:67-91).
In Electric Cherry's completed matches, 423 players had a first recorded day on or before 4 October. 179 of them (42%) joined their first match more than 2 minutes after it started. 56 left within 10 minutes while their match carried on, and 46 of those 56 had joined mid-match. Only 4 of the 56 came back within a week, against 11% of the 423 overall.
Only 8 players typed .join in chat between 7 and 12 October.
Fix
On T5 and T6, a newcomer who connects while a round is in progress sees "You're spectating until the round ends. Type .join to play now", on their own screen only.
The prompt appears only when .join would accept them: not for players who have already played this match (tws_t5_join.gsc:52-57, tws_t6_join.gsc:56-60), and not when the game isn't ready for .join.
The prompt repeats (for example every 30 seconds) until the player spawns or disconnects, and stops at the round change.
The live checks cover a newcomer connecting mid-round, a player reconnecting after they've played, and a connect between rounds.
A newcomer who connects while a match is running waits as a spectator until the round ends, and nothing tells them that `.join` would put them in straight away. Many first-time players arrive this way, and those who leave within minutes mostly arrived this way.
- `tws_t5_join.gsc:42` and `tws_t6_join.gsc:47` spawn a spectating newcomer immediately when they type `.join`, as the T5 README describes ("Type `.join` in chat while spectating after joining a match in progress to spawn immediately", `t5/scripts/README.md:231`).
- The only mention is the `.help` line "Join mid-round (newcomers only)" (`tws_t5_join.gsc:12`, `tws_t6_join.gsc:17`). The welcome on connect shows the map record and nothing else (`lb_welcome`, `tws_t5_leaderboard.gsc:67-91`).
- In Electric Cherry's completed matches, 423 players had a first recorded day on or before 4 October. 179 of them (42%) joined their first match more than 2 minutes after it started. 56 left within 10 minutes while their match carried on, and 46 of those 56 had joined mid-match. Only 4 of the 56 came back within a week, against 11% of the 423 overall.
- Only 8 players typed `.join` in chat between 7 and 12 October.
**Fix**
- [ ] On T5 and T6, a newcomer who connects while a round is in progress sees "You're spectating until the round ends. Type .join to play now", on their own screen only.
- [ ] The prompt appears only when `.join` would accept them: not for players who have already played this match (`tws_t5_join.gsc:52-57`, `tws_t6_join.gsc:56-60`), and not when the game isn't ready for `.join`.
- [ ] The prompt repeats (for example every 30 seconds) until the player spawns or disconnects, and stops at the round change.
- [ ] The live checks cover a newcomer connecting mid-round, a player reconnecting after they've played, and a connect between rounds.
Reviewed 3bb0b5178e. Unresolved; a related T6 join fix does not implement this ticket.
This review checks the current implementation against every acceptance criterion, regardless of commit references.
Checklist
Private newcomer prompt. Neither join module registers a connection reminder or automatically tells a waiting newcomer to use .join; messages occur only after a command.
Eligible-only prompt. No prompt exists to gate. Existing has-played tracking is connection-local, so the stated already-played-this-match/reconnect case also needs explicit handling.
Repeat and stop rules. There is no reminder loop or corresponding spawn/disconnect/round-change stop behavior.
Live-check coverage. The existing join lifecycle checks do not validate the requested prompt, cadence and stop rules across newcomer/reconnect/between-round connections.
Review notes
664e8da81b fixes T6 setup spawns incorrectly consuming .join eligibility. It is useful adjacent work, not this discoverability feature.
node tools/check_join.mjs: all 17 T6 lifecycle/request checks passed. They use engine shims; this is not live gameplay validation. T5 README explicitly documents connection-local eligibility.
Next steps
Add the private eligibility-aware reminder on both games, define already-played reconnect handling, and validate the prompt lifecycle.
Reviewed 3bb0b5178e40ea6d322093283edb39f160542a07. Unresolved; a related T6 join fix does not implement this ticket.
This review checks the current implementation against every acceptance criterion, regardless of commit references.
**Checklist**
- [ ] **Private newcomer prompt.** Neither join module registers a connection reminder or automatically tells a waiting newcomer to use .join; messages occur only after a command.
- [ ] **Eligible-only prompt.** No prompt exists to gate. Existing has-played tracking is connection-local, so the stated already-played-this-match/reconnect case also needs explicit handling.
- [ ] **Repeat and stop rules.** There is no reminder loop or corresponding spawn/disconnect/round-change stop behavior.
- [ ] **Live-check coverage.** The existing join lifecycle checks do not validate the requested prompt, cadence and stop rules across newcomer/reconnect/between-round connections.
**Review notes**
- 664e8da81bc88ed1b7e57217d09dd28eb19cbbf7 fixes T6 setup spawns incorrectly consuming .join eligibility. It is useful adjacent work, not this discoverability feature.
- node tools/check_join.mjs: all 17 T6 lifecycle/request checks passed. They use engine shims; this is not live gameplay validation. T5 README explicitly documents connection-local eligibility.
**Next steps**
- Add the private eligibility-aware reminder on both games, define already-played reconnect handling, and validate the prompt lifecycle.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
A newcomer who connects while a match is running waits as a spectator until the round ends, and nothing tells them that
.joinwould put them in straight away. Many first-time players arrive this way, and those who leave within minutes mostly arrived this way.tws_t5_join.gsc:42andtws_t6_join.gsc:47spawn a spectating newcomer immediately when they type.join, as the T5 README describes ("Type.joinin chat while spectating after joining a match in progress to spawn immediately",t5/scripts/README.md:231)..helpline "Join mid-round (newcomers only)" (tws_t5_join.gsc:12,tws_t6_join.gsc:17). The welcome on connect shows the map record and nothing else (lb_welcome,tws_t5_leaderboard.gsc:67-91)..joinin chat between 7 and 12 October.Fix
.joinwould accept them: not for players who have already played this match (tws_t5_join.gsc:52-57,tws_t6_join.gsc:56-60), and not when the game isn't ready for.join.Reviewed
3bb0b5178e. Unresolved; a related T6 join fix does not implement this ticket.This review checks the current implementation against every acceptance criterion, regardless of commit references.
Checklist
Review notes
664e8da81bfixes T6 setup spawns incorrectly consuming .join eligibility. It is useful adjacent work, not this discoverability feature.Next steps