Documentation · v1.0.1

KalmForge

The complete reference for the KalmForge Unity SDK and dashboard. Drop one package into your project, set an API key, and ship live ops without writing a backend. Every system below is independent - wire up only what you need.

Quick start

Configure your API key in Window → KalmForge in the editor (creates Assets/Resources/KalmForgeSettings.asset), then call KalmForgeClient.Init() on boot. Every other system in the SDK reads from this single client.

GameBoot.csC#
1using KalmForge;
2using UnityEngine;
3
4public class GameBoot : MonoBehaviour {
5 async void Start() {
6 // Reads ProjectId + ApiKey + Endpoint from the active environment
7 // configured in Resources/KalmForgeSettings.asset.
8 await KalmForgeClient.Init();
9
10 // Boot Remote Config + AB Tests + Localization in parallel.
11 await System.Threading.Tasks.Task.WhenAll(
12 RemoteConfig.Init(),
13 ABTests.Init(),
14 Localization.Load()
15 );
16
17 // Analytics auto-starts a session - just send events.
18 Analytics.TrackEvent("game_started");
19 }
20}
Note
KalmForgeClient.Init() resolves capability flags from the API key token first (instant, no network), then refreshes them from a CDN-cached manifest. Every server call is still re-checked server-side regardless of what the SDK believes.

All systems

Each page below documents the public C# API exactly as it appears in Assets/Plugins/KalmForge/, with quick-start snippets and the underlying REST endpoint.

Conventions used in this documentation

  • Code blocks are C# unless explicitly labelled otherwise. They compile against the namespace KalmForge.
  • REST endpoints are listed for every system so you can integrate from non-Unity engines or backends. Authenticate with the header X-API-Key: kf_….
  • Capability gates - every system early-outs if the project's plan does not include that capability. The flags live on KalmForge.KalmForgeCapabilities (resolved from your API key + a CDN manifest).
  • Async - networked methods return Task / Task<T>. Always await them; the SDK does not throw - it logs and returns a default.
  • Identity - every call automatically attaches player_id and install_id from KalmForgeIdentity. Override the player id with KalmForgeClient.SetPlayerId(string) if you have your own account system.