Skip to main content
The Flock Unity SDK connects your game to the Flock backend: player auth, save data, economy, remote config, downloadable assets, and analytics — configured from one in-editor window, with strongly typed C# generated from your own schemas.

Download the Unity SDK

Get the latest .unitypackage from the releases page.

Requirements

  • Unity 2020.3 or newer
  • com.unity.nuget.newtonsoft-json 3.0.2+

Setup

1

Import the package

Download the latest release and import the .unitypackage (Assets → Import Package → Custom Package).
2

Add the JSON dependency

Add Newtonsoft JSON to Packages/manifest.json:
3

Configure

Open Flock → Settings and fill in the four fields from your game’s page on the dashboard:
API Credentials card in the Flock window

Enter your credentials in the Flock → Settings window.

Values are saved to Assets/Resources/FlockConfig.asset. As you fill them in, the window prepares the two things the SDK needs before it can start:
  • Resolve Game Version — your version name is looked up and its ID is baked into the config. Runtime init uses that baked ID directly and never calls the server, so it must resolve before you play or build. The window resolves it automatically when your credentials change (or click Resolve Game Version).
  • Verify — the Setup checklist’s Verify button confirms your credentials actually reach Flock.
Green checks across the Setup checklist mean you’re ready to initialize.
Setup checklist showing a verified connection and resolved Game Version

Connection verified and Game Version resolved — both required before init.

The API Key ships inside your build (it’s loaded from Resources at runtime). Use a key scoped to the right environment, and rotate it on the dashboard if it leaks.

Your first call

With auto-init on, the SDK is already running — just use FlockClient.Instance.

Initialization

The SDK can start three ways. Automatic is the default and fits most games; the other two trade a little setup for control over when init runs (after a splash screen, EULA, etc.).
Nothing to call — the SDK initializes from FlockConfig.asset before the first scene loads and restores a saved session in the background. React to lifecycle events if you need to:
Init is fail-fast. A bad config throws (the auto-init path logs instead of crashing), and FlockClient.Instance throws until init succeeds. Guard with FlockClient.IsInitialized, inspect FlockClient.InitializationError, or handle FlockEvents.OnInitializationFailed.

Authenticate a player

Signing in does not create an account — registering is a separate RegisterWith…Async call. Registering an identity that already has one succeeds rather than failing, so you can send the player to a login instead. Auth methods throw on failure, so wrap them in try/catch.
Sessions refresh automatically. Subscribe to FlockEvents.OnAuthenticated and OnAuthExpired to drive your UI.

Work with your game data

Run Code Generation → Sync Schemas in the Flock window to turn your dashboard’s player templates, configs, and shops into typed C# accessors under Assets/Flock/Generated/.
Code Generation tab in the Flock window

The Code Generation tab — Sync Schemas, then browse the generated content catalog.

These accessors don’t exist until you sync. GetPlayerProgressAsync above is generated from a PlayerProgress template on your dashboard. Write the call before the template exists — or before the first Sync Schemas — and it fails to compile, not at runtime:
The order is always: author the schema on the dashboard → Sync Schemas → write the call. Adding or renaming a template later means syncing again.Unity’s own compiler error can’t tell you any of that, so the SDK watches compilation and prints the missing step in the Console when it recognises one of these. The Code Generation tab also shows whether a sync has ever run, and which game version it last synced for.
Each sync also writes a read-only FlockContentCatalog asset — designers can browse every shop, config, and template in the Inspector without touching code or the dashboard.
FlockContentCatalog asset open in the Inspector

The generated FlockContentCatalog — shops, configs, and templates with their values.

Explore features

Players & auth

Account linking

Player data

Shops & inventory

Leaderboards

Notifications

Remote config

Assets

Analytics & events

Advanced settings

The Advanced Settings tab tunes analytics, HTTP retries, the asset and offline caches, and editor tools (including Auto-Initialize On Load). The defaults are sensible — change them only when you need to.
Advanced Settings tab in the Flock window

Advanced Settings — analytics, retries, caching, and editor tools.

Error handling

Every SDK failure raises FlockException. Its Message names the call that failed, the server’s own reason, the coded identifier, the HTTP status — and a Fix: line telling you what to do next.
Console
The same server code can mean different things depending on how the player signed in, so the fix is specific to the credential — the message above says “register this device”, while the identical code on an email sign-in says the password was wrong.

Reading the parts yourself

If you’d rather build your own text, every piece is on the exception:
Branch on ErrorCode, never on message text. Codes are a stable contract; wording is not and will change between versions.
Hint is written for you, not your players — it names SDK methods and dashboard steps. Show it in your own debug overlay or logs, and write separate player-facing copy for your UI. You can pull the same text for any code with FlockErrorHints.For(errorCode).
A failure with no StatusCode never reached the server — that is a connectivity problem on the device, not something the backend rejected.
The full API reference, codegen details, offline cache, and analytics tuning live in the SDK README.