Chapter 13 of 13
Limits at a glance
Every number in one table: response times, state sizes, Whisper groups, pending actions, signature freshness and Game Settings fields.
| What | Limit |
|---|---|
| Protocol version | 1 (camtable in the manifest). |
| Engine response time, and the host’s time to commit an intent | 3 seconds. |
| Host away, either mode | The match is paused and actions are rejected (HOST_AWAY) for up to 15 minutes; timers are held. The host’s return resumes it, otherwise it ends. |
| Game actions waiting on a room | 3 per player, 16 per room; one more is rejected (TOO_MANY_PENDING_ACTIONS, ROOM_BUSY). |
| Players in a Whisper | 2 to 6 per group your rules name; 2 for one made by request. A player is in one Whisper at a time. Whispers exist only while a match runs, and only for a Play Option that declares whisper. |
| Whisper Requests | Only while your state says whispers.requests: "open"; a request is for one other player. |
| Messages written in a Whisper | At most 500 characters each; the room keeps the newest 50 of each Whisper, for its players who rejoin, and forgets them when it ends. |
| Call Mute | Holds only while the match runs; lifts at its end, when the frame closes and when the player leaves. |
| State / views (each), either mode | 64 KB serialized. |
| Engine response body | 1 MB. |
Engine rejected code / message |
100 / 500 characters. |
| Engine signature freshness | 5 minutes. |
| Manifest URL / engine URL scheme | https (http for localhost). |
| Players per Play Option | minPlayers to maxPlayers as you declare them. |
| Game Settings per Play Option | 24 fields (GAME_SETTINGS_MAX_FIELDS); ids of up to 64 characters, option values of 1 to 64. |
These constants are exported from @camtable/sdk/addon
(ENGINE_TIMEOUT_MS, ENGINE_MAX_STATE_BYTES, ENGINE_MAX_RESPONSE_BYTES, GAME_SETTINGS_MAX_FIELDS, …).