Home docs nex protocols ranking Ranking - Legacy (112)
Post

Ranking - Legacy (112)

This protocol is the old version of the Ranking protocol. It was rewritten on NEX 3.0.0.

All methods include a Sint16 on the response, possibly being used as a result code but this isn’t certain. A method will always give the same value on this field, but this value may be different between methods.

Scores are stored as a List<Uint32> for assigning multiple scores to a RankingData. All scores must contain 2 elements, even if the game doesn’t use the second value.

In NEX 1, the category is represented as a List<Uint16>, but the server will only accept having a single value on the list.

The common data is used in games to display user information on the ranking. Its value is game-specific on NEX 2, but on NEX 1 this must be an always-allocated 0x14-byte buffer which stores the player’s name in UTF-16. If a user doesn’t have common data or it has been deleted, any methods that query it will give an empty buffer, still allocated on NEX 1.

In some cases, when using a unique ID that doesn’t exist on a method that requires it, the server will give error 0x00670004.

Extended Protocols

The following games have additional methods in the legacy ranking protocol:

Methods

(1) UploadScore

Request

TypeDescription
Uint32Unique ID
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category
List<Uint32>Scores
Uint8Unknown (1)
Uint32Unknown (2)

Response

TypeDescription
Sint16Result code (50)

(2) UploadScores

Request

TypeDescription
Uint32Unique ID
List<RankingScore>Scores

Response

TypeDescription
Sint16Result code (50)

(3) DeleteScore

Request

TypeDescription
Uint32Unique ID
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category

Response

TypeDescription
Sint16Result code (50)

(4) DeleteAllScore

Request

TypeDescription
Uint32Unique ID

Response

TypeDescription
Sint16Result code (100)

(5) UploadCommonData

Request

TypeDescription
Uint32Unique ID
BufferCommon data

Response

TypeDescription
Sint16Result code (50)

(6) DeleteCommonData

Request

TypeDescription
Uint32Unique ID

Response

TypeDescription
Sint16Result code (50)

(7) UnknownMethod0x7

This method requires ownership of the unique ID, and having scores in the given category. In NEX 1, the server will return Ranking::RegistrationError if the user doesn’t have scores in the given category. In NEX 2, Ranking::NotFound is returned instead.

Request

TypeDescription
Uint32Unique ID
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category

Response

TypeDescription
Sint16Result code (50)

(8) UnknownMethod0x8

This method requires ownership of the unique ID.

Request

TypeDescription
Uint32Unique ID

Response

TypeDescription
Sint16Result code (100)

(9) UnknownMethod0x9

Request

TypeDescription
Uint32Unknown (1)
Uint32Unknown (2)
List<Uint32>Unknown (3)
List<Uint8>Unknown (4)

Response

The response format of this method is unknown.

(10) GetTopScore

Request

TypeDescription
Uint32Unique ID
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category

Response

TypeDescription
Sint16Result code (20)
List<Uint32>Scores

(11) GetCommonData

Request

TypeDescription
Uint32Unique ID

Response

TypeDescription
Sint16Result code (20)
BufferCommon data

(12) UnknownMethod0xC

Request

TypeDescription
Uint32Unique ID
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category

Response

TypeDescription
Sint16Result code (20)
Uint8Unknown

(13) UnknownMethod0xD

Request

TypeDescription
Uint32Unique ID
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category
Uint8Unknown (1)
Uint8Unknown (2)

Response

TypeDescription
Sint16Result code (20)
Uint32Unknown

(14) UnknownMethod0xE

Request

TypeDescription
Uint8Ranking mode
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category
Uint8Score index to order by
Uint80: Lowest score, 1: Highest score
Uint8Rank calculation
Uint8Unknown (1)
Uint8Unknown (2)
Uint8Unknown (3)
Uint32Unknown (4)
Uint32Offset
Uint8Length

Response

TypeDescription
Sint16Result code (30)
List<RankingData>Rank data list

(15) UnknownMethod0xF

Request

TypeDescription
Uint32Unique ID
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category
Uint8Score index to sort by
Uint80: Lowest score, 1: Highest score
Uint8Rank calculation
Uint8Unknown (1)
Uint8Unknown (2)
Uint8Unknown (3)
Uint32Unknown (4)
Uint8Length

Response

TypeDescription
Sint16Result code (30)
List<RankingData>Rank data list

(16) GetTotal

Request

TypeDescription
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category
Uint8Unknown (1)
Uint8Unknown (2)
Uint8Unknown (3)
Uint32Unknown (4)

Response

TypeDescription
Sint16Result code (30)
Uint32Total count

(17) UploadScoreWithLimit

It is unknown how the limit affects the score.

Request

TypeDescription
Uint32Unique ID
Uint32Category
List<Uint32>Scores
Uint8Unknown (1)
Uint32Unknown (2)
Uint16Limit

Response

TypeDescription
Sint16Result code (50)

(18) UploadScoresWithLimit

Request

TypeDescription
Uint32Unique ID
List<RankingScoreWithLimit>Scores

Response

TypeDescription
Sint16Result code (50)

(19) UnknownMethod0x13

Request

TypeDescription
Uint32Unknown (1)
Uint32Unknown (2)
List<Uint32>Unknown (3)
List<Uint8>Unknown (4)

Response

The response format of this method is unknown.

Types

RankingData (Structure)

TypeDescription
Uint32Unique ID
PIDPID
Uint32Order
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category
List<Uint32>Scores
Uint8Unknown (1)
Uint32Unknown (2)
BufferCommon data

RankingScore (Structure)

TypeDescription
List<Uint16> (NEX 1) or Uint32 (NEX 2)Category
List<Uint32>Scores
Uint8Unknown (1)
Uint32Unknown (2)

RankingScoreWithLimit (Structure)

TypeDescription
Uint32Category
List<Uint32>Scores
Uint8Unknown (1)
Uint32Unknown (2)
Uint16Limit
Contents