Skip to main content

Advanced achievement UI grouping and filtering

Last updated on May 13, 2024

Overview

The achievement service included with AccelByte Gaming Services (AGS) allows you to add tags to your achievement configurations. Tags will be used to group the achievements, and you can use that to filter the achievements you want to display within your game. By presenting the achievement in a structured and organized grouping, it can give your players the best experience, as they'll easily see the relevant information.

In this guide, you will learn how to utilize achievement tags for grouping and filtering.

Goals

  • Provide an understanding and overview about achievement configurations.
  • Explain how to utilize achievement using AccelByte SDK.

Prerequisites

  • Access to the AGS Admin Portal.
  • AccelByte Unreal or Unity SDK, including the permissions:
    • Client ID
    • Client Secret
  • Access to AccelByte Achievement API documentation.
  • Access to the AccelByte Statistics API to configure the required information (optional).

Group achievements by tags

You can utilize tags in achievement configurations to group your achievements. You can add tags in your achievement configurations by following the steps below:

  1. In the AGS Admin Portal, go to the Game Management section and select the Achievement menu. AGS Admin Portal click Achievement Menu

  2. In the Achievement window, click the Add Achievements button. Click add new Achievement Menu

  3. The Add New Achievements form will appear and you will be required to fill the mandatory field such as Code, Name, Description, and Icons.

  4. For grouping, you can add the contextual information related to the achievement in the Tag field. These tags will be used to query your achievement configuration.

    Achievement tags

    info

    You can input up to five tags.

  5. Click Add to complete. Your new configuration will be added to the list.

Filter achievements by tags

To retrieve a list of all achievements in the related namespace with a specific tags that you already set, you can use the following function:

FString Language = FString("en");
EAccelByteAchievementListSortBy SortBy = EAccelByteAchievementListSortBy::LISTORDER;
int32 Offset = 0;
int32 Limit = 50;
FString TagQuery = TEXT("kill,totalwin")
bool bIsGlobal = false;

FRegistry::Achievement.QueryAchievements(Language, SortBy, THandler<FAccelByteModelsPaginatedPublicAchievement>::CreateLambda([](const FAccelByteModelsPaginatedPublicAchievement& Result)
{
// Do something if QueryAchievements is successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if QueryAchievements has an error
}), Offset, Limit, TagQuery, bIsGlobal);

Further reading

After you set up the achievement configurations, you can use it to integrate with your game. You can follow the documentation below:

Achievement service is also able to cover some other use cases other than progressive achievement. Please find the other documentation below to explore other use cases: