Download OpenAPI specification:Download
Third party game developers can easily integrate games (client & server) with Zoot using one of the three integrations options.
Recommended when developing new games.
Develop a game based on the Zoot Game Template.
Zoot Game Template comes with a pre-fab game client and game server.
It equips developers with the necessary tools to quickly integrate new games, providing a comprehensive setup for rendering game-scene, managing play controls, integrating with the Zoot RGS SDK, and facilitating communication with the Zoot Platform, through the Zoot Platform SDK, to access user information and session data.
Zoot Game Template demo: https://template.games.enigmalakecasino.com
Zoot Game Template demo exercised as part of the Zoot Platform: https://getzoot.com/games/test?iframe=https://template.games.enigmalakecasino.com
Steps
Recommended when integrating an existing game client.
Integrate a custom game client with the Zoot Platform SDK.
Steps
Recommended when integrating an existing game server.
Integrate a custom game server with the Zoot RGS SDK.
The Zoot RGS SDK is a TypeScript wrapper around the Zoot RGS API.
Steps
Integrate a custom game client by manually handling iframe post messaging between the game client and Zoot Platform.
Steps
Integrate a custom game game server with the Zoot RGS API for server-to-server communications.
Steps
Initiates a new Game Round with GAME_ROUND_PREPARED
and returns its unique identifier. Plays can only be registered during this Game Round. phase.
gameId required | integer Numeric ID of the game |
{- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2"
}
Start a Game Round and update its status to GAME_ROUND_LIVE
. Only Game Rounds with status GAME_ROUND_PREPARED
can be started.
gameId required | integer Numeric ID of the game |
gameRoundUuid required | string <uuid> |
{- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2"
}
{- "startTimestamp": 1710843467
}
Used to mitigate any exceptions or failures on the Game Server. The Game Round will end and all the registered Plays will be automatically deregistered. Updates Game Round status to GAME_ROUND_CANCELED
gameId required | integer Numeric ID of the game |
gameRoundUuid required | string <uuid> |
{- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2"
}
Update an existent Game Round to GAME_ROUND_FINISHED
status. Only Game Rounds with status GAME_ROUND_LIVE
can be finished.
gameId required | integer Numeric ID of the game |
gameRoundUuid required | string <uuid> |
winMultiplier required | string |
payload | object |
{- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2",
- "winMultiplier": 1.2,
- "payload": {
- "crashNumber": "1.20"
}
}
Register a Play in a Game Round with status GAME_ROUND_PREPARED
. The User balance is deducted the requested amount in order to register a Play.
userId required | integer <int32> |
userNickname required | string |
playAmountInCents required | integer |
gameRoundUuid required | string <uuid> |
coinType required | integer <enum: { SWEEPS: 0, GOLD: 1 }> |
{- "userId": 20310,
- "userNickname": "BigWinner223",
- "playAmountInCents": 1205,
- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2",
- "coinType": 0
}
{- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2",
- "playId": "8bd79867-e797-440e-8dbc-0db09829e455",
- "userId": 20310,
- "userNickname": "BigWinner223",
- "playAmountInCents": 1205,
- "winAmountInCents": 0,
- "winMultiplier": "0",
- "coinType": 0
}
Update a registered Play as a Play Win in a Game Round with status GAME_ROUND_LIVE
.
gameRoundUuid required | string <uuid> |
userId required | integer <int32> |
userNickname required | string |
winAmountInCents required | integer <int32> |
winMultiplier required | string |
playWinTimestamp required | integer <int32> |
gameRoundCurrentProgressInMs required | integer <int32> |
payload | any <object> |
{- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2",
- "userId": 20310,
- "userNickname": "BigWinner223",
- "winAmountInCents": 2819,
- "winMultiplier": "2.34",
- "playWinTimestamp": 1710843467,
- "gameRoundCurrentProgressInMs": 121302,
- "payload": {
- "cashoutTimestamp": 1713094519746
}
}
{- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2",
- "playId": "8bd79867-e797-440e-8dbc-0db09829e455",
- "userId": 20310,
- "userNickname": "BigWinner223",
- "playAmountInCents": 1205,
- "winAmountInCents": 2819,
- "winMultiplier": "2.34",
- "coinType": 0
}
Update a registered Play as a Play Lose in a Game Round.
userId required | integer <int32> |
userNickname required | string |
gameRoundUuid required | string <uuid> |
gameRoundEndTimeInMs required | integer |
{- "userId": 20310,
- "userNickname": "BigWinner223",
- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2",
- "gameRoundEndTimeInMs": 1713095148724
}
{- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2",
- "playId": "8bd79867-e797-440e-8dbc-0db09829e455",
- "userId": 20310,
- "userNickname": "BigWinner223",
- "playAmountInCents": 1205,
- "winAmountInCents": 0,
- "winMultiplier": "0",
- "coinType": 0
}
Cancel a registered Play for a specific User and Game Round. The deducted amount from the User balance is reverted.
gameRoundUuid required | string <uuid> |
userId required | integer <int32> |
userNickname required | string |
{- "gameRoundUuid": "17bfdfeb-82e8-4030-8853-cf9fec248ce2",
- "userId": 20310,
- "userNickname": "BigWinner223"
}
Recommended when developing new games in Unity.
Develop a game based on the Zoot Unity Game Template.
The Zoot Unity Game Template comes with:
- a pre-fab Game Server Socket Manager, used to communicate with the Game Server via a websocket,
- a pair of Platform Event Receiver & Platform Event Sender used for the Unity Game Client to communicate with the Zoot Platform and receive user information (such as userId, userAccessToken, user balance, etc).