Skip to content

Flock Official release

Choose a tag to compare

@SalmanFallatah SalmanFallatah released this 30 Jul 16:32
· 5 commits to main since this release
3b8a3fe

Flock Unreal SDK 1.0.0

The first stable release of the Flock SDK for Unreal Engine — a complete client for Flock's
game backend: authentication, player data, game configuration, a shop, game commands,
downloadable assets, and analytics, usable from both C++ and Blueprint.

Everything documented is shipping. The 0.x history was development only and was never
published; 1.0.0 marks the point where the feature set is complete and the API is one we
intend to keep. Nothing here is a breaking change from anything you can have installed.

Requirements

  • Unreal Engine 5.5. This is the version the SDK is built and tested against.
  • A C++ toolchain on every machine that builds the project — Visual Studio 2022 with the
    Game development with C++ workload on Windows, Xcode on macOS. The plugin ships source
    rather than binaries, and build output isn't usually committed, so each developer compiles
    their own copy.
  • A C++ project. Blueprint-only projects work, but need a one-time conversion — see
    Blueprint-only projects. You never have to write any C++.

Installation

Extract the attached zip into your project's Plugins/ folder. The archive nests everything
under FlockUnrealSdk/, so you end up with YourProject/Plugins/FlockUnrealSdk/ and nothing
to rename. Then right-click your .uprojectGenerate Visual Studio project files, and
rebuild.

The archive contains source only and no compiled binaries — you build it once with your
project, against your engine version and toolchain.

Getting started

  • The Flock panel walks you through setup. The first time you open a project with the
    plugin installed, a dockable Flock tab opens and lists whatever is missing, with the
    button that fixes each item. Credentials are editable inline and save to DefaultGame.ini.
    Reopen it any time from Tools → Flock → Flock Panel.
  • Test Connection names the credential that's wrong. One authenticated round-trip reports
    an unreachable API URL, a rejected API key, or a Game Version name that doesn't exist —
    rather than a generic failure. It also reads back the game your key belongs to and warns
    if your configured Game Name disagrees.
  • The panel only interrupts when something is actionable. It opens on a broken setup or
    your first time in a project, and stays quiet otherwise. It is never a modal dialog, and any
    notice can be muted per-developer.

What's included

Core

  • UFlockSubsystem — a UGameInstanceSubsystem ready when the game starts, and the entry
    point to everything below.
  • Offline, synchronous initialization. The Game Version ID is resolved at edit time and
    baked into DefaultGame.ini, so runtime init makes no network call. Resolution and baking
    happen automatically when you edit your settings.
  • HTTP transport with automatic retry (exponential backoff with jitter, Retry-After
    aware) over a callback + result surface — no C++ exceptions. JSON is (de)serialized to and
    from your USTRUCT models.
  • Typed errors. Every failure is an FFlockError carrying a typed EFlockErrorType, the
    server's EFlockErrorCode, and the server's own message — Blueprint-readable, with
    UFlockErrorLibrary exposing display text and coded-error group checks.
  • A single event hub (GetEvents()) for lifecycle, auth, session, and consent events,
    Blueprint-assignable, with init-safe CallOrRegister entry points for late binders.

Backend features

  • Authentication — email, device, Google, Apple, and Steam login and registration,
    encrypted token persistence, automatic session restore, silent token refresh, and the
    account management flows.
  • Game config — fetch configs and patches by id, name, tag, or version tag, and resolve a
    config's effective values (the patch for this game version, else its base data). Read values
    by dotted path in Blueprint, or bind them to your USTRUCT in C++.
  • Player data & templates — read a player's saved rows, browse the templates that define
    them, and check ban status.
  • Game commands — the server-validated way to change player data, with an offline queue
    that replays automatically on reconnect or next sign-in.
  • Shop — browse shops and items, buy an item, and read a player's inventory. A purchase is
    money-safe: never retried on an ambiguous failure, never queued offline, and reported for
    revenue metrics.
  • Assets — fetch your game version's asset list and download by name or id, as a texture,
    as text, as raw bytes, or as a file. Downloads stream to disk rather than buffering in
    memory, and are cached on disk keyed by asset and version.
  • Analytics — a diagnostic log API, session tracking, automatic exception capture with
    symbolicatable callstacks, an offline queue that survives crashes, consent gating, and
    next-launch crash reporting.

Offline

  • Read-API responses are snapshotted to disk and served when the network is unavailable.
    A completed request of any kind clears the offline state, so it is self-healing and can
    never get stuck. Money operations are deliberately never queued or replayed.

Editor

  • Live SDK state during Play In Editor. The Flock panel switches to showing whether the SDK
    initialized, the signed-in player, the analytics session and consent, how many offline
    commands are queued, connectivity, and a running list of SDK events.
  • Setup problems surface everywhere they matter — the panel, the Project Settings page, a
    Play-In-Editor warning, and a packaging guard that blocks a build the SDK could not
    initialize from.
  • Code generation. Sync your backend schemas and get typed accessors: Blueprint structs,
    enums, and one-node macros with no compile step, or a generated C++ module. Includes a
    commandlet for CI.

Blueprint

  • The whole surface is available in Blueprint — async nodes for every call family, pure
    accessors for reading structured data, and a convenience library so a graph doesn't have to
    fetch the subsystem first.

Notes and known gaps

  • Custom gameplay event tracking is not exposed. Analytics ships the diagnostic log API
    and purchase/transaction reporting; gameplay event tracking is held back pending backend
    work rather than shipped half-built.
  • No sound-wave asset download. Unreal has no engine API for turning mp3/ogg bytes into a
    USoundWave, and a WAV-only helper would fail silently on most of what a CDN holds — use
    Flock Download Asset File for audio.
  • A few surfaces are C++-only — config patch reads and configs by version tag. In
    Blueprint, Flock Resolve Config Data already returns the patched-or-base values, which is
    what most graphs want.
  • Asset uploads are not included. The SDK reads and downloads assets; publishing them is a
    dashboard operation.
  • No binary distribution yet. Consuming the plugin without a compiler requires builds
    verified against each supported engine version. That pipeline doesn't exist yet, so the
    toolchain is required for now.

Documentation

MIT licensed.

What's Changed

New Contributors

Full Changelog: https://github.com/QwackStack/FlockUnrealSdk/commits/v1.0.0