@francesco-lenolli
For both of your questions, a single call -- GetEligiblePromotions() will do the work. It will return the values of maxPurchases and the caller's purchased, as well as the Unix timestamps for triggeredForUserAt and 'expiresForUserAt` for automated promotions.

JasonL
Posts
-
-
Thank you for sharing this information. It does not have an impact on our server-side validation.
-
First, it's recommended to use
FindOrCreateLobbycall instead ofCreateLobby. It’s generally a better approach since it handles both cases — creating a new lobby if one doesn’t exist, or joining an existing one if it does. This gives your players a smoother experience when first trying to get into a lobby.Second, just to clarify the sequence: the
STARTINGevent doesn’t mean the lobby itself is starting, it happens after members have already joined and the server launch conditions are met. At that point, brainCloud is spinning up a game server for the lobby. You can find more details in our lobby documentation here -- https://docs.braincloudservers.com/api/capi/lobby/#lobby-eventsBecause of this, your loading spinner should remain active continuously after the
FindOrCreateLobbycall succeeds, since the user’s intent (“joining a lobby”) isn’t complete yet, from the user’s perspective, they’re still “joining a lobby” until they either:Receive
ROOM_READY→ success, hide the spinner.Receive an error → failure, hide the spinner and show an error.
This way, you avoid the hide → show gap, and the spinner matches the full lifecycle of the join process; it simply stays up until the full lobby join flow is resolved.
So in short: use FindOrCreateLobby, and keep the loading spinner up until you get either
ROOM_READYor a failure event. -
Hi Kirlos, as you can see from the response's
messagefield, there are two elements (idandname) underneath, you need to append.idto specify the first search field forid, so change the"message.from"to"messsge.from.id"should solve this problem. -
You may write a pre-hook cloud code script with your validating logic and integrate it with
[TurnShieldOn()](https://getbraincloud.com/apidocs/apiref/?cloudcode#capi-matchmaking-turnshieldon)method. -
Thanks for pointing that out. This type of leaderboard isn’t directly supported by the current leaderboard APIs yet, but I’ll forward your feedback to our team for review.
In the meantime, as a workaround, you can create a Cloud Code script to handle it like a voting system -- the script can retrieve the player’s score and then post an additional “voted” score on behalf of that player.
-
How about passing the slug as a parameter along with the webhook URL? This will allow your script to parse the parameter and perform actions accordingly.
-
You can hook the script to brainCloud authentication API and check the
loginCountfrom the response, the related doc can be found here.
Discussion - Promotions
App Store Receipt Signing Intermediate Certificate
[Unity] LobbyService.CreateLobby - Best time to show and hide a "Connecting..." popup?
getMessagesPage with $or field not working probably
Limiting number of async matches
Voting Leaderboards
Webhook routes
Execute script when new user is registered