
Achievements
Unlock achievements and grant their rewards immediately.
SDKs and REST
Integrate with Unity, Godot or Unreal, or use the REST interface.
Project dashboard
Configure each feature and manage its current data in your project.
Quick Integration
Achievements
Video coming soon
Each key unlocks once per player. Manual rules trust the game; statistic thresholds evaluate in the same affected report.
using UnityEngine;
using System.Linq;
using PM.horizOn.Cloud.Manager;
var userId = UserManager.Instance.CurrentUser.UserId;
var manager = AchievementsManager.Instance;
var loaded = await manager.GetAchievements(userId);
if (!loaded.IsSuccess) { Debug.LogWarning(loaded.ErrorCode); return; }
foreach (var progress in loaded.Data.progress)
Debug.Log(progress.key + ": " + progress.rewardState);
// Configure a manual first_steps definition, then call this on the matching game action.
var unlocked = await manager.Unlock(userId, "first_steps");
if (!unlocked.IsSuccess) { Debug.LogWarning(unlocked.ErrorCode); return; }
// Repeat the same key after timeout; never create a replacement reward identity.
// rewardState is complete, unlockedAt is null, and deliveryResults is empty.
// Values were credited atomically. Read PlayerValues again when showing the balance.
// No Inbox claim or local value addition. Refresh achievements after statistics updates.These examples use the Unity SDK (C#) and the REST API. Godot and Unreal have the same calls in their own SDKs: see the quickstart
Frequently Asked Questions
Ready to Integrate?
Start building with horizOn today. Free tier included.
