Rewards vs Entitlements

I don’t see anything in the Rewards documentation or in the SDKs that allow us to query rewards for a specific user. Is this not supported? If not, what is the intended purpose of the Rewards service and when would we use it as opposed to entitlements?

As for entitlements, could we get an example of how to grant an entitlement using the SDK? The docs don’t currently have one and I’m a little confused since it feels like GrantUserEntitlementOp is the obvious choice but it doesn’t take an entitlement ID.

Thanks

hi @njupshot

Our Reward service designed to grant player an ingame-items (i.e. user entitlements) or virtual currency (i.e. user wallet) if the backend have reach certain condition from Statistic, Achievement, or User Account action.
Hence the Reward service itself is not the one that persist the players owned rewards in this case.

The granted rewards from Reward Service will goes into User Entitlements (for INGAMEITEM reward type) or User Wallet (for COIN reward type), so that’s where we could see the users rewards data.

More info regarding Reward system: https://docs.accelbyte.io/gaming-services/services/engagement/reward/.

For question about Grant Entitlement using SDK:
Which SDK you’re refer here? does it Game Client SDK or Game Server SDK.
As ideally the Grant Entitlement action should comes from Server side.
The Grant Entitlement API itself is using this fulfillment API

Hope this helps,
thank you

Hi @marselab, thank you for the clarification with respect to the rewards service.

We’re using the C# SDK, my use case is I want to consume a consumable entitlement and grant a new persistent entitlement (in that order) from an Extend function that is triggered from the client.

Looking forward to hearing your thoughts.

Thanks,
Nick

hi @njupshot, Yes that use case should be doable,

You could implement the logic inside https://docs.accelbyte.io/gaming-services/services/extend/service-extension/, generate the custom sdk for the new API, and call it from the game client.

Hope this helps.
Thank you

@marselab can you tell me what the specific SDK method is to grant a specific entitlement to a specific user? None of the APIs under Entitlement or Fulfillment seem to allow the granting of a durable entitlement to a specific user. The whole idea here is we want to award the user a consumable entitlement during gameplay using a dedicated server. Later, the client will “redeem” this consumable entitlement by calling into an Extend function that consumes the consumable entitlement and grants the durable entitlement.

hi @njupshot,

In order for granting Durable entitlement for user, you should create an In-Game Item type first in Store and set Entitlement Type with Durable. More detail: Set up, configure, and prepare a store | AccelByte Documentation

For granting the In-Game Item as Entitlement for user inside your Extend function, please use this FulfillItem SDK method: accelbyte-csharp-sdk/docs/operations/platform_index.md at main · AccelByte/accelbyte-csharp-sdk · GitHub
For FulfillmentRequest body simply put the itemId (of the durable item) and quantity there.