Leaderboards, notifications, and account linking
- Leaderboards. Read the top of a board, the signed-in player’s own rank, and the players around them, filtered by window and country. Scores need no submit call — they come from the player data field the board is configured against. See Leaderboards.
- Game notifications. A per-player inbox with unread counts, read/mark-all-read, push device
registration, and locally scheduled reminders your game can cancel. The template catalog is
readable from the game, and
FlockEvents.OnNotificationReceivedfires as new items arrive. See Game Notifications. - Account linking. One player can hold several credentials — device, email, Google, Apple, Facebook, Steam, Discord — and link or unlink them at runtime. Every call returns the updated credential list. See Account Linking.
- Breaking:
Notification.ScheduleAsyncnow takes the template’s name, not its ID. The parameter is still a string in the same position, so existing calls keep compiling and fail at runtime instead. Migration: pass the name you gave the template on the dashboard. - Auth surface completed — password reset, email verification, server-side token revocation, and a display-name availability preflight.
- Every error now carries a code. Catch
FlockExceptionand branch on the typedErrorCode, e.g.FlockErrorCode.ShopInsufficientFunds, instead of matching message text. - Fixed:
Commands.UpdatePlayerDataAsyncfailing with HTTP 422, and a stray space in the configured API URL breaking every request on WebGL.
Verified engine range 5.5–5.8
- The Unreal SDK is available — player auth, save data, economy, remote config, downloadable assets, and analytics as a native plugin. Every feature works from Blueprint as a self-contained async node, with no Target pin to wire. See the Unreal SDK guide.
- Typed code generation from your own schemas. One click turns templates, configs, and shops into typed Blueprint structs, enums, and one-node reads, writes, and purchases — no C++ and no compile step. Projects that prefer C++ can switch the target and get a generated module instead.
- Offline-safe by design. Config, game, shop-catalog and template reads are cached to disk and served without a connection; player-data writes queue and replay. Currency grants deliberately do not queue, so they cannot double-credit.
- Engine support is a verified range: UE 5.5 to 5.8 — every version in the range is compiled and run against the full test suite before release. Newer engines warn rather than block.
- Leaderboards, notifications, and account linking are Unity-only for now.
Termination tracking & synchronous log API
- Unexpected-termination detection. A run that dies without a clean quit is reported on the
next launch as an automatic
app_terminationevent, classifiedbackground_killorabnormal— see Analytics & Events. - Breaking:
LogExceptionAsync/LogErrorAsync/LogEventAsyncare now synchronousLogException/LogError/LogEvent. They only ever enqueued locally, so the oldawaitresolved on enqueue, not delivery. Migration: drop theawaitand theAsyncsuffix. - New
Analytics.FlushAsync()— a real await that drains everything queued to the server, for the rare moment delivery must be confirmed. Automatic flushing still runs as before. - Unreal SDK: matching update in progress.
Dashboard features
- Leaderboards — rank players on any numeric player-data field, with weekly and seasonal windows, country scopes, and player exclusions.
- Game Notifications — templates, campaigns (all players or a segment; now, scheduled, or recurring), and a per-player inbox across in-app, email, and push.
- Developer Alerts — log-threshold alert rules with severities, cooldowns, and a trigger history in the Alert Center.
- Public developer documentation portal, with Unity and Unreal SDK guides.