Web API

From Mania Tech Wiki
Revision as of 09:22, 12 May 2019 by Maxoufox (talk | contribs) (Fixed upload speed.)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Basic concepts

TrackMania uses a XML-RPC-like API to authenticate players, load server lists, load rankings, etc... Here is some documentation about what has been reversed engineered. A lot is still left to be documented.

The game sends unencrypted POST requests to

to communicate with the API.

It sets two headers: User-Agent: GameBox and Accept: */*, and uses the following format as request body :

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <game>
    <name>TmForever</name>
    <version>2.11.16</version>
    <distro>MOLUX</distro>
    <lang>fr</lang>
  </game>
  <author>
    <login/>
    <session/>
  </author>
  <request>
    <name>[...]</name>
    <params>
      [...]
    </params>
  </request>
</root>

Here is a description of the parameters :

  • root
    • game
      • name: the client you are using. Known values: TmForever
      • version: Version of the client
      • distro: Unknown. Set to MOLUX
      • lang: lang of the client, as ISO 639-1
    • author
      • login: is not set when calling GetConnectionAndGameParams
      • session: obtained by calling GetConnectionAndGameParams. Unset when calling that function.
    • request:
      • name: Name of the requested function.
      • param: Parameters for the call.

The server responds with XML, which has obfurscated names:

<?xml version="1.0" encoding="UTF-8"?>
<r>
  <r>
    <n>[...]</n>
    <c>
      [...]
    </c>
  </r>
  <e>execution time : 0.0010 s</e>
</r>

Here is a description of the return:

  • r
    • r
      • n: The name of the called function
      • c: The return data
    • e: A string giving the execution time.

Functions calls

GetConnectionAndGameParams

Parameters

  • dedicated
Set to 0 with TMF. Purpose is unknown. Maybe for servers.
  • download
Max P2P download speed, as set in game config, in B/s
  • upload
Max P2P upload speed, as set in game config, in B/s

Response

  • a
    • b : Full game name (Set to "Trackmania United Forever for TMNF and TMUF)
    • c : Set to "game.trackmaniaforever.com". Purpose is unknown.
    • d : ?. Set to "online_game"
    • e : ?. Set to 443
    • f : ?. Set to 80
    • g : Set to "World". Maybe base region?
    • h : ?. Set to 1
    • i : ?. Set to 1

CheckLogin

Used to check if login is already used for account creation.

Parameters

  • l
Player login.

Response

  • e
Set to 1 if login is used, otherwise 0.
  • p
?. Set to 0.