• 0 Votes
    8 Posts
    153 Views

    Hi,

    Thank you for guiding me on how to check it.

    I verified the indexes for the FOLLOW entity using CustomEntity > SysListIndexes in the API Explorer, and confirmed that unique: true is correctly applied to the followerId_followingId index.

    The confirmed response is as follows:

    { "name": "followerId_followingId", "key": { "data.followerId": 1, "data.followingId": 1 }, "background": true, "unique": true }

    Thank you for your help!

  • 0 Votes
    3 Posts
    101 Views

    Thank you for your kind response.

  • 0 Votes
    4 Posts
    162 Views

    @gyutaelee I will investigate the Per Promotion Deployment option you requested.

    As I was working on this I thought there may be a workaround for you that you would like. This could work for your team with minimal effort and on your current version of brainCloud portal.

    My solution hides the promotion so that only users you flag as TESTERS will see it.

    This would let your PROD testers gain the benefit of the no-ads promotion without disrupting your monetization.

    Within Automatic Promotions, there is the option to Target members of any of these segments.

    cb1f4861-16f8-432a-bb22-4b71dc0b0ce1-image.png

    Within Scheduled Promotions, there is the option to Offer this promo to: Only users in:

    2a5f3a28-91ba-4f2c-bb1c-5a2c04ead1e5-image.png

    Advancing to App > Design > Segmentation > Segments we can create a segment that filters to players that are flagged as Testers.

    59f8d7bc-3640-450f-ab67-086af9b8acdd-image.png

    Now, segments need to have at least one more criteria, so let's choose something like has logged in at least 1 time.

    d86e5f6d-ded8-4c7e-ab26-1c07f9813f0e-image.png

    Save this Segment

    IMPORTANT! Add the segment to your Promotion
    This will limit the promo to only eligible users. Noone else sees it!
    7aca6582-cff3-4469-ae98-6339b341ba06-image.png

    Next we will need to flag some users as Testers. For a DEV app, the easiest way to do this is to go to the User Browser, RECENTLY ACTIVE and pick players (your testers) with recent activity.

    ec366981-f641-4833-87f2-64798766555c-image.png

    GO TO USER to bring up their user summary and check the IsTester checkbox.
    d1094afd-ca63-4ce6-8070-477c879fb1d4-image.png

    Testers get a special icon
    e02b71bc-db5b-4127-a6a7-1528697aee6f-image.png

    Next, we will return to Segments.

    Segments are automatically processed overnight, but you can Refresh Segments immediately with the REFRESH SEGMENTS button. Please note: refreshing segments processes every player so this process can take a while and preferably left to low-traffic times of day.

    e306d8e0-553d-475c-a780-43fbed29a271-image.png

    After processing completes, we can check the cohort of testers by returning to the User Browser choosing BROWSE, and Browse Within A Segment.

    43a330f6-e572-4b0b-a8ca-c0d631e63240-image.png

    These are my Testers, so everything worked.
    a8b56bbb-536c-447b-9e7d-a8d8236ff165-image.png

    Since only testers are eligible for the promotion, you are free to deploy it to PROD without affecting your monetization. And the PROD Testers you select will be able to gain the workflow benefit of no ads.

    Could you let me know if this solution solves your problem?

    Let me know if you have any questions,
    Regards
    John
    -Design

  • 0 Votes
    5 Posts
    147 Views

    Hi @gyutaelee I am bringing this to the dev team for further discussion. thank you for suggesting it.

  • 0 Votes
    10 Posts
    384 Views

    Thank you for your helpful response. I will proceed as you suggested.

  • 0 Votes
    15 Posts
    990 Views

    Hi @noah ,

    This support has already been added to the Builder API. The new options can be specified when importing app configuration data OR when deploying an app.

    When importing app configuration data, there is a new optional 'preserveDivisionSetConfigsOverride' parameter that can be specified. If not specified, it will default to whatever the value is for 'preserveLeaderboardTournamentConfigs'.

    When deploying from one app to another, there is a new optional 'divisionSetConfigOverrides' parameter that can be specified in the 'options.meta.excludes' section. If not specified, it will default to whatever the value is for 'leaderboardsTournaments'.

    I will endeavour to get our Builder API docs updated with these new parameters. Let us know if you encounter any issues using them.

    Thanks!
    Greg

  • 0 Votes
    6 Posts
    437 Views

    Q1: The removed player is completely excluded from reward calculation, so if the deletion happens before the job runs, that player is never iterated over and receives no rank or rewards.
    Q2: Yes, the modified score will be used. The job always reads live state. Note that whether the score actually gets modified depends on the leaderboard type (e.g., for the LOW_VALUE type, only updates if the new score is less than the existing)
    Q3: No backfilling, the next joiner goes to the latest instance, not the freed spot in ^2. No loop over earlier instances (^1, ^2) ever happens. The next joiner goes to ^3 (or ^4 if ^3 is full). The freed spot in ^2 stays empty permanently.

  • NewUser detection issue

    Solved General
    2
    0 Votes
    2 Posts
    188 Views

    The aggregation that counts new users is not real time, it runs at hourly granularity, so there can be a delay before the stats reflect the actual number of users. At the time of checking again, the numbers had updated as follows
    image.png

  • 0 Votes
    5 Posts
    361 Views

    The structure is such that the certificate and template are distributed simultaneously.
    What I need is to distribute only the template, excluding the certificate.

  • 0 Votes
    5 Posts
    414 Views

    @moondory77 - why would you need/want to update a tournament in progress?

    We consider the tournament to be a contract between the player and the game dev. You enter this tournament. You have <X> hours to compete. And you can win <Y> in prizes.

    Changing the rules half-way through the tournament seems unfair? You are changing the duration? The prizes? These are both things that the player did not agree to.

    Anyway - that was the assumption of the system - and it's why once a tournament is started any changes you make to the tournament get queued up for the NEXT tournament cycle, not the current one.

    That said - divisions are even more complicated - as even if we wanted to there would be potentially thousands of records to update to make the change.

    I need to better understand your use case to consider this request.

    Paul.

  • 0 Votes
    6 Posts
    760 Views

    Yes, the link provided in that article is automatically updated. For your reference, here is the actual embedded link behind it:
    https://portalx.braincloudservers.com/dts/cloudcode_dts_files.zip

  • Unknown Country, Language

    Solved General
    2
    0 Votes
    2 Posts
    200 Views

    Have you checked the logs to see what those users are sending in for the country code during authentication? And can you see any commonality amongst those users?

    From your stats it looks like we are correctly detecting US, Korea and Argentina... What code are we reading in wrong?

    If you send us your appId (via the chat widget) we can take a better look at your users.

  • live conversion inquiry

    Solved General
    2
    0 Votes
    2 Posts
    311 Views

    Hi Noah,

    I don't quite understand your question.

    Development Plus provides access to some features (hosting, deep data, etc.) that we can't otherwise provide access to in a free development plan...

    I suppose it IS accessed via the [Go Live!] button - which can be a bit confusing - since your app isn't really "live" under Dev+. That's a UI inconsistency that we haven't addressed yet.

    The full details of the various plans can be found here: https://getbraincloud.com/pricing/

    I hope that helps!

    Paul.

  • 0 Votes
    4 Posts
    677 Views

    Ok, I found it. It wasn't a global setting, it was a filter on the reports. Thanks!

  • 0 Votes
    7 Posts
    1k Views

    Cool - good to hear it. And once again: thanks for reporting it!

  • 0 Votes
    3 Posts
    636 Views

    Apologies for the late reply, but thank you! This really clears up the flow for me. 🙂

    The only thing regarding FindOrCreateLobby instead of CreateLobby is that the request to CreateLobby is deliberate. While I do intend to integrate FindOrCreateLobby as a "just throw me into a running game" option (which probably is the desired flow in most cases), I also want a player to be able to say "I want to start a game for my friends, and I also want to be the host and set the rules of the room".

    I'm just clarifying that in case I'm misunderstanding the intent between the two calls, and that FindOrCreateLobby can indeed be used for either flow that I just described.

  • 0 Votes
    9 Posts
    1k Views

    Sorry for the confusion, I was under the impression a publisher key gave you certain read-only permissions on a user given they own your game (this was silly in hindsight)

    While the users in question had public profiles, their privacy settings for friends lists were set to private.

    Thank you for your help! I now understand what you meant by "as long as users grant your app permission".

  • Pre-Game Lobby: Groups vs Lobby?

    Solved General
    6
    0 Votes
    6 Posts
    1k Views

    Please refer to the article -- Implementing Continuous Lobbies in the brainCloud Help Center for details.

  • 0 Votes
    7 Posts
    2k Views

    No problem! glad to hear that.

  • 0 Votes
    4 Posts
    2k Views

    Ah - perfect. Yeah - that sounds like a better option given the full requirements.

    Glad you found it... and welcome to brainCloud!