• [Unity] In App Purchases

    Solved APIs
    2
    0 Votes
    2 Posts
    159 Views

    brainCloud supports a wide range of popular in-app purchases, including Google Play, Apple, Facebook, Amazon, and Steam, etc.. In most cases, the purchase process is initiated through the corresponding IAP plugin that you need to download into your Unity project. Then, verify the receipt received from the purchase outcome with brainCloud by calling VerifyPurchase API. It should be noted that the necessary configuration for the IAP store must be set up in the brainCloud portal for your app, including the products section and platforms section. Some store integration examples are available on our documentation website -- https://docs.braincloudservers.com/learn/portal-tutorials/store-integration-google/
    Hope this helps!

  • Filter online players in Matchmaking

    Solved Cloud Code
    8
    0 Votes
    8 Posts
    208 Views

    Ciao @Paul-Winterhalder ,

    yes there is not much else to add, except perhaps the fact that the CompleteMatch is sent at the end of the game. Instead, AbandonMatch is sent if one of the players abandons the game prematurely.

    Thanks for the support! 🙂

  • Cloud Code not loading in Console

    Solved General
    2
    0 Votes
    2 Posts
    47 Views

    In case anyone else had a similar issue...

    There was a Cloudflare-related cert issue associated with a site called cdn.jsdelivr.net.

    As I understand it, the Monaco editor that Portal-X uses for editing source and JSON files (and many other common web-based components) makes use of that site.

    More details on the issue here: https://github.com/jsdelivr/jsdelivr/issues/18565

    The issue was temporary - and seems like it only affected only certain localized regions... (just a guess on my part there).

    Anyway - all good now - and nothing directly related to brainCloud.

    Paul.

  • 0 Votes
    7 Posts
    178 Views

    Thank you both for the helpful replies. I am educating myself further and exploring options. Depending on what I decide to pursue as the final option, I may be back 🙂

  • Tournament Rank Rule

    Solved General
    3
    0 Votes
    3 Posts
    177 Views

    Hi Paul,

    Yes this answers my question. I guess since the percentage is based on the number of players, I could query the number by checking how many entries there are in a given division leaderboard?

    In any case I'll stick to absolute ranks for now as you suggest. I was looking into percentages to future-proof our client API.

    Thank you for the quick help!

  • 0 Votes
    4 Posts
    181 Views

    @Paul-Winterhalder Amazing! This is perfect for my needs-- thanks so much Paul.

  • 0 Votes
    4 Posts
    237 Views

    I believe this worked @Steve-Jones -- thanks so much for the tip!

  • Unreal 5.3.x support

    Solved General
    2
    0 Votes
    2 Posts
    172 Views

    Update: Fixed in the latest release
    https://github.com/getbraincloud/braincloud-unreal-plugin-src/releases/tag/5.0.1
    Thanks Joanne 🙂

  • 0 Votes
    3 Posts
    262 Views

    thank you

  • 0 Votes
    3 Posts
    303 Views

    As an interim solution, you can add a cloud code script or a post-hook to retrieve the missing data, using the profileIds found in the request.

    https://getbraincloud.com/apidocs/apiref/#capi-friend-getsummarydataforprofileid

    ... "pendingMembers": { "382eb04f-f80c-4bfc-9a12-fca508cad476": { // <- These profile ids "role": "MEMBER", "attributes": {}, "pendingReason": "ASKED_TO_JOIN" } } ...
  • NodeJS setup question

    Solved APIs
    6
    0 Votes
    6 Posts
    318 Views

    Thanks @Paul-Winterhalder and @David-St-Louis-0 . I'm communicating with our web dev and am passing on the information to him. I'll respond here once I get more information from him. Appreciate the quick replies.

  • 0 Votes
    4 Posts
    224 Views

    FYI - this feature was added in brainCloud 4.13 - https://getbraincloud.com/apidocs/release-4-13/

  • RPG's on BrainCloud?

    Solved General
    3
    0 Votes
    3 Posts
    171 Views

    Hi Chad,

    Sorry for the late reply.

    Yes, brainCloud can handle RPG style games well, it provides a rich set of features that benefits any type of game - includes very flexible multiplayer tech, Our built-in real-time multiplayer services are more based around the idea of shared game experiences that last a finite period of time (i.e. arena shooters, casual multiplayer, etc.). Our matchmaking, lobby services, room server system, etc are all geared toward making this sort of experience easy and inexpensive to build - but also can integrate with 3rd party or custom tech. brainCloud provides support for custom Room Servers that can support any type of custom or 3rd party multiplayer tech. For all these characters related data (user data), you can use User Entity or Custom Entity to store and trace them. The end-user profileId and anonymousId are stored securely in the client library wrapper on user devices. Users' IAP items and currency end up “unlocking” “awarding” these to the associated profileId, so that will never be lost. If a player is offline, you need to have some code on your side to handle this situation with the request callbacks, as long as “update()” is not called, it will not process sending packet bundles or process callbacks from the received packets. Shouldn't keep all calls for later. Instead, update player stats once connected, in 1 call.

    Hope that helps!

  • 0 Votes
    20 Posts
    522 Views

    @David-St-Louis-0 @Paul-Winterhalder
    Hi again.
    I would like to debug my server locally, in Unity. I have the _S2S stuff all hooked up as described in the walk through.
    But then I tried to do the following (actual numbers redacted)

    #if UNITY_EDITOR var appId = "00000"; var serverName = "MyServerName"; var secret = "00000000-0000-0000-0000-000000000000"; _lobbyId = "00000:myLobbyTypeId:00"; #else // Load environment variables passed in by brainCloud to our container var appId = Environment.GetEnvironmentVariable("APP_ID"); var serverName = Environment.GetEnvironmentVariable("SERVER_NAME"); var secret = Environment.GetEnvironmentVariable("SERVER_SECRET"); _lobbyId = Environment.GetEnvironmentVariable("LOBBY_ID"); #endif

    However, I am getting a perpetual error:
    #S2S S2S Failed: {"packetId":1,"messageResponses":[{"reason_code":40613,"status_message":"Processing exception: Unrecognized lobby: 00000:myLobbyTypeId:00","status":400}]}

    I even signed up for a Dev+ subscription, just in case that was the problem, per this thread. No luck.

    How can I test my server code locally, while still planning for the full-on S2S Docker container deployment?
    Thanks

  • 0 Votes
    9 Posts
    324 Views

    Sounds good Ali - thanks for the confirmation!

    Paul.

  • 0 Votes
    4 Posts
    190 Views

    No problem - happy to help!

    Paul.

  • 0 Votes
    3 Posts
    190 Views

    Thank you for your answer. Yes, it will be nice to have a separate API but for now, the solution suggested by you works for us.

  • lobbyId ?

    Solved APIs
    6
    0 Votes
    6 Posts
    325 Views

    Oh okay, I understand.
    Yeah I was already trying to use the C++ SDK, and I will also be waiting for the Obj-C one.

    Thank you!

  • 0 Votes
    4 Posts
    247 Views

    Happy to help! 👍

  • Method to access "other user" items

    Solved General
    2
    1 Votes
    2 Posts
    212 Views

    Hi Claudiu,

    It's possible to do this using cloud script... you just need to impersonate the other user...

    Here's an example script that does this - caveat, it only returns the first page of user items.

    Create the script, and set it's test parameters to:

    { "profileId": "www-xxx-yyy-zzzz-123456" }

    (Note - you'll of course want to replace profileId with an id of a user that you want to test with.)

    And here's the code...

    var response = {}; // We need to impersonate another user to make this call var otherSession = bridge.getSessionForProfile( data.profileId ); var otherUserItemsProxy = bridge.getUserItemsServiceProxy( otherSession ); // Now, request the page of items from that proxy var context = { "pagination": { "rowsPerPage": 50, "pageNumber": 1 }, "searchCriteria": {}, "sortCriteria": { "createdAt": 1 } }; var includeDef = true; var itemResult = otherUserItemsProxy.getUserItemsPage( context, includeDef ); if (( itemResult.status == 200) && ( itemResult.data.results.count > 0 )) { response.items = itemResult.data.results.items; } else { response.items = []; } response;

    For convenience I've attached an export of the script. You can import this script into your app from the Design | Cloud Code | Scripts screen.

    Hope that helps!

    Paul.

    RetrieveAnotherUsersItems.ccjs