Private tables let players create password-protected tables and invite friends to play. Unlike regular tables — which are created by admins and appear in the public lobby — private tables are created by players themselves. The admin panel gives you oversight and management tools for all private tables on the platform.
Navigate to Game Management > Private Tables to access this section.
Prerequisites
Private tables require the Private Games feature toggle to be enabled. Go to Settings > Settings > Features and enable Private Games. When disabled, the Private Tables menu item is hidden and all player-facing private table endpoints return an error.
How Private Tables Work
- A player opens the Play with Friends section in the lobby and creates a table by choosing a name, password, game type, stakes, and buy-in range.
- The system generates a 6-character alphanumeric invite code (e.g.,
A3F8B1). - The creator shares the invite code or table link with friends.
- Friends enter the invite code and the table password to join.
- Once joined, players are added as members of the table and can return to it at any time without re-entering the password.
- Private tables expire after 7 days by default. When the server restarts, non-expired tables are automatically restored.
Differences from Regular Tables
| Aspect | Regular Tables | Private Tables |
|---|---|---|
| Created by | Admin or game scheduler | Players |
| Visibility | Listed in the public lobby | Hidden; accessible only via invite code or direct link |
| Access control | Open to all (or password-optional) | Password required to join |
| Membership | None; anyone can sit | Members tracked with roles (Owner, Admin, Member) |
| Rake | Configurable by admin | Virtual chip tables: none. Real money tables: follows the global rake settings when rake is enabled |
| Expiration | No expiration | Expires after 7 days by default |
| Limit per user | No limit | Maximum 5 active tables per non-admin user |
Table List
The list shows all private tables on the platform with the following columns:
| Column | Description |
|---|---|
| Name | Table display name. A lock icon indicates the table is password-protected; an open lock indicates no password. |
| Creator | Username of the player who created the table |
| Game Type | Poker variant (e.g., Hold’em, Omaha, Short Deck) |
| Stakes | Small blind / Big blind |
| Members | Number of players who have joined the table |
| Invite Code | The 6-character code players use to find and join the table |
| Created | Date the table was created |
| Style | Assigned table style (dropdown for changing) |
| Actions | Delete |
Search
Use the search bar to filter tables by name, creator username, or invite code. The search is case-insensitive and resets pagination to page 1 when changed.
Assigning a Table Style
Each private table row has a Style dropdown in the list. Use it to assign or change the visual theme for the table.
| Option | Effect |
|---|---|
| Default | Uses the platform default style, or the private-table default style if one is configured |
| Any active style | Applies that specific style to the table |
When you change the style, the update takes effect immediately. Players who are currently seated at the table receive a live style refresh without needing to reload the page.
Private Table Default Style
You can designate a table style as the default for all newly created private tables. In Game Management > Table Styles, click Set Private Default on an active style. When a player creates a private table without selecting a specific style, this default is applied automatically.
Deleting a Private Table
Click the Delete (trash) icon on any table row. A confirmation dialog appears:
Are you sure you want to delete "Table Name"? This will remove the table and all its members. This action cannot be undone.
Deleting a private table:
- Removes all member records (cascade delete)
- Removes the in-memory game table so no new hands can start
- Preserves historical game and hand records for audit purposes
Requires tables:delete permission.
Player-Side Workflow
Understanding the player experience helps when providing support.
Creating a Table
Players open Play with Friends in the lobby and fill in:
| Field | Description | Constraints |
|---|---|---|
| Table Name | Display name | Required, max 100 characters |
| Password | Access password | 4 to 72 characters |
| Game Type | Poker variant | Texas Hold’em (default), Omaha, PLO5, Omaha Hi-Lo, Mixed Game, Short Deck, 7-Card Stud, Stud Hi-Lo |
| Mode | Real Money or Virtual Chips | Defaults to Virtual Chips; subject to feature toggles |
| Max Players | Seat count | 2 to 10; PLO5 is limited to 8 |
| Small Blind / Big Blind | Blind amounts | Big blind must be >= small blind |
| Min / Max Buy-In | Chip range | Max must be >= min |
| Ante | Optional forced bet | 0 to big blind amount |
| Style | Visual theme | Optional; uses private-table default if not set |
After creation, the player receives the invite code and is automatically added as the table Owner.
Joining a Table
Players can join by entering an invite code or using a direct link. The flow:
- Enter the invite code in the Join Table field
- A preview shows the table name, game type, stakes, and player count
- Enter the table password
- On success, the player is added as a Member and navigated to the table
Join attempts and invite code lookups are each rate-limited to 10 per minute per user to prevent password brute-forcing. Table creation is limited to 20 requests per 10 minutes per user.
Member Roles
| Role | Capabilities |
|---|---|
| Owner | Full control — can delete the table, promote/demote members, remove members, assign admin roles |
| Admin | Can add and remove regular members |
| Member | Can view the table, sit down, and play |
The table creator is always the Owner. Members who join via invite code are added with the Member role.
Permissions
Admin actions on private tables use the standard tables permission set:
| Action | Required Permission |
|---|---|
| View private tables list | tables:read |
| Assign or change table style | tables:edit |
| Delete a private table | tables:delete |
Notes for Operators
- Private tables are restored automatically on server restart. Non-expired tables are recreated in memory in a "waiting" state with no active hand.
- The 5-table-per-user limit does not apply to users at permission level
a1or above. - Invite codes are generated randomly and guaranteed unique by a database constraint. Collisions are retried automatically.
- Deleting a private table from the admin panel removes its live game table immediately, including one with a hand in progress.
- Private tables always use No-Limit betting. This cannot be changed by the player or admin.