Skip to main content

Game & Table Events

These events track gameplay activity at cash tables, including hand outcomes, player seating, and table lifecycle.

Related Documentation

OnGameDone

Triggered before ShowResults when a hand is completed. Contains the full hand outcome including all participant data.

When it fires:

  • Every completed hand at cash tables
  • Every completed hand at tournament tables
FieldTypeDescription
gameIdintegerInternal game/hand ID
tableIdintegerTable ID
tournamentIdintegerTournament ID (0 for cash games)
totalRakeintegerTotal rake collected (in cents)
gameStartstringHand start timestamp (YYYY-MM-DD HH:MM:SS)
gameEndstringHand end timestamp
tableCardsstringCommunity cards (semicolon-separated card codes)
tableCardsLowerRowstringLower row cards (Run It Twice mode only)
rakePartdecimalRake percentage (e.g., 0.025 = 2.5%)
rakeCapintegerMaximum rake amount (in cents)
numPlayersOnFlopintegerPlayers remaining at flop
numPlayersOnTurnintegerPlayers remaining at turn
numPlayersOnRiverintegerPlayers remaining at river
numPlayersOnShowDownintegerPlayers at showdown
gameTypeintegerGame type code
unclaimedPotintegerUnclaimed pot amount (in cents)
moneyTypeintegerCurrency code
smallBlindintegerSmall blind amount (in cents)
bigBlindintegerBig blind amount (in cents)
anteintegerAnte amount (in cents)
participationsarrayArray of participant objects (see below)

Participant Object

Each entry in the participations array contains:

FieldTypeDescription
playerIdintegerInternal player ID
skinIdintegerPlayer's skin ID
externalIdstringExternal system player ID
externalSystemCodestringExternal system code
betintegerTotal amount bet (in cents)
potintegerPlayer's pot contribution
rakeintegerRake paid by player
isOutbooleantrue if player folded or mucked before showdown
outRoundintegerRound player exited: 0/1 = preflop, 2 = flop, 3 = turn, 4 = river, 5 = showdown
isWinbooleantrue if player won the hand
isAwaybooleantrue if player was Away at hand start
isSBbooleantrue if player posted small blind
isBBbooleantrue if player posted big blind
isStraddlebooleantrue if player posted straddle
pocketCardsstringPlayer's hole cards (semicolon-separated codes)
highCombinationstringCards in player's high hand
highCombinationCodestringEncoded high hand: [combo type].[cards].[game type].[mode H/L]
lowCombinationCodestringEncoded low hand (Hi/Lo games only)
stackAtHandBeginintegerStack at hand start (in cents)
stackAtHandEndintegerStack at hand end (in cents)
betOnPreflopintegerAmount bet preflop
betOnFlopintegerAmount bet on flop
betOnTurnintegerAmount bet on turn
betOnRiverintegerAmount bet on river
insuranceFeeintegerInsurance premium paid
insuranceClaimintegerInsurance payout received
playerOnTableIdintegerTable session ID
playerInTournamentIdintegerTournament session ID
scorePointsintegerPoints scored (Rummy, Chinese Poker, Big2, Callbreak)
wonPointsintegerPoints won
totalPointsintegerTotal accumulated points
rankintegerPlayer's finishing rank in the hand
externalSessionIdstringExternal session identifier

Example:

{
"gameId": 236645,
"tableId": 242487,
"tournamentId": 0,
"totalRake": 180,
"gameStart": "2020-08-14 03:50:19",
"gameEnd": "2020-08-14 03:51:49",
"tableCards": "3;28;1;2;3",
"gameType": 72,
"smallBlind": 100,
"bigBlind": 200,
"participations": [
{
"playerId": 47830,
"externalId": "751632",
"bet": 5000,
"isWin": true,
"pocketCards": "3;28",
"stackAtHandBegin": 90000,
"stackAtHandEnd": 95000
}
]
}

OnGameHistoryDone

Triggered after ShowResults with the complete hand history containing all game actions.

When it fires:

  • After every completed hand (following OnGameDone)
FieldTypeDescription
gameIdintegerGame/hand identifier
tableIdintegerTable identifier
chunkStartstringTimestamp of events chunk
eventsstringEncoded hand history events

Example:

{
"gameId": 236645,
"tableId": 242487,
"chunkStart": "2020-08-14 03:50:19",
"events": "GS 236645 wsi|DL 1 4 5|SB 4 100|BB 5 200|..."
}
Hand History Format

The events field contains pipe-separated mnemonic codes. See Mnemonic Codes for Hand History Events for the complete reference.


OnPlayerSeatedDown

Triggered when a player takes a seat at a cash table.

When it fires:

  • Player sits down at a cash game table
  • Player tops up their stack (with isTopUp: true)
FieldTypeDescription
objectIdintegerUser ID
playerIdintegerUser ID
tableIdintegerTable identifier
playerOnTableIdintegerTable session ID
externalIdstringExternal system player ID
externalSystemCodestringExternal system code
entryCntintegerEntry number (for multi-entry)
skinIdintegerUser's skin ID
numActivePlayersintegerCurrent active players at table
isTopUpbooleantrue if this is a stack top-up
rakeCapintegerTable rake cap (in cents)
rakePartdecimalTable rake percentage
maxPlayersintegerMaximum seats at table
seatAmountintegerBuy-in amount (in cents)
externalSessionIdstringExternal session identifier

Example:

{
"params": {
"objectId": 81622,
"playerId": 81622,
"tableId": 34534,
"playerOnTableId": 10351,
"externalId": "234324",
"externalSystemCode": "default",
"entryCnt": 1,
"numActivePlayers": 2,
"isTopUp": false,
"seatAmount": 5000,
"maxPlayers": 6
}
}

OnPlayerEntrySeatedDown

Triggered when a player is seated at a fast-fold (Zoom/Rush) table.

When it fires:

  • Player joins a fast-fold poker pool
FieldTypeDescription
playerIdintegerUser ID
objectIdintegerUser ID
tableIdintegerTable identifier
playerEntryIdxintegerEntry number
skinIdintegerUser's skin ID
externalIdstringExternal system player ID
externalSystemCodestringExternal system code
playerOnTableIdintegerTable session ID
seatAmountintegerBuy-in amount (in cents)
externalSessionIdstringExternal session identifier

Example:

{
"playerId": 6121,
"tableId": 25291772,
"playerEntryIdx": 1,
"skinId": 0,
"externalId": "999",
"externalSystemCode": "A",
"playerOnTableId": 36120986,
"seatAmount": 5000
}

OnPlayerLeaveTable

Triggered when a player leaves a table. For cash tables, fires when funds are returned to balance. For tournaments, fires on elimination or table balancing.

When it fires:

  • Player stands up from cash table
  • Player eliminated from tournament
  • Player moved during tournament table balancing
FieldTypeDescription
objectIdintegerUser ID
playerIdintegerUser ID
tableIdintegerTable identifier
amountintegerChips returned (in cents)
externalIdstringExternal system player ID
externalSystemCodestringExternal system code
skinIdintegerUser's skin ID
templateTableIdintegerTemplate table ID (0 = no template)
sessionTimedecimalTime spent at table (seconds)
playerEntryIdxintegerEntry number
standUpCauseintegerReason code (see below)
externalSessionIdstringExternal session identifier

Stand Up Cause Codes

CodeReasonDescription
0UnknownReason not known
1FFRealTableDestroyFast-fold table destroyed
2FFPlayerDisconnectDisconnected during fast-fold
3FFPlayerEntryDestroyFast-fold entry destroyed
4FFPlayerEntryFastFoldedPlayer quick-folded
5FFPlayerEntrySitOutSit-out timer expired (fast-fold)
6FFPlayerEntryLeaveTablePlayer left fast-fold table
7TableClosedTable closed (tournament end, admin action, balancing)
8CrashRecoverySystem crash recovery
9FictitiousGameStateResetFast-fold logic reset
10KickPlayer kicked/banned
11DefaultActionAuto stand-up (e.g., Rummy drop)
12UnauthorizeSessionSession invalidated
13ReservedSeatTimeoutDidn't buy in after reserving seat
14DisconnectTimeoutDisconnected too long
15SitoutTimeoutSat out too long
16NoCashTimeoutInsufficient funds timeout
17SafeBlockTimeOutBlock grace period expired
18ManualLeaveTablePlayer chose to leave
19NoCashInsufficient funds for minimum
20UnreserveSeatCancelled seat reservation
21UnjoinControlListLeft waiting list
22MovePlayerMoved during table balancing
23TourKnockOutKnocked out of tournament
24UnregisterPlayerUnregistered from tournament
25TourWinnerTournament winner (eliminated with prize)
26TourFinalStageMoved to final table
27UnionStageMulti-entry merged
30EliminatedEliminated after points added (Big2, Rummy)

Example:

{
"params": {
"objectId": 105,
"playerId": 105,
"tableId": 1166896,
"amount": 8000,
"externalId": "123412344",
"externalSystemCode": "434",
"standUpCause": 18,
"sessionTime": 1250.5,
"playerEntryIdx": 0
}
}

OnTableCreated

Triggered when a new table is created in the system.

When it fires:

  • New cash table created
  • New club table created
  • Tournament table created during balancing
FieldTypeDescription
tableIdintegerNew table ID
objectIdintegerNew table ID
templateTableIdintegerParent/template table ID (0 = no template)

Example:

{
"tableId": 955897,
"objectId": 955897,
"templateTableId": 0
}