API Reference
Core Loop
Launch Skillz UI
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
- Asynchronous
- Synchronous
void SkillzCrossPlatform.LaunchSkillz();
Legacy:
void SkillzCrossPlatform.LaunchSkillz(SkillzMatchDelegate matchDelegate);
Parameters
Legacy: matchDelegate
A reference to a SkillzMatchDelegate
instance that Skillz will use
void SkillzCrossPlatform.LaunchSkillz();
Legacy:
void SkillzCrossPlatform.LaunchSkillz(SkillzMatchDelegate matchDelegate);
Parameters
Legacy: matchDelegate
A reference to a SkillzMatchDelegate
instance that Skillz will use
func initWithGameId(
gameId: String,
forDelegate: SkillzBaseDelegate,
withEnvironment: SkillzEnvironment,
allowExit: Bool)
Parameters
gameId
The ID string of your game that is created from the Skillz Developer Console
forDelegate
Reference to a SkillzDelegate
instance
withEnvironment
The Skillz server environment your game will run in. It can be either SkillzSandbox
or SkillzProduction
allowExit
Specifies if the user can exit the Skillz UI via the sidebar menu
- (void)initWithGameId:(NSString *)
forDelegate:(<SkillzBaseDelegate>)
withEnvironment:(SkillzEnvironment)
allowExit:(BOOL)
Parameters
initWithGameId
The ID string of your game that is created from the Skillz Developer Console
forDelegate
Reference to a SkillzDelegate
instance
withEnvironment
The Skillz server environment your game will run in. It can be either SkillzSandbox
or SkillzProduction
allowExit
Specifies if the user can exit the Skillz UI via the sidebar menu. This can be either YES
or NO
void Skillz.launch(Activity activity)
Update Current Score
Call this method every time the player's score changes during a Skillz match.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
- string
- int
- float
void SkillzCrossPlatform.UpdatePlayersCurrentScore(string score);
Parameters
score
The player's current score as a string
void SkillzCrossPlatform.UpdatePlayersCurrentScore(int score);
Parameters
score
The player's current score as an integer
void SkillzCrossPlatform.UpdatePlayersCurrentScore(float score);
Parameters
score
The player's current score as a float
- without Match ID
- with Match ID
func updatePlayersCurrentScore(currentScoreForPlayer: NSNumber)
Parameters
currentScoreForPlayer
The players current score as NSNumber
func updatePlayersCurrentScore(
currentScoreForPlayer: NSNumber,
withMatchId: NSNumber)
Parameters
currentScoreForPlayer
The players current score as NSNumber
withMatchId
The match ID as NSNumber
- without Match ID
- with Match ID
- (void)updatePlayersCurrentScore: (NSNumber *)
Parameters
updatePlayersCurrentScore
The players current score as an NSNumber
- (void)updatePlayersCurrentScore: (NSNumber *)
withMatchId: (NSNumber *)
Parameters
updatePlayersCurrentScore
The players current score as NSNumber
withMatchId
The match ID as NSNumber
void updatePlayersCurrentScore(Activity activity, BigDecimal score, String matchId)
Parameters
activity
Current activity context
score
Player's updated score
matchId
ID of the current match
Submit Score
Call this method when a player finishes a match. This will send the score to Skillz and conclude the match. This will not send the user back to the Skillz UI
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
- string
- int
- float
void SkillzCrossPlatform.SubmitScore(string score, Action successCallback, Action<string> failureCallback)
Parameters
score
Player's final score as a string
successCallback
Implementation of the System.Action delegate that handles successful submission
failureCallback
Implementation of the System.Action delegate that handles failed submission
void SkillzCrossPlatform.SubmitScore(int score, Action successCallback, Action<string> failureCallback)
Parameters
score
Player's final score as an integer
successCallback
Implementation of the System.Action delegate that handles successful submission
failureCallback
Implementation of the System.Action delegate that handles failed submission
void SkillzCrossPlatform.SubmitScore(float score, Action successCallback, Action<string> failureCallback)
Parameters
score
Player's final score as a float
successCallback
Implementation of the System.Action delegate that handles successful submission
failureCallback
Implementation of the System.Action delegate that handles failed submission
func submitScore(score: NSNumber,
withSuccess: () -> Void,
withFailure: (String) -> Void)
Parameters
score
The score for the match
withSuccess
Success completion block
withFailure
Failure completion block, returns string error message
- (void)submitScore: (NSNumber *)
withSuccess: ^(void)
withFailure: ^(NSString *) errorMessage
Parameters
submitScore
The score for the match
withSuccess
Success completion block
withFailure
Failure completion block, returns string error message
void Skillz.submitScore(@NonNull final Activity activity, BigDecimal score, String matchId, SkillzScoreCallback callback)
Parameters
activity
The activity to report the score from
score
Score to report in BigDecimal
matchId
ID of the current match
callback
SkillzScoreCallback
that is called upon completion
End Replay
End the current replay if one exists and returns the status of the score submission. Must be called after score has been submitted. Use to end replay recording at conclusion of the match and before user is presented with personalized progression room metrics.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
bool EndReplay()
Returns
Boolean true if end replay was successful, false if the user has not submitted a score for the match
func endReplayRecording() -> Bool
Returns
Boolean true if end replay was successful and false if the user has not submitted a score for the match
- (BOOL)endReplayRecording
Returns
Boolean true if end replay was successful and false if the user has not submitted a score for the match
Return to Skillz
The ReturnToSkillz method presents the Skillz UI. This must be called after the score has been submitted with the SubmitScore method. After the SubmitScore has been called you can present users with relevant statistics such as high score and present content to enhance the game experience.
In all cases, it will return a boolean, indicating whether or not it is able to return the user to Skillz. For the case of a match in progress, unless a score has been submitted, this method will return false and the user will not be returned to Skillz. If a score has been submitted, it returns true and returns the user to Skillz.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
bool SkillzCrossPlatform.ReturnToSkillz()
Returns
Boolean indicating whether it is able to return the user to Skillz UI
func returnToSkillzWithCompletion(completion: () -> Void) -> BOOL
Parameters
completion
Completion block
Returns
Boolean indicating whether it is able to return the user to Skillz UI
- (BOOL)returnToSkillzWithCompletion:^(void)
Parameters
returnToSkillzWithCompletion
Completion block
Returns
Boolean indicating whether it is able to return the user to Skillz UI
boolean Skillz.returnToSkillz(@NonNull final Activity activity, String matchId)
Parameters
activity
Current activity context
matchId
ID of the match just being played, send null
if not in a match
Abort Match
Forfeits the current match and returns to the Skillz UI.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.AbortMatch()
- without Match ID
- with Match ID
- bot match
func notifyPlayerAbort(completion: () -> Void)
Parameters
completion
Callback to invoke after the method has completed execution
func notifyPlayerAbort(withMatchId: NSNumber,
withCompletion: () -> Void)
Parameters
withMatchId
Match ID as NSNumber
withCompletion
Callback to invoke after the method has completed execution
func notifyPlayerAbortForBotMatch(withBotScore: NSNumber?,
completion: () -> Void)
Parameters
withBotScore
Bot score as NSNumber
completion
Callback to invoke after the method has completed execution
- without Match ID
- with Match ID
- bot match
- (void)notifyPlayerAbortWithCompletion: ^(void)
Parameters
notifyPlayerAbortWithCompletion
Completion block
- (void)notifyPlayerAbortWithMatchId: (NSNumber *)
WithCompletion: ^(void)
Parameters
notifyPlayerAbortWithMatchId
Match ID as NSNumber
WithCompletion
Completion block
- (void)notifyPlayerAbortForBotMatchWithBotScore:(NSNumber * _Nullable)
completion:^(void)
Parameters
notifyPlayerAbortForBotMatchWithBotScore
Bot score as NSNumber
completion
Completion block
void Skillz.abortMatch(Activity activity)
Display Tournament Results With Score
The DisplayTournamentResultsWithScore method replaces the deprecated ReportFinalScore method. Skillz recommends that you try to use the SubmitScore and ReturnToSkillz methods. However, DisplayTournamentResultsWithScore can be used as a failsafe if the SubmitScore method fails.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
This method is overloaded
- string
- int
- float
void SkillzCrossPlatform.DisplayTournamentResultsWithScore(string score)
Parameters
score
Player's final score as a string
void SkillzCrossPlatform.DisplayTournamentResultsWithScore(int score)
Parameters
score
Player's final score as an integer
void SkillzCrossPlatform.DisplayTournamentResultsWithScore(float score)
Parameters
score
Player's final score as a float
- without Match ID
- with Match ID
- bot match
func displayTournamentResults(withScore: NSNumber,
withCompletion: () -> Void)
Parameters
withScore
NSNumber score value
withCompletion
Completion block
func displayTournamentResults(withScore: NSNumber,
withMatchId: NSNumber,
withCompletion: () -> Void)
Parameters
withScore
Player score as NSNumber
withMatchId
Match ID as NSNumber
withCompletion
Completion block
func displayResultsForBotMatch(withPlayerScore: NSNumber,
botScore: NSNumber,
withCompletion: () -> Void)
Parameters
withPlayerScore
Player score as NSNumber
botScore
Bot score as NSNumber
withCompletion
Completion block
- without Match ID
- with Match ID
- bot match
- (void)displayTournamentResultsWithScore: (NSNumber *)
withCompletion: ^(void))
Parameters
displayTournamentResultsWithScore
Player score as NSNumber
WithCompletion
Completion block
- (void)displayTournamentResultsWithScore: (NSNumber *)
withMatchId: (NSNumber *)
withCompletion: ^(void))
Parameters
displayTournamentResultsWithScore
Player score as NSNumber
withMatchId
Match ID as NSNumber
WithCompletion
Completion block
- (void)displayResultsForBotMatchWithPlayerScore: (NSNumber *)
botScore: (NSNumber *)
withCompletion: ^(void))
Parameters
displayResultsForBotMatchWithPlayerScore
Player score as NSNumber
botScore
Bot score as NSNumber
WithCompletion
Completion block
void Skillz.displayTournamentResultsWithScore(@NonNull final Activity activity, BigDecimal score, String matchId)
Parameters
activity
Current activity context
score
The score to report in BigDecimal
matchId
The id of the current match
Audio API
Get SFX Volume
Gets the volume for sound effects in your game.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Set SFX Volume
Sets the volume for the sound effects in your game.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.setSFXVolume(float volume)
Parameters
volume
A float between 0 and 1, inclusive
Get Background Music Volume
Gets the volume for the background music that is played in the Skillz UI.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Set Background Music Volume
Sets the volume of the background music that plays in the Skillz UI.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.setSkillzMusicVolume(float volume)
Parameters
volume
A float between 0 and 1, inclusive
func backgroundMusicVolume(volumeLevel: GCFloat)
Parameters
musicVolume
GCFloat
between 0 and 1, inclusive
- (void)setBackgroundMusicVolume: (GCFloat)
Parameters
setBackgroundMusicVolume
GCFloat
between 0 and 1, inclusive
void SkillzAudio.setSkillzMusicVolume(float volume)
Parameters
volume
float
between 0 and 1, inclusive
Set Background Music
Specifies the music file to play as background music while in the Skillz UI.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.setSkillzBackgroundMusic(string fileName)
Parameters
fileName
Path to the music file to play in the background of the Skillz UI
func setBackgroundMusicFile(fileName: String) -> BOOL
Parameters
fileName
Path the music file to play in the background of the Skillz UI
Returns
Boolean indicating whether pathname passed validation
- (BOOL)setBackgroundMusicFile: (NSString*)
Parameters
setBackgroundMusicFile
Music file to play in the background of the Skillz UI
Returns
Boolean indicating whether pathname passed validation
Progression API
Progression Namespace Constants
Calls to the progression methods must use one of the three namespace string
values. Each namespace return a separate list of key-value pairs for for that namespace:
DefaultPlayerData
For read-only Skillz player data and is game-specific.PlayerData
For publisher-defined player data and is game-specific.InGameItems
For publisher-defined player data and is shared across all games in publisher's portfolio.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
ProgressionNamespace.DEFAULT_PLAYER_DATA
ProgressionNamespace.PLAYER_DATA
ProgressionNamespace.IN_GAME_ITEMS
ProgressionNamespaceDefaultPlayerData
ProgressionNamespacePlayerData
ProgressionNamespaceInGameItems
ProgressionNamespaceDefaultPlayerData
ProgressionNamespacePlayerData
ProgressionNamespaceInGameItems
ProgressionNamespace.DefaultPlayerData
ProgressionNamespace.PlayerData
ProgressionNamespace.InGameItems
Get Progression User Data
Retrieve data for the current user. This method requires callback
methods that allow you to handle success and fail scenarios.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.GetProgressionUserData(string progressionNamespace, List<string> userDataKeys, Action<Dictionary<string, ProgressionValue>> successCallback, Action<string> failureCallback)
Parameters
progressionNamespace
One of the namespace String constants
userDataKeys
String key list of desired fields.
successCallback
Action delegate to handle successful callback. The method must be defined in the implementation.
failureCallback
Action delegate to handle failed callback. The method must be defined in the implementation.
func getUserData(forNamespace: String!,
withKeys: NSMutableArray!,
withSuccess: ([AnyHashable : Any]?) -> Void,
withFailure: (String?) -> Void)
forNamespace
One of the String constants
withKeys
NSMutableArray
of desired field key Strings
withSuccess
Function to handle callback success and AnyHashable return data object
withFailure
Function to handle callback failure and String error message
- (void)getUserDataForNamespace: (NSString *)
withKeys: (NSMutableArray *)
withSuccess: ^(NSDictionary *userData)
withFailure: ^(NSString *error)
Parameters
getUserDataForNamespace
One of the NSString constants
withKeys
String key NSMutableArray of desired fields
withSuccess
Function to handle callback success and NSDictionary return data object
withFailure
Function to handle callback failure and NSString error message
void SkillzProgression.getUserData(String namespace, List<String> userDataKeys, ProgressionCallback callback)
Parameters
namespace
One of the namespace String constants
userDataKeys
String key list of desired fields.
callback
ProgressionCallback object to handle callback success or failure. Must be defined in implementation.
Update Progression User Data
Write data for the current user. This method requires callback
methods that allow you to handle success and fail scenarios. Can update up to 25 elements per call.
Note
The DefaultPlayerData namespace is read-only, and cannot be used with this method.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.UpdateProgressionUserData(string progressionNamespace, Dictionary<string, object> userDataUpdates, Action successCallback, Action<string> failureCallback)
Parameters
progressionNamespace
One of the namespace String constants
userDataUpdates
Dictionary of key/value pairs to be updated
successCallback
Action delegate to handle successful callback. The method must be defined in the implementation
failureCallback
Action delegate to handle failed callback. The method must be defined in the implementation
func updateUserData(forNamespace: String!,
withUserData: [AnyHashable : Any]!,
withSuccess: ([AnyHashable : Any]?) -> Void,
withFailure: (String?) -> Void)
Parameters
forNamespace
One of the String constants
withUserData
AnyHashable of key/value pairs to be updated
withSuccess
Function to handle callback success and AnyHashable return data object
withFailure
Function to handle callback failure and String error message
- (void)updateUserDataForNamespace: (NSString *)
withUserData: (NSDictionary *)
withSuccess: ^(NSDictionary *userData)
withFailure: ^(NSString *error)
Parameters
updateUserDataForNamespace
One of the NSString constants
withUserData
Dictionary of key/value pairs to be updated
withSuccess
Function to handle callback success and NSDictionary return data object
withFailure
Function to handle callback failure and NSString error message
void SkillzProgression.updateUserData(String namespace, Map<String, Object> userDataUpdates, ProgressionCallback callback)
Parameters
namespace
One of the namespace String constants
userDataUpdates
Map of String/Object key/value pairs.
callback
ProgressionCallback
object to handle callback success or failure. Must be defined in implementation.
Seasons API
Get Current Season
Fetch the full season of the current Season based on start and end time if one is currently active. This method uses callbacks to handle the successful fetch or an error if one occurs. If no season is active, this method will call the given success handler with null
.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.GetCurrentSeason(Action<Season> successCallback, Action<string> failureCallback
Parameters
successCallback
Action delegate to handle successful callback and the returned Season
object. The method must be defined in the implementation
failureCallback
Action delegate to handle the failure callback and the returned error string
. The method must be defined in the implementation
func getCurrentSeason(_ successCallback: (SKZSeason?) -> Void,
withFailure failureCallback: (String?) -> Void)
Parameters
successCallback
Function to handle callback success and SKZSeason return data object
failureCallback
Function to handle callback failure and String error message
- (void)getCurrentSeason: ^(SKZSeason *season)successCallback
withFailure: ^(NSString *error)failureCallback
Parameters
successCallback
Function to handle success callback and SKZSeason return data object
failureCallback
Function to handle failure callback and NSString error message
void SkillzProgression.getCurrentSeason(CurrentSeasonCallback callback)
Parameters
callback
Implementation of CurrentSeasonCallback
interface
Get Previous Seasons
Fetch the full seasons of previous Seasons based on start and end time in chronological order. This returns previous seasons based on a given count. The seasons returned are fetched to include the most recent season. For example, if requesting the previous 2 seasons, it will fetch the 2 most recently completed seasons in chronological order. The most recently ended season will be the end of the list. When no previous seasons exist, the fetch will return an empty list. The given count must be greater than 0. If the count is greater than the total number of previous seasons, as many previous seasons as possible will be returned.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.GetPreviousSeasons(int count, Action<List<Season>> successCallback, Action<string> failureCallback)
Parameters
count
Number of previous seasons requested
successCallback
Action delegate to handle success callback and the returned List
of Season
objects. The method must be defined in the implementation
failureCallback
Action delegate to handle the failure callback and the returned error string
. The method must be defined in the implementation
func getPreviousSeasons( _ count: Int32,
withSuccess successCallback: (NSArray?) -> Void,
withFailure failureCallback: (String?) -> Void)
Parameters
count
Number of previous seasons requested
successCallback
Function to handle success callbackand NSArray
of SKZSeason
return data object
failureCallback
Function to handle failure callback and String
error message
- (void)getPreviousSeasons: (int)count
withSuccess: ^(NSArray *seasons))successCallback
withFailure: ^(NSString *error))failureCallback
Parameters
count
Number of previous seasons requested
successCallback
Function to handle success callback and NSArray
of SKZSeason
return data object
failureCallback
Function to handle failure callback and NSString
error message
void SkillzProgression.getPreviousSeasons(long count, MultipleSeasonCallback callback)
Parameters
count
Number of previous seasons requested
callback
Implementation of MultipleSeasonCallback
interface
Get Next Seasons
Fetch the full seasons of upcoming Seasons based on start and end time in chronological order. This returns upcoming seasons based on a given count. The seasons returned are fetched to include the most recent season. For example, if requesting the next 2 seasons, it will fetch the 2 upcoming seasons with the closest start times in chronological order. The closest season to starting will be the first season of the list. When no upcoming seasons exist, the fetch will return an empty list. The given count must be greater than 0. If the count is greater than the total number of upcoming seasons, as many upcoming seasons as possible will be returned.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.GetNextSeasons(int count, Action<List<Season>> successCallback, Action<string> failureCallback)
Parameters
count
Number of upcoming seasons requested
successCallback
Action delegate to handle success callback and the returned List
of Season
objects. The method must be defined in the implementation
failureCallback
Action delegate to handle the failure callback and the returned error string
. The method must be defined in the implementation
func getNextSeasons( _ count: Int32,
withSuccess successCallback: (NSArray?) -> Void,
withFailure failureCallback: (String?) -> Void)
Parameters
count
Number of previous seasons requested
successCallback
Function to handle success callback and NSArray
of SKZSeason
return data object
failureCallback
Function to handle failure callback and String
error message
- (void)getNextSeasons: (int)count
withSuccess: ^(NSArray *seasons)successCallback
withFailure: ^(NSString *error)failureCallback
Parameters
count
Number of previous seasons requested
successCallback
Function to handle success callback and NSArray
of SKZSeason
return data object
failureCallback
Function to handle failure callback and NSString
error message
void SkillzProgression.getNextSeasons(long count, MultipleSeasonCallback callback)
Parameters
count
Number of previous seasons requested
callback
Implementation of MultipleSeasonCallback
interface
Random Generator
Random Value
Use the Skillz random implementation to ensure each competitor receives the exact same random number.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Random Value Ranged
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
- int
- float
int SkillzCrossPlatform.Random.Range(int min, int max)
Parameters
min
The minimum int value for the range
max
The maximum int value for the range
Returns
A generated pseudo random int value within the given range
NOTE
The Random function
Range(int min, int max)
requires the min and max value range (max-min) to be no larger thanInt.MaxValue
to prevent overflow
float SkillzCrossPlatform.Random.Range(float min, float max)
Parameters
min
The minimum float value for the range
max
The maximum float value for the range
Returns
A generated pseudo random float value within the given range
NOTE
The Random function
Range(float min, float max)
requires the min and max value range (max-min) to be no larger thanFloat.MaxValue
to prevent overflow
func getRandomNumber(withMin: UInt,
andMax: UInt) -> UInt
Parameters
withMin
The minimum UInt
value for the range
withMax
The maximum UInt
value for the range
Returns
A generated pseudo random UInt
value within the given range
+ (NSUInteger)getRandomNumberWithMin: (NSUInteger)
andMax: (NSUInteger)
Parameters
getRandomNumberWithMin
The minimum NSInteger
value for the range
andMax
The maximum NSInteger
value for the range
Returns
A generated pseudo random NSInteger
value within the given range
Random Point Inside Unit Sphere
Generate a point inside the unit sphere using Value()
.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Random Point Inside Unit Circle
Find a point inside the unit circle using Value()
.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Random Point On Unit Sphere
Hybrid rejection / trig method to generate points on a sphere using Value()
.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Random Quaternion in Rotation
Quaternion random using Value()
.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Random Quaternion in Rotation Uniform
Quaternion random using Value()
.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Helpers
Get Match Info
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Get Match Rules
Returns the match gameplay parameters that you set up in the Skillz Developer Console for each tournament type
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Hashtable SkillzCrossPlatform.GetMatchRules();
Returns
Hashtable
containing the gameplay parameters of the current match
func getMatchRules() -> [AnyHashable : Any]
Returns
AnyHashable
containing the gameplay parameters of the current match
+ (NSDictionary *)getMatchRules
Returns
NSDictionary
pointer containing the gameplay parameters of the current match
Map<String,String> getMatchRules()
Returns
Map
containing the gameplay parameters for the current match
Get Player
Gets the currently logged in player info. This will return an empty object if a Skillz player has not been created yet.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Get Player Details
Gets the currently logged in player info. Can be used outside of tournaments. Android only.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Does not exist in Unity. Use Get Player
Does not exist in Swift. Use Get Player
Does not exist in Objective-C. Use Get Player
Get SDK Version
Gets the version of the Skillz SDK your game is being run on.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Get User Name
Returns the current Skillz user display name.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Does not exist in Unity. Use Get Player
Does not exist in Swift. Use Get Player
Does not exist in Objective-C. Use Get Player
Is Match In Progress
Checks if a match is currently in progress.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
bool SkillzCrossPlatform.IsMatchInProgress();
Returns
A boolean indicating if a match if is in progress
Register Push Token
Enables an app to receive push notifications.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Does not exist in Swift
Does not exist in Objective-C
void registerPushToken(Context context, java.lang.String pushToken)
Parameters
context
The current application's context to receive Skillz push notifications.
pushToken
The device's Firebase push token.
Set Metadata for Match In Progress
Updates the meta data for a Skillz match in progress to track player actions, level types, or other information pertinent to the Skillz integration. There should be no more than 10 key/value pairs in the supplied collection. Data will only be available to Skillz to help identify fairness in level-based games.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.AddMetadataForMatchInProgress(string metadataJson, bool forMatchInProgress)
Parameters
attributes
String representing the meta data in a JSON string
forMatchInProgress
Boolean to check whether the user is in a Skillz game
func addMetadata([AnyHashable : Any,
forMatchInProgress: Bool)
Parameters
addMetadata
AnyHashable
of key/value pairs to update
forMatchInProgress
Boolean to check whether the user is in a Skillz game
- (void)addMetadata: (NSDictionary *)
forMatchInProgress: (BOOL)
Parameters
addMetadata
NSDictionary
of key/value pairs to update
forMatchInProgress
Boolean to check whether the user is in a Skillz game
void addMetadataForMatchInProgress(java.util.Map<?,?> attributes, boolean isMatchInProgress)
Parameters
attributes
A Map
containing the metadata of the match in progress.
isMatchInProgress
A boolean indicating if a match is in progress.
Sync API
Is Match Completed
This will return whether or not another client connected to this match has called either displaySynchronousTournamentResultsWithScore
or initiateSynchronousAbortWithCompletion:
to end the match.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Send Data
Sends a message to all clients connected to this match. This will trigger SkillzSyncDelegate::onDidReceiveData:
on all clients connected to the current match.
Note: NSData
passed to this function are limited to a certain size based on the game, and this function will assert if over that size. (2048 bytes currently).
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void SkillzCrossPlatform.SendData(byte[] data)
Parameters
data
The message to be sent, max 2048 bytes
Skillz Delegate
These methods are part of the Skillz Delegate interface, to be implemented in your Skillz Delegate
On Tournament Start
Called when a player enters a tournament from Skillz
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void OnMatchWillBegin(Match matchInfo) {}
Parameters
matchInfo
Match contains data relevant to the current match including player info
- Required to implement
- Setup and loading of gameplay scene is performed here
func tournamentWillBegin(
gameParameters: [AnyHashable : Any],
with matchInfo: SKZMatchInfo {}
Parameters
gameParameters
AnyHashable
contains the Game Parameters that were configured in the Skillz Developer Portal
matchInfo
SKZMatchInfo contains data relevant to the current match
- Required to implement
- Construction and loadout of gameplay is performed here
- (void)tournamentWillBegin:(NSDictionary *)gameParameters
withMatchInfo:(SKZMatchInfo *)matchInfo {}
Parameters
gameParameters
Dictionary contains the Game Parameters that were configured in the Skillz Developer Portal
matchInfo
SKZMatchInfo contains data relevant to the current match.
- Required to implement
- Construction and loadout of gameplay is performed here
<meta-data android:name="skillz_game_activity" android:value="" />
Parameters
android:value
Fully qualified path to gameplay activity
- Required to implement
On Progression Room Entry
Called when a user enters the Progression Room via Menu -> Progression Room or Progression Entry Point
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void OnProgressionRoomEnter() {}
- Required to implement, but can be left empty
- Construct and display the progression experience scene here
func onProgressionRoomEnter() {}
- Optional to implement
- Construct and display the progression experience here
- (void)onProgressionRoomEnter {}
- Optional to implement
- Construct and display the progression experience here
<meta-data android:name="skillz_progression_activity" android:value="" />
Parameters
android:value
Fully qualified path to progression activity
- Required to implement
- Leave value blank if not used or not yet known
On Skillz Exit
Called when a user exits the Skillz experience via Menu -> Exit
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void OnSkillzWillExit() {}
- Optional to implement
- Return to the game menu scene here
func skillzWillExit() {}
- Optional to implement
- Return to the game menu here
- (void)skillzWillExit {}
- Optional to implement
- Return to the game menu scene is performed here
<meta-data android:name="skillz_exit_activity" android:value="" />
Parameters
android:value
Fully qualified path to menu or title activity
- Required to implement
- Leave value blank if not used
On Skillz Finished Launching
Called once the Skillz UI has finished rendering
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
func skillzHasFinishedLaunching() {}
- Optional to implement
- Use this to clean up the view hierarchy if needed
- (void)skillzHasFinishedLaunching {}
- Optional to implement
- Use this to clean up the view hierarchy if needed
On Skillz Will Launch
Called before the Skillz UI launches
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
func skillzWillLaunch() {}
- Optional to implement
- Use this to clean up states before Skillz launches if needed
- (void)skillzWillLaunch {}
- Optional to implement
- Use this to clean up states before Skillz launches
On New Paying User (NPU) Conversion
Called at the moment when a player joins a match that leads to the player becoming a New Paying User (NPU) through this game. When triggered, it is called just before the On Tournament Start
Skillz Delegate method.
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
void OnNPUConversion() {}
- Optional to implement
func OnNPUConversion() {}
- Optional to implement
- (void)OnNPUConversion {}
- Optional to implement
import com.skillz.SkillzActivity;
public class GameActivity extends SkillzActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
// ...
Intent intent = getIntent();
boolean isNPUConversionEvent = intent.getBooleanExtra(SkillzActivity.NPU_CONVERSION_EVENT_INTENT_EXTRA, false);
if (isNPUConversionEvent) {
// OnNPUConversion event has occurred, handle here
}
}
}
- Optional to implement
Objects
Real-Time Server Connection Info
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
CustomServerConnectionInfo
Property | Data Type | Description |
---|---|---|
isBotMatch | bool | Indicates if the match is a sync bot match |
MatchId | string | The ID of the real-time match |
MatchToken | string | An encrypted token to help validate the session server side |
ServerIp | string | The hostname or IP for the match |
ServerPort | string | The port for the game server |
SKZSyncConnectionInfo
Property | Data Type | Description |
---|---|---|
isBotMatch | BOOL | Indicates if the match is a sync bot match |
MatchId | NSString | The ID of the real-time match |
MatchToken | NSString | An encrypted token to help validate the session server side |
ServerIp | NSString | The hostname or IP for the match |
ServerPort | NSString | The port for the game server |
SKZSyncConnectionInfo
Property | Data Type | Description |
---|---|---|
isBotMatch | BOOL | Indicates if the match is a sync bot match |
MatchId | NSString | The ID of the real-time match |
MatchToken | NSString | An encrypted token to help validate the session server side |
ServerIp | NSString | The hostname or IP for the match |
ServerPort | NSString | The port for the game server |
SyncConnectionInfo
Property | Data Type | Description |
---|---|---|
isBotMatch | boolean | Indicates if the match is a sync bot match |
MatchId | String | The ID of the real-time match |
MatchToken | String | An encrypted token to validate the session server-side |
ServerIp | String | The hostname or IP for the match |
ServerPort | String | The port for the game server |
Match Info
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Match
Property | Data Type | Description |
---|---|---|
BracketRound | int? | Indicates the round of the bracket tournament if IsBracket is true |
CustomServerConnectionInfo | CustomServerConnectionInfo | The connection info to a custom server that coordinates a real-time match |
Description | string | The description of this tournament type |
EntryCash | float? | If this tournament is being played for real cash, this is the amount of cash required to enter |
EntryPoints | int? | If this tournament is being played for Z, this is the amount of Z required to enter. |
GameParams | Dictionary<string, string> | The custom parameters for this tournament type specified in the developer portal |
ID | ulong? | The unique ID for the match |
IsBracket | bool | Indicates the match is a bracketed tournament |
IsCash | bool? | Indicates the match is for real prizes or for Z |
IsCustomSynchronousMatch | bool | Indicates if the match is a sync match |
IsSynchronous | bool | Deprecated. Indicates if this match is Sync. Note: please use the IsCustomSynchronousMatch property |
IsTieBreaker | bool | Indicates whether the match is a tie-breaker |
IsVideoAdEntry | bool? | Indicates the match entry was through a video ad |
Name | string | Name of the match |
Players | List<Player> | List of players in the match |
SkillzDifficulty | uint? | The difficulty of the game (used with automatic difficulty). Note: only set in production. |
TemplateID | int? | The unique ID for the tournament template this match is based on |
SKZMatchInfo
Property | Data Type | Description |
---|---|---|
BracketRound | NSNumber | Indicates the round of the bracket tournament if IsBracket is true |
ConnectionInfo | SKZSyncConnectionInfo | The connection info to a Skillz server that coordinates a real-time match. |
Name | NSString | Match name as configured in the Skillz Developer Portal |
EntryCash | NSNumber | Cash entry fee, nil if there is none |
EntryPoints | NSNumber | Z points entry fee, nil if there is none |
ID | NSInteger | The unique ID for the match |
IsBracket | BOOL | Indicates the match is a bracketed tournament |
IsCash | BOOL | Flag indicating cash match |
IsSynchronous | BOOL | Match to be played is a synchronous match, and should use the synchronous game flow |
IsTieBreaker | BOOL | Indicates whether the match is a tie-breaker |
IsVideoAdEntry | BOOL | Indicates the match entry was through a video ad |
MatchDescription | NSString | Match description as configured in the Skillz Developer Portal |
Players | NSArray<SKZPlayer> | Array of SKZPlayers in the match |
TemplateID | NSNumber | The unique ID for the tournament template this match is based on |
SKZMatchInfo
Property | Data Type | Description |
---|---|---|
BracketRound | NSNumber | Indicates the round of the bracket tournament if IsBracket is true |
ConnectionInfo | SKZSyncConnectionInfo | The connection info to a Skillz server that coordinates a real-time match. |
Name | NSString | Match name as configured in the Skillz Developer Portal |
EntryCash | NSNumber | Cash entry fee, nil if there is none |
EntryPoints | NSNumber | Z points entry fee, nil if there is none |
ID | NSInteger | The unique ID for the match |
IsBracket | BOOL | Indicates the match is a bracketed tournament |
IsCash | BOOL | Flag indicating cash match |
IsSynchronous | BOOL | Match to be played is a synchronous match, and should use the synchronous game flow |
IsTieBreaker | BOOL | Indicates whether the match is a tie-breaker |
IsVideoAdEntry | BOOL | Indicates the match entry was through a video ad |
MatchDescription | NSString | Match description as configured in the Skillz Developer Portal |
Players | NSArray<SKZPlayer> | Array of SKZPlayers in the match |
TemplateID | NSNumber | The unique ID for the tournament template this match is based on |
MatchInfo
Property | Data Type | Description |
---|---|---|
BracketRound | int | Indicates the round of the bracket tournament if IsBracket is true |
ConnectionInfo | SyncConnectionInfo | The connection info to a Skillz server that coordinates a real-time match. |
ConnectToken | String | |
Name | String | Name of the match |
EntryCash | float | If this tournament is being played for real cash, this is the amount of cash required to enter. |
EntryPoints | int | If this tournament is being played for Z, this is the amount of Z required to enter. |
ID | String | The unique ID for the match |
IsBracket | boolean | Indicates the match is a bracketed tournament |
IsCash | boolean | Indicates the match is for real prizes or for Z |
IsCustomServerSync | boolean | Indicates if the match is a custom server sync match |
IsSkillzServerSync | boolean | Indicates if the match is a Skillz server sync match |
IsSyncBotMatch | boolean | Indicates if the match is a sync bot match |
IsSynchronous | boolean | Indicates if this is a sync match |
IsTieBreaker | boolean | Indicates whether the match is a tie-breaker |
IsVideoAdEntry | boolean | Indicates the match entry was through a video ad |
MatchDescription | String | The description of this tournament type |
Players | List<SkillzPlayer> | List of players in the match |
SkillzDifficulty | String | The difficulty of the game (used with automatic difficulty). Note: only set in production. |
TemplateID | String | The unique ID for the tournament template this match is based on |
Player Info
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Player
Property | Data Type | Description |
---|---|---|
AvatarURL | string | A link to the user's avatar image |
DisplayName | string | Player name |
FlagURL | string | A link to the user's country's flag image |
ID | ulong? | The ID unique to this user |
IsCurrentPlayer | bool | This Player represents the current user if this is true |
IsNewPayingUser | bool | If true, the player made their first ever deposit with Skillz in any game, and then played their first pro tournament in this game. Can only return true if IsCurrentPlayer is also true. |
TournamentPlayerID | ulong? | A Tournament Player ID unique to this user |
SKZPlayer
Property | Data Type | Description |
---|---|---|
AvatarURL | NSString | Player's profile picture URL |
DisplayName | NSString | Player's display name |
FlagURL | NSString | URL for the flag of the player |
ID | NSString | Player's unique ID |
isCurrentPlayer | bool | Flag for if the player is the current player |
isNewPayingUser | bool | If true, the player made their first ever deposit with Skillz in any game, and then played their first pro tournament in this game. Can only return true if isCurrentPlayer is also true. |
PlayerMatchID | NSString | Player's ID for the match |
SKZPlayer
Property | Data Type | Description |
---|---|---|
AvatarURL | NSString | Player's profile picture URL |
DisplayName | NSString | Player's display name |
FlagURL | NSString | URL for the flag of the player |
ID | NSString | Player's unique ID |
isCurrentPlayer | bool | Flag for if the player is the current player |
isNewPayingUser | bool | If true, the player made their first ever deposit with Skillz in any game, and then played their first pro tournament in this game. Can only return true if isCurrentPlayer is also true. |
PlayerMatchID | NSString | Player's ID for the match |
Player
Property | Data Type | Description |
---|---|---|
AvailableThumbnailURL | String | Returns ThumbnailURL or falls back to AvatarURL |
AvatarURL | String | A link to the user's avatar image |
BestScore | double | User's best score |
CashPrize | double | |
EntryID | String | |
FlagURL | String | A link to the user's country's flag image |
ID | String | |
isAborted | boolean | |
isFinished | boolean | |
isPending | boolean | |
isStarted | boolean | |
isTie | boolean | |
isWinner | boolean | |
MatchID | String | Match ID |
Name | String | User Name |
Outcome | String | |
Position | int | |
ReplayURL | String | |
Score | double | User score |
Shoutout | String | |
State | String | |
TicketzPrize | long | |
ThumbnailURL | String | |
UserID | String | The unique ID for this user |
ZPrize | long |
Progression Metadata
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
ProgressionMetadata
Property | Data Type | Description |
---|---|---|
GameIds | List<string> | List of relevant game IDs for the associated ProgressionValue |
ProgressionMetadata
Property | Data Type | Description |
---|---|---|
GameIds | List<String> | List of relevant game IDs for the associated ProgressionValue |
Progression Value
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
ProgressionValue
Property | Data Type | Description |
---|---|---|
DataType | string | The data type for the stored value |
DisplayName | string | The display name for the stored value |
LastUpdatedTime | DateTime | The timestamp of when the data was last updated on Skillz servers in UTC |
Metadata | ProgressionMetadata | The metadata for this progression value |
Value | string | The stored value for this progression value |
ProgressionValue
Property | Data Type | Description |
---|---|---|
DateCached | Date | The datetime of when the data was last cached |
DateUpdated | Date | The datetime of when the data was last updated on Skillz servers in UTC |
DisplayName | string | The display name for the stored value |
Meta | ProgressionMetadata | The metadata for this progression value |
Value | string | The stored value for this progression value |
ValueType | string | The data type for the stored value |
Skillz Player Info
- Unity/C#
- iOS/Swift
- iOS/Objective-C
- Android/Java
Does not exist in Unity. Use Player Info
Does not exist in Swift. Use Player Info
Does not exist in Objective-C. Use Player Info
SkillzPlayer
Property | Data Type | Description |
---|---|---|
AvatarUrl | String | A link to the user's avatar image |
FlagUrl | String | A link to the user's country's flag image |
isCurrentPlayer | boolean | This SkillzPlayer represents the current user if this is true |
isNewPayingUser | bool | If true, the player made their first ever deposit with Skillz in any game, and then played their first pro tournament in this game. Can only return true if isCurrentPlayer is also true. |
PlayerMatchId | String | A Tournament Player ID unique to this user |
UserId | String | The unique ID for this user |
UserName | String | The displayed player name |