Steamworks
By using your Web API Publisher key, you can sync data between Talo and Steamworks.
Authentication
By setting up the Talo Steamworks integration, you are able to authenticate and identify players using the Steam User Auth API.
You'll need to pass the ticket generated by the GetAuthTicketForWebApi API when identifying players. Using this, Talo will automatically verify the session and sync the player.
Talo will also add helpful props
to your player such as app ownership details and ban statuses.
More info is available in the Godot plugin docs and Unity package docs.
Leaderboards
Talo syncs leaderboards by mapping between the ID of the leaderboard in Talo and in Steamworks. If we cannot find a mapping, we will fall back to mapping between the Talo Internal name
and the Steamworks Name
(not the Community name
). To ensure syncing works correctly, you may want to avoid manually updating the Name
inside Steamworks.
Creating leaderboards
When you create a leaderboard in Talo, we'll automatically create one in Steamworks too. Unfortunately, there are a few caveats:
- Unfortunately the Steamworks API doesn't allow us to push through display names, you will need to set a Community Name inside Steamworks to make the leaderboard "public"
- The
Unique
property will be ignored since Steamworks leaderboards only allow unique entries - The Steamworks leaderboard will only allow trusted writes (i.e. from a server, not a client)
Updating leaderboards
Unfortunately the Steamworks API does not have a way to update leaderboards. However, if the leaderboard does not exist in Steamworks, we will create it.
Deleting leaderboards
When you delete a leaderboard in Talo, we'll also delete it in Steamworks.
Setting scores
When a player submits a score, we'll also push that score through to your Steamworks leaderboard. It'll use the KeepBest
method since as mentioned above, Steamworks leaderboards are always in unique mode.
Toggling score visibility
If you hide an entry, we will delete it from the Steamworks leaderboard. If you then unhide the entry, we'll re-create it.
Manually syncing leaderboards
Here's how it works:
- We'll pull in your leaderboards from Steamworks
- If a leaderboard exists in Talo and Steamworks (by checking the mapping), we will update the
Sort mode
,Name
andInternal name
in Talo as well as setUnique
totrue
(as all Steamworks leaderboards only allow unique entries) - If the leaderboard does not exist in Steamworks, we will create it
- If the leaderboard does not exist in Talo, we will create a unique-mode leaderboard
- For each of your players with a Steam alias, we will create or update entries from each leaderboard
- If a leaderboard entry only exists in Talo, we will create it for your Steamworks leaderboard
Stats
Talo syncs stats by mapping between the Internal name
in Talo and the API name
in Steamworks. To ensure syncing works correctly, you may want to avoid manually updating the API name
inside Steamworks.
Setting stats
When a stat changes for a player, we'll update it in Steamworks.
Manually syncing stats
Here's how it works:
- We'll pull in your stats from Steamworks - each
Set by
needs to beGS
in order for us to find the stat - If a stat exists in Talo and Steamworks (by checking the mapping), we will update the
Default value
andName
in Talo - If the stat does not exist in Talo, we will create a non-global stat with a matching
Internal name
andName
to the Steamworks one - Unfortunately, if the stat does not exist in Steamworks, we cannot create one, you will need to do this manually
- For each of your players with a Steam alias, we will update their stats with the ones from Steamworks
- If a player stat only exists in Talo, we will push it through to Steamworks