From Mania Tech Wiki
Revision as of 19:51, 11 May 2019 by Maxoufox (talk | contribs) (Added GetConnectionAndGameParams params)

Jump to: navigation, search

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 http://game.trackmaniaforever.com/online_game/request.php 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
      • 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"?>
  <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



  • 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 P?2P upload speed, same as download.