From Mania Tech Wiki
Revision as of 10:59, 12 May 2019 by Maxoufox (talk | contribs) (Added infos about distro)

Jump to: navigation, search

Goal and how to help

One day, eventually, Trackmania will reach his EoL. This is about documenting as much as possible to eventually get the point of having a fully functional custom auth server. If you want to give help, go ahead. Just grab fiddler and start tweaking around with the game.

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"?>

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 for TMNF or TAHOR for TMUF
      • lang lang of the client, as ISO 639-1
    • author
      • login is not set when calling GetConnectionAndGameParams
      • session is not set when calling GetConnectionAndGameParams
    • request
      • name Name of the requested function.
      • param Parameters for the call.
    • auth Optional. Only seen with Disconnect
      • value Looks like an auth ticket.

The server responds with XML, which has obfurscated names:

<?xml version="1.0" encoding="UTF-8"?>
  <e>execution time : 0.0010 s</e>

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


First request sent by client.

Session required? Parameters Response
  • 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
  • a
    • b Full game name (Set to "Trackmania United Forever" for TMNF and TMUF)
    • c Set to "game.trackmaniaforever.com" or "game2.trackmaniaforever.com". Server the client should use to continue talking with the API.
    • d ?. Set to "online_game"
    • e Set to 443. Maybe HTTPS port?
    • f Set to 80. Maybe HTTP port?
    • g Set to "World". Maybe base region?
    • h ?. Set to 1
    • i ?. Set to 1


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

Session required? Parameters Response
  • l Player login.
  • e Set to 1 if login is used, otherwise 0.
  • p ?. Set to 0.


Used to make the server send a password recovery email.

Session required? Parameters Response
  • login Player login

Empty response


Used to disconnect (Duh).

Session required? Parameters Response

Empty parameters

Empty response