Title
Create new category
Edit page index title
Edit category
Edit link
Freerounds
This manual was created by request to show the process of working with free rounds, including the place, where the messages are supposed to be shown.
It will be started from simple sequence diagram, showing steps for working with freespins, and below - real requests-responses from game server on our latest game client SDK, as example.

Step 0.
Freespins are added by operator and stored for player. The very next login the information about freespins will be sent to the game.
Initial response is sent from Casino, and has next structure:
[host]play?playerId={}&gameId={}&platform={desktop/mobile}&gameJs={link to client code on CDN}&walletType={“rm”}” and some other parameters, that can be added (for instance, regulations)
For instance:
Response for this request will have the next view: HTML page with session info and client info. Using session URL, client-server communication starts.
html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <title>Play game</title> <link rel="stylesheet" type="text/css" href="/css/errorDlg.css"> <link rel="stylesheet" type="text/css" href="/css/messageDlg.css"> <style> html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; } </style> </head> <body> <!-- Under this tag session information is received--> <gcw-game gcw-server-url="https://ngs.dev02-gs-stakelogic.com/api/game/1-19617222-21248452-0424297406-e7b96002-741f-4243-b840-ec03dd5c38fa" gcw-client-url="https://cdn.dev02-gs-stakelogic.com/slsdk/BanditsThunderLink/1_0_49/banditsthunderlink.js" gcw-options=""> </gcw-game> <script src="https://cdn.dev02-gs-stakelogic.com/libs/stakelogic/gcw-1.12.43/gcw.js" type="text/javascript" charset="utf-8"></script> <script src="/js/play.js" type="text/javascript" charset="utf-8"></script> <div id="gcw-error-dlg"> <div id="gcw-error-dlg-middle"> <div class="modal-content"> <div class="modal-header"> <h2>Error</h2> </div> <div class="modal-body"> <p id="gcw-error-dlg-content"></p> <p id="gcw-error-dlg-external"></p> </div> <a id="gcw-error-dlg-close" href="#">RELOAD</a> </div> </div></div> <div id="gcw-message-dlg"> <div class="middle-dialog"> <div class="dialog-content"> <div class="exclamation"><img src="images/exclamation.png"/></div> <p id="gcw-message-placeholder"></p> <p class="history"><a id="gcw-message-history" href="#"></a></p> <div class="buttons"> <div class="width-50"><a id="gcw-message-dlg-close" class="gcw-message-btn"></a></div> <div class="width-50"><a id="gcw-message-dlg-exit" class="gcw-message-btn"></a></div> </div> </div> </div></div> </body></html>Step 1
Then comes sequence of requests-responses, to load the game and its configuration specifically:
Request URL: https://ngs.dev02-gs-stakelogic.com/api/game/1-19617222-21248452-0424297406-e7b96002-741f-4243-b840-ec03dd5c38faRequest Method: OPTIONSStatus Code: 200 OKRemote Address: 185.228.196.76:443Referrer Policy: strict-origin-when-cross-originStep 2
request for configuration
Request URL: https://ngs.dev02-gs-stakelogic.com/api/game/1-19617222-21248452-0424297406-e7b96002-741f-4243-b840-ec03dd5c38faRequest Method: POSTStatus Code: 200 OKRemote Address: 185.228.196.76:443Referrer Policy: strict-origin-when-cross-origin {id: null, date: "2021-04-14T16:04:52.447Z", operation: {init: true}, configuration: {init: true}}configuration: {init: true}init: truedate: "2021-04-14T16:04:52.447Z"id: nulloperation: {init: true}init: trueResponse:
xxxxxxxxxx{ "id":null, "date":"2021-04-14T12:21:51.051Z", "status":{ "code":"OK", "message":null, "externalCode":null, "externalMessage":null }, "game":null, "jackpot":null, "gamble":null, "operation":{ "game":{ "brand":"stakelogic", "platform":"desktop", "resolution":null, "mode":"credits", "rtp":"95.60" }, "player":{ "locale":"en_US", "sounds":null }, "casino":{ "brand":"testing_casino_standard" }, "spinDuration":0, "ukgc":false, "gameScriptUrl":"https://cdn.dev02-gs-stakelogic.com/slsdk/BanditsThunderLink/1_0_49/banditsthunderlink.js", "closeGameClient":false, "realityCheck":null, "loggingServiceUrl":"https://ngs.dev02-gs-stakelogic.com/api/log/", "gamebrand":"stakelogic", "enableportrait":0, "buttonsdisabled":null, "minimalui":1, "simpleBet":0, "cgsportversion":null }, "configuration":{ "game":{ "xxxhideFastSpin":"none", "xxxspinDuration":"0", "mobileGameRulesDl":"false", "xxxdisableSlamStop":"none", "xxxhideSuperStake":"none", "maxWinProbability":"1:48 Sept.", "xxxUKGC":"false", "maxWinMultiplier":"12345", "homeButtonDeactivate":"all", "showWinProbabilityDisplay":"true" }, "general":{ } }, "replay":null}Step 3
Second step of init request-response, which sends the information about the game and wallet (where exactly freespins are stored):
Request URL: https://ngs.dev02-gs-stakelogic.com/api/game/1-19617222-21248452-0424297406-e7b96002-741f-4243-b840-ec03dd5c38faRequest Method: POSTStatus Code: 200 OKRemote Address: 185.228.196.76:443Referrer Policy: strict-origin-when-cross-origin {id: 1, date: "2021-04-14T16:04:54.593Z", game: {init: true}, configuration: {init: true},…}configuration: {init: true}init: truedate: "2021-04-14T16:04:54.593Z"gamble: {init: true}init: truegame: {init: true}init: trueid: 1operation: {init: true, initReplay: false, exit: false}With response:
xxxxxxxxxx{ "id":1, "date":"2021-04-14T12:21:55.055Z", "status":{...}, "game":{...}, "jackpot":null, "gamble":{...}, "operation":{...}, "configuration":{...}, "replay":null}Step 4
Freespins are played, as usual spins, response is next:
xxxxxxxxxx{ "id":24, "date":"2021-04-14T16:28:53.927Z", "…"}"date":"2021-04-14T16:28:53.927Z""game":{ "init":false, "…"}"init":"falseinput":{ "event":{ "type":"evt_btnpush_conf", "button":"btn_start", "lines":10, "betpl":1, "denom":1000, "bmode":1 }, "…"}"currentWallet":{ "currencySymbol":"€", "currencyCode":"EUR", "decimalSpaces":2, "fm":99997.5, "rm":99997.5, "…"}"bonuses":[ ]"currencyCode":"EUR""currencySymbol":"€""decimalSpaces":"2fm":"99997.5freeRounds":{ "id":"freerounds id here", "available":1, "total":10, "totalWin":1.8, "bet":1, "…"}"available":"1bet":"1forfeitable":"falsegsManaged":"falseid":"freerounds id here""postponed":"falseroundConfig":{ "betpl":1, "bmode":1, "denom":1000, "lines":10}"total":"10totalWin":"1.8rm":"99997.5event":{ "type":"evt_btnpush_conf", "button":"btn_start", "lines":10, "betpl":1, "denom":1000, "bmode":1}"betpl":"1bmode":"1button":"btn_start""denom":"1000lines":"10type":"evt_btnpush_conf""id":24With response:
xxxxxxxxxx{ "id":24, "date":"2021-04-14T16:28:53.053Z", "status":{...}, "game":{...}, "jackpot":null, "gamble":null, "operation":null, "configuration":null, "replay":null}Step 5
xxxxxxxxxxThe part with message to show: "messagesAfterGameEvents":[ { "id":null, "code":null, "message":"Converted 2.80 EUR from free rounds to real money", "externalCode":null, "externalMessage":null, "buttons":[ ] }