@octane-rgs/live
v1.0.3
Published
Live game SDK for Octane RGS — betting, rounds, settlement
Readme
@octane-rgs/live
SDK for live/dealer games on Octane RGS. Handles sessions, betting, round management, settlement, and queries.
Install
npm install @octane-rgs/liveQuick Start
import { OctaneLiveClient } from "@octane-rgs/live";
const rgs = new OctaneLiveClient({
baseUrl: "https://your-rgs.example.com",
apiKey: "your-api-key",
});
const { sessionToken, tableSessionId } = await rgs.launch({
externalPlayerId: "player-123",
tableSessionId: crypto.randomUUID(),
tableGameCode: "baccarat",
currency: "USD",
});
const { roundId } = await rgs.createRound({
tableSessionId,
bettingOpenAt: new Date().toISOString(),
bettingClosedAt: new Date(Date.now() + 30_000).toISOString(),
});
await rgs.placeBet({
sessionToken,
roundId,
bets: [{ betOption: "player", amount: 1000 }],
requestId: crypto.randomUUID(),
});
await rgs.settle({
roundId,
gameType: "baccarat",
multipliers: [
{ betOption: "player", multiplier: 2 },
{ betOption: "banker", multiplier: 0 },
],
});API
Sessions
| Method | Description |
|--------|-------------|
| launch(params, apiKey?) | Create a player session |
| operatorInfo(apiKey) | Get operator details and bet config |
| getBalance(sessionToken) | Get player balance from operator wallet |
| getPlayerSession(sessionToken) | Get session details |
| markStarted(sessionToken) | Mark session as started |
| realityCheck(sessionToken) | Session duration, total wagered, net position |
Table Sessions
| Method | Description |
|--------|-------------|
| upsertTable(params) | Create or update a table session |
| endTable(tableSessionId, endedAt) | End a table session |
| getTableSession(tableSessionId) | Get table session details |
| lobbies(publicOnly?) | List active table sessions |
| activeByGame(gameCode) | Find active table by game code |
| activeByAvatar(slug) | Find active table by avatar slug |
| activeByAvatarGame(avatarName, gameName) | Find active table by avatar + game |
| updateRoomStates(params) | Batch update room states (active/dormant) |
| cleanup(params) | Find and mark stale sessions as dead |
Rounds
| Method | Description |
|--------|-------------|
| createRound(params) | Create a new betting round with betting window |
| listRounds(tableSessionId, order?) | List rounds for a table session |
| findRound(params) | Find a round by ID or number |
| updateRoundOutcome(roundId, data) | Store game outcome data on a round |
Betting
Requests must be serialized per player per round.
placeBet,doubleBet, andundoBetread-then-write the player's action stack without server-side locking. Concurrent requests with differentrequestIdvalues will produce undefined financial outcomes (double refunds, misordered operations). Queue mutations client-side and await each response before sending the next request.
| Method | Description |
|--------|-------------|
| placeBet(params) | Place a bet on an open round |
| doubleBet(params) | Double existing bets on a round |
| undoBet(params) | Undo the last bet action |
| settle(params) | Settle a round with integer multipliers |
| voidRound(roundId) | Void a round and refund all bets |
Queries
| Method | Description |
|--------|-------------|
| roundWinners(roundId) | Get winners for a round |
| lastPayout(sessionToken) | Get last payout amount |
| betStatistics(roundId, sides) | Get bet distribution stats |
| playerHistory(sessionToken, limit?, offset?) | Get player bet/payout history |
| roundHistory(tableSessionId, limit?) | Get round history for a table |
Free Rounds
| Method | Description |
|--------|-------------|
| getFreeRounds(playerId, gameCode?) | Get active free round grant |
Self-Exclusion
| Method | Description |
|--------|-------------|
| excludePlayer(params) | Self-exclude a player for a duration |
| getExclusionStatus(externalPlayerId) | Check exclusion status |
