Access
Connect cross-platform accounts & identity management
AccelByte Cloud’s Achievement service is a tool developers can use to increase player engagement with their game. Recognizing players’ progress in your game and rewarding them with items or new characters not only fosters deeper enjoyment of your game but brand loyalty as well. There are two main types of achievements: incremental and non-incremental. Both of these types are explained below.
Incremental achievements work in conjunction with our Cloud Statistics (opens new window) service. When a player’s stats are updated, the Achievement service checks if the conditions for any incremental achievements have been met. If the conditions for achievement have been met the achievement will be unlocked. Here are a couple of examples of incremental achievements:
Non-incremental achievements don’t require a goal value to be hit, and as such do not need to be integrated with the Statistics service. Here are some examples of non-incremental achievements:
You will need to create a Statistics configuration (opens new window) as the statistic code will be used when you create an Incremental Achievement.
Permissions (opens new window) are used to grant access to specific resources within our services. Make sure your account has the following permissions before you attempt to manage achievements in the Admin Portal. For a full list of permissions that impact achievements management, see the Achievements tab of the permissions reference (opens new window).
Usage | Resource | Action |
Create New Achievement | ADMIN:NAMESPACE:{namespace}:ACHIEVEMENT | Create |
Export Achievement Configuration | ADMIN:NAMESPACE:{namespace}:ACHIEVEMENT | Read |
Import Achievement Configuration | ADMIN:NAMESPACE:{namespace}:ACHIEVEMENT | Update |
Query All Achievements | ADMIN:NAMESPACE:{namespace}:ACHIEVEMENT | Read |
Get an Achievement | ADMIN:NAMESPACE:{namespace}:ACHIEVEMENT | Read |
Update an Achievement | ADMIN:NAMESPACE:{namespace}:ACHIEVEMENT | Update |
Delete an Achievement | ADMIN:NAMESPACE:{namespace}:ACHIEVEMENT | Update |
Update Achievements List Order | ADMIN:NAMESPACE:{namespace}:ACHIEVEMENT | Update |
Query User Achievements Include Achieved and In-progress Achievement | ADMIN:NAMESPACE:{namespace}:USER:{userId}:ACHIEVEMENT | Read |
Unlock an Achievement | NAMESPACE:{namespace}:USER:{userId}:ACHIEVEMENT | Update |
Permissions (opens new window) work slightly differently depending on whether they are assigned to IAM Clients (opens new window) or are Roles (opens new window) assigned to users. For more information, see our Cloud Authentication and Authorization (opens new window) documentation.
To create a new achievement configuration, follow the steps below:
On the Achievements page of the Admin Portal, select Add Achievements button.
On the Achievements page, click the Add Achievements button.
The Add New Achievements form will appear. Fill in the required fields.
Input the Code of the achievement, e.g., kill-enemies-achievement.
Input the Name of the achievement with a readable string. This will be a public facing name.
Input the Description of the achievement. This description is also public facing.
Choose if you want the achievement to be Hidden. Hidden achievements are not shown to player when they are still locked, but will appear once unlocked.
Select Incremental for an incremental achievement, or leave the checkbox unselected for a non-incremental achievement. If you’re creating an incremental achievement, input the Goal Value and a StatCode of the statistic associated with this achievement.
Select Incremental for an incremental achievement, or leave the checkbox unselected for a non-incremental achievement. In this case, we’re creating an incremental achievement so, we need to input the Goal Value and a StatCode of a statistics configuration associated with this achievement.
NOTE
The Goal Value should not exceed the Max. Value defined in the Statistic configuration.
Input the Tag field with contextual information related to the achievement. You can input up to five tags. This field is optional.
Select an image for the Locked Icon. This image will be displayed for players who do not have this achievement yet.
Select an image for the Unlocked Icon. This image will display when the achievement is unlocked.
Click Add. Your new configuration will be added to the list.
To edit an existing achievement configuration, follow the steps below:
In the Game Management section of the Admin Portal, select Achievements.
On the Achievements page, you can see the list of existing achievements. You can Filter by Code or Filter by Tag to narrow down the list.
To see the achievement details, click View next to the selected achievements.
The Achievement Detail page appears. You can edit the achievement configuration here.
You can export your achievement configurations in JSON format by following the steps below.
In the Game Management section of the Admin Portal, select Achievements.
On the Achievements page, open the dropdown menu next to the Add Achievements button and choose Export Achievements.
The download will start. Once it’s finished, open the JSON file to see - achievement configs.
[
{
"Hidden": false,
"Incremental": false,
"ID": "5ec4b6ee296bxxde03cdeee1",
"ListOrder": 1,
"GoalValue": 0,
"UnlockedIcons": [
{
"url": "https://cdn.demo.accelbyte.io/files/accelbyte/achievements/54a4c4485ac34a63a0ece0e849b488e0.png",
"slug": "rectangle-1png"
}
],
"LockedIcons": [
{
"url": "https://cdn.demo.accelbyte.io/files/accelbyte/achievements/53351a0b28134d008600bb5fb6cf23c3.png",
"slug": "rectanglepng"
}
],
"CreatedAt": "2020-05-20T04:49:50.825Z",
"UpdatedAt": "2020-05-20T04:49:50.825Z",
"Namespace": "accelbyte",
"AchievementCode": "penta-kill",
"StatCode": "",
"DefaultLanguage": "en",
"Tags": [
"kills"
],
"Name": {
"en": "Penta Kill"
},
"Description": {
"en": "Penta Kill description"
}
}
]
You can import an achievement configuration in JSON format into the admin Portal. To do so, follow the steps below.
In the Game Management section of the Admin Portal, select Achievements.
On the Achievements page, open the dropdown menu next to the Add Achievement button and choose Import Achievements.
The Import Configuration form will appear. Fill in the required fields.
Click Import.
Confirm the import configuration by typing IMPORT in the pop-up form below.
Click Import.
There are two ways to unlock a player’s achievement: either from Game Client or from the Game Dedicated Server.
NOTE
This function can only be used for non-incremental achievements that do not affect gameplay, such as the player's first time entering the lobby, their first time inviting a friend, etc.
Unlocking an achievement from the server is usually done after a match is completed.
You can use this function to retrieve achievement info, such as the achievement name, description, goalValue, etc.
You can use this function to retrieve a list of all achievements in the related namespace.
Use this function to query a player’s unlocked and in-progress achievements. This function is called from a specific player who is already logged in to justice iam or currently a player that has been logged into the game.
Before using the Achievement service from the SDK, you will need to initialize your server-side SDK to make you authorized and able to perform create, read, update, and delete actions.
Before using the Achievement service from the Golang SDK, you will need to initialize the SDK by making sure that you’ve completed the following requirements:
Once completed, you can use the Golang SDK to create, read, update, or delete achievements from your serverless app.
Before using the Achievement service from the Python SDK, you will need to initialize the SDK by following the steps below:
Once completed, you can use the Python SDK to create, read, update, or **delete **achievements from your serverless app.
Before using the Achievement service, you will need to set some permissions. Use the following .NET namespaces:
using AccelByte.Sdk.Api.Achievement.Model;
using AccelByte.Sdk.Api.Achievement.Operation;
using AccelByte.Sdk.Api.Achievement.Wrapper;
Initialize the Achievements wrapper from Achievement service using the following code:
Achievements wAchievements = new Achievements(sdk);
Once completed, you can use the SDK to create, read, update, or delete achievements.
Use the following function to create an achievement (opens new window):
Use the following function to delete an achievement (opens new window):
Use the following function to retrieve all achievements (opens new window):
Use the following function to retrieve an achievement by code (opens new window):
Use the following function to update an achievement (opens new window):