Skip to content

Achievements

Achievement support has three categories: unlocking achievements, reporting achievement progress, and clearing all achievements for the current game. Achievement keys must match backend configuration. Keys in examples are only used to demonstrate the calling pattern.

EngineStatusNotes
UnityPreviewThe main package provides public APIs.
GameMakerPreviewThe Windows runtime provides unlock, progress reporting, and clear-all support.
GodotIn developmentThe preview runtime already has achievement APIs.
  • Startup and connection is complete.
  • The corresponding achievements have been created in the backend.
  • Achievement keys in game code match backend configuration.
  • Unity / GameMaker / Godot currently perform achievement calls through the local IGP desktop client.
using UnityEngine;
using IGP.UnitySDK;
public sealed class IGPAchievementButtons : MonoBehaviour
{
[SerializeField] private IGPRuntimeManager runtimeManager;
public async void UnlockFirstSession()
{
var result = await IGPSDK.UnlockAchievementAsync(
runtimeManager,
"first_session");
Debug.Log($"Unlock success={result.success}, duplicated={result.duplicated}");
}
public async void AddMatchProgress()
{
var result = await IGPSDK.ReportAchievementProgressAsync(
runtimeManager,
"matches_played",
1,
"match_complete");
Debug.Log($"Progress success={result.success}, duplicated={result.duplicated}");
}
public async void ClearAllAchievements()
{
var result = await IGPSDK.ClearAchievementsAsync(runtimeManager);
Debug.Log($"Clear success={result.success}, deleted={result.deletedCount}");
}
}
EngineCheckpoint
UnityLogs include success, duplicated, and message after the call; clear-all returns deletedCount.
GameMakerThe event queue receives achievement_result or achievement_clear_result.
GodotThe call triggers the AchievementReported or AchievementsCleared signal.
  • success=false: check whether the achievement key exists.
  • duplicated=true: the achievement was already unlocked before and is not necessarily an error.
  • Clear-all only affects the current signed-in user’s achievement records for the current game. It is usually intended for debugging, testing, or an explicitly allowed reset flow.
  • No result: confirm the IGP desktop client is connected, then confirm game code is polling or listening for events.
  • Progress achievement values are abnormal: confirm backend achievement type and progress report values match.