First of all, make sure that you have filled the leaderboards info under the plugin editor settings.

Windows → Ultimate Mobile → Edit Settings

Showing default UI

After the player is successfully connected to the Game Service, you can use leaderboards API.

You can show leaderboards UI with ShowLeaderBoardsUI method


Or you can also show the default UI for the specific leaderboard, as showed with the code snippet below.

Note: you should pass the Id, you have specified in the plugin settings. 

string leaderBoard_Id = "LeadrBoardSample_1";

Score reporting.

You can report new high score using SubmitScore method. As soon as the score is reported, you will get ActionScoreSubmitted action fired with the UM_LeaderboardResult inside. See the code snippet below:

UM_GameServiceManager.ActionScoreSubmitted += HandleActionScoreSubmitted;
UM_GameServiceManager.Instance.SubmitScore(leaderBoardId, hiScore);

void HandleActionScoreSubmitted (UM_LeaderboardResult res) {
	if(res.IsSucceeded) {
		UM_Score playerScore = res.Leaderboard.GetCurrentPlayerScore(UM_TimeSpan.ALL_TIME, UM_CollectionType.GLOBAL);
		Debug.Log("Score submitted, new player high score: " + playerScore.LongScore);
	} else {
		Debug.Log("Score submission failed: " + res.Error.Code + " / " + res.Error.Description);

The code snippet below shows how to get current player's global score from the specific leaderboard. The method will return the UM_Score object which can be used to get score in the format you need.

UM_Score playerScore = res.Leaderboard.GetCurrentPlayerScore(UM_TimeSpan.ALL_TIME, UM_CollectionType.GLOBAL);

Loading other player scores

This can be useful if you want to create your own UI to display leaderboard scores in your game. For loading score list from the leaderboards, you can use several  UM_GameServiceManager  methods described below. 

//Asynchronously load the player-centered page of scores for a given leaderboard. If the player does not have a score on this leaderboard, this call will return the top page instead.
void LoadPlayerCenteredScores(string leaderboardId, int maxResults, UM_TimeSpan timeSpan, UM_CollectionType collection);
void LoadPlayerCenteredScores(UM_Leaderboard leaderboard, int maxResults, UM_TimeSpan timeSpan, UM_CollectionType collection);

//Asynchronously load the top page of scores for a given leaderboard.
void LoadTopScores(string leaderboardId, int maxResults, UM_TimeSpan timeSpan = UM_TimeSpan.ALL_TIME, UM_CollectionType collection = UM_CollectionType.GLOBAL);
void LoadTopScores(UM_Leaderboard leaderboard, int maxResults, UM_TimeSpan timeSpan = UM_TimeSpan.ALL_TIME, UM_CollectionType collection = UM_CollectionType.GLOBAL);

Any for those methods will trigger the ActionScoresListLoaded event, with the UM_LeaderboardResult inside. After scores data is loaded you may use UM_Leaderboard methods to retrieve users' score data and display it with your custom UI.



public class UM_Leaderboard {
	string Id {get;}
	string Name {get;}
	string Description {get;}
	Texture2D Texture {get;}

	UM_Score GetCurrentPlayerScore(UM_TimeSpan span, UM_CollectionType collection)
	UM_Score GetScoreByPlayerId(string playerId, UM_TimeSpan span, UM_CollectionType collection)
	List<UM_Score> GetScoresList(UM_TimeSpan span, UM_CollectionType collection)
	UM_Score GetScore(int rank, UM_TimeSpan scope, UM_CollectionType collection)


public class UM_Score {
	string LeaderboardId {get;}
	int Rank {get;}
	long LongScore {get;}
	float CurrencyScore {get;}
	System.TimeSpan TimeScore {get;}
	UM_TimeSpan TimeSpan {get;}
	UM_CollectionType Collection {get;}
	UM_PlayerTemplate Player {get;}


public enum UM_CollectionType  {
	GLOBAL = 1,


public enum UM_TimeSpan {
    ALL_TIME = 2,
    WEEK = 1,
    TODAY = 0


public class UM_LeaderboardResult : UM_Result {
	UM_Leaderboard Leaderboard {get;}


public class UM_Result {

	bool IsSucceeded {get;}
	bool IsFailed {get;}
	UM_Error Error {get;}


The example of full usage of API can be found under the UM_GameServiceBasics example scene.