Skip to main content

Continuity + offline mode

Talo is designed to work both online and offline through a combination of Continuity (described below) and offline file caches. The interactions described on this page are enabled by default and some of them can be toggled off via settings.

Continuity

Talo Continuity is a resilience layer to keep your game in sync when Talo can't be reached.

Continuity runs behind the scenes and catches server errors (like 502 Bad Gateway, 503 Service Unavailable or 504 Gateway Timeout) or UnityWebRequest errors.

Failed requests are cached and replayed when network connectivity is re-established. Internally, a health check endpoint is polled to assess Talo's availability.

tip

Check out this blog post on Continuity for more details

Continuity timestamp

Replayed requests send a special header indicating the original time when the request was made. Talo uses this header to set the createdAt of various entities like feedback, leaderboard entries and player stats.

Configuring Continuity

As with anything on the client-side, despite being built with security in mind, Continuity could be exploited by bad actors. Depending on the type of game you're building, this could have varying consequences. You can disable continuity by unchecking Continuity enabled in your Talo Settings asset.

Testing Continuity

Continuity happens in the background and there are no direct APIs exposed for it. You can simulate being offline and toggle Continuity in the Talo Playground. Note: toggling these options will automatically update your Talo Settings asset.

Offline interactions

Checking if the player is offline

Talo.IsOffline() returns a boolean indicating if offline mode is enabled. Offline mode occurs when Unity detects that the player is offline or when the offlineMode setting is enabled.

Use this function to handle custom offline interactions, such as building your own offline caches.

Player identification

After a successful online identification, player data is cached locally for future offline use. You can disable this interaction with the cachePlayerOnIdentify setting.

Note: players cannot be created while offline.

Game saves

All player saves are cached locally and automatically loaded when offline. Updates to save files are mirrored to the offline cache.

Saves sync automatically when connectivity is restored. If the offline save is newer than the latest version of the online save, the offline save will become the new latest version.

Live config

Live config data is cached locally after successful online queries. Updates are synced with the local cache, which is used when the player is offline.