Difference between revisions of "Web API"
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| m (Added page to Specifications category) |  (Added GetConnectionAndGameParams  params) | ||
| Line 44: | Line 44: | ||
| ** request: | ** request: | ||
| *** name: Name of the requested function. | *** name: Name of the requested function. | ||
| − | ***  | + | *** param: Parameters for the call. | 
| + | |||
| + | The server responds with XML, which has obfurscated names: | ||
| + | |||
| + | <pre> | ||
| + | <?xml version="1.0" encoding="UTF-8"?> | ||
| + | <r> | ||
| + |   <r> | ||
| + |     <n>[...]</n> | ||
| + |     <c> | ||
| + |       [...] | ||
| + |     </c> | ||
| + |   </r> | ||
| + |   <e>execution time : 0.0010 s</e> | ||
| + | </r> | ||
| + | </pre> | ||
| + | |||
| + | 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 P?2P upload speed, same as download. | ||
| + | |||
| + | ==== Response ==== | ||
Revision as of 19:51, 11 May 2019
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"?>
<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.
 
 
- game
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.
 
- r
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 P?2P upload speed, same as download.