The waiting room is an optional gate that prevents players from pressing keys until an admin explicitly lets them through. When a player is in the waiting room theirDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/tinkerer9/CollaboKeys/llms.txt
Use this file to discover all available pages before exploring further.
waitingRoom flag is set, and canType() returns false — meaning any keydown events they send are silently ignored by the server. This makes the waiting room ideal for controlled game starts, tournament-style sessions, or any situation where you want to decide exactly when each participant becomes active.
Players who have not yet set a username are also blocked from typing, independently of the waiting room.
canType() requires both that a name is set and that the player is not in the waiting room. A player admitted from the waiting room before they enter a name will still be unable to press keys until they set one.Enabling the Waiting Room
By default, players join the game immediately upon connecting and entering a username. To route all new players through the waiting room instead, set the following option insrc/config.json:
| Config key | Default | Effect |
|---|---|---|
player.waitRoomWhenJoined | false | When true, every player who connects starts in the waiting room |
Changing
waitRoomWhenJoined only affects players who connect after the server starts. Players already in-game when you edit the config are not retroactively moved to the waiting room.Admitting Players
Admitting a player moves them out of the waiting room. They receive the message “You have been admitted from the waiting room.” on their client and can immediately begin pressing keys.From the Admin Panel
Find the Waiting Room control
In the Controls section, locate the waiting room row with the admit/dismiss dropdown.
Select Admit and choose a target
Set the first dropdown to admit. Then choose all players or specific player and enter a player ID if targeting one person.
From the Console
Dismissing Players
Dismissing a player sends them back to the waiting room. They receive the message “You have been dismissed to the waiting room.” and their key input is blocked again until re-admitted. Their key assignments are not automatically revoked — they retain their reserved keys but cannot use them while waiting.From the Admin Panel
Follow the same steps as admitting, but set the first dropdown to dismiss instead of admit.From the Console
Dismissing a player does not disconnect them or clear their reserved keys. If you also want to clear their keys, use
key revoke all or revoke the specific keys they hold after dismissing them.Listing Waiting Room Players
To see only the players currently sitting in the waiting room:- Their display name (or
player #<id>if they haven’t set one) - Their internal player ID
- Their IP address
- Their currently assigned keys
Use Cases
Tournament Brackets
Keep all players in the waiting room and admit only the participants for each round. Dismiss them when the round ends to reset control for the next match.
Moderated Sessions
Review each player who joins before allowing them to interact with the game — useful in public or semi-public sessions where you want to screen participants.
Synchronized Game Starts
Admit all players simultaneously with
waitingroom admit all right when the game begins, ensuring no one gets a head start before the session officially opens.Managing Chaos
In busy lobbies, admit players in small waves rather than all at once to prevent a flood of simultaneous key claims and maintain an orderly distribution of keys.