CollaboKeys gives you two distinct levers for controlling what happens when a player presses a key: key assignment (which player owns a particular key) and key enabled status (whether a key can be emulated at all, regardless of who owns it). Understanding both is essential for running a smooth session.Documentation 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.
Key Assignment
How Auto-Reservation Works
WhenallowReservationAtStart is true (the default) and a player presses a key that no one owns yet, that key is automatically assigned to them. From that point on, only that player can press the key. Other players who try to press the same key receive a message: “[key] is already reserved.”
If allowReservationAtStart is false at startup, or auto-reservation is later disabled with disable reservation, players who press an unassigned key receive the message: “Auto-reservation is disabled by admin.”
Checking a Key’s Assignment
Thekey assign command (alias: key a) does not directly assign a key to a player — direct admin assignment is not supported by the server. Instead, it prints guidance based on the key’s current state:
- If the key is unassigned: the server instructs you to ask the player to press it once so auto-reservation can assign it to them.
- If the key is already reserved: the server suggests running
key revoke <keyname>first to clear the existing assignment.
Revoking Key Assignments
Revoking a key clears its ownership so any player can claim it on their next press.When a player disconnects, the server automatically calls
freeAssignment for their player ID, which revokes every key they held. You do not need to revoke keys manually after a player leaves.Limiting Keys Per Player
You can cap how many keys each player may hold simultaneously using theplayer.maxReservedKeys config option:
| Config key | Default | Effect |
|---|---|---|
player.maxReservedKeys | 0 | Maximum keys per player; 0 means no limit |
keyCount > maxReservedKeys), so a player is allowed to hold exactly maxReservedKeys keys — the limit is enforced only when they attempt to claim a key that would push them over that number. For example, setting maxReservedKeys: 3 allows a player to hold 3 keys but blocks a 4th.
When a player tries to claim a key that would exceed the limit, they see: “You can’t reserve any more keys.”
Key Enabled / Disabled Status
Every key in the keycodes table has an enabled flag independent of its assignment. Disabled keys cannot be emulated even if a player has them assigned — pressing them produces the message: “[key] is disabled by admin.”Keys Disabled by Default
Some keys are disabled out of the box to prevent accidental system-level interference:- Modifier keys:
shift,caps lock,delete,tab,command,option,control,esc - Function keys: F1–F20
Enabling Keys
Disabling Keys
Emulation Toggle
The emulation toggle is a global switch that controls whether any keypress from any player reaches the host operating system.| Config key | Default | Effect |
|---|---|---|
allowEmulationAtStart | true | Whether emulation is active when the server first starts |
Disabling emulation is the safest way to temporarily pause all input while you navigate the host’s desktop, switch games, or step away — without disconnecting players or losing their key assignments.
Auto-Reservation Toggle
Auto-reservation controls whether players can claim new keys. Disabling it freezes the current assignment state: players who already own keys can still use them, but no unassigned key can be claimed.| Config key | Default | Effect |
|---|---|---|
allowReservationAtStart | true | Whether auto-reservation is active when the server first starts |
Rate Limiting
CollaboKeys enforces a global keypress rate limit to prevent input flooding.| Config key | Default | Effect |
|---|---|---|
maxKeypressesPerMinute | 150 | Maximum combined keypresses per minute across all players; 0 disables the limit |
Viewing Current Key State
To inspect which keys are assigned, enabled, or disabled at any time:- Admin panel: Click list keycodes — opens
/keycodesin a new tab with a full live table. - Console: Run
keycodesto print the table directly in the terminal. - Browser: Visit
http://<host-ip>:<port>/keycodesfrom any device on the network.