Backflip for AnimalsOwner documentation← Portfolio

#Data & Persistence

#Where data is stored

StoreContents
BackflipProfiles_v1One profile per player, keyed by UserId
BackflipProfiles_v1_<board>Ordered stores for the three leaderboards

The names come from Config.DataStoreName. Changing it starts every player from zero, so only change it for a deliberate wipe.

#Saved fields

Cash, Speed, rebirths, the collector bank, animals, eggs and their timers, hotbar, trails, upgrade levels, Spins and wheel timer, daily streak, playtime, quests, Index discoveries, settings, passes, pending purchases and processed receipt IDs. Per-session values (current plot, carried egg, held item) are reset on join.

#When it saves

  • every AutosaveSeconds (60 s),
  • after granting a developer product,
  • when the player leaves,
  • for every player when the server shuts down (up to 25 s).

#Session lock

When a profile loads, the server writes a session ID that expires after SessionLeaseSeconds (180 s) and renews it on every save. If another server still holds a valid lease, the player sees "Your profile is open on another server. Rejoin in a moment." This prevents two servers from overwriting each other.

#New fields

Profiles are reconciled against the defaults on load. A field you add to the default profile is filled in for existing players automatically. SchemaVersion is 1.

#Studio

Without Enable Studio Access to API Services, the DataStore call fails. The game then immediately uses a temporary profile, shows "Studio test session: DataStore access is unavailable; progress is temporary." and does not save. Products are not granted in this mode.

On a live server a failed load is retried three times before the player is asked to rejoin, so progress is never replaced with an empty profile.