Changes

Jump to navigation Jump to search
34 bytes added ,  16:55, 13 May 2019
spelling & fmtg fixes
Line 1: Line 1:  
== Goal and how to help ==
 
== 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 authentication server. If you want to give help, go ahead. Just grab fiddler and start tweaking around with the game. You can check what has already been done on the [[Web_APIs/Progress|Progress]] page.
+
One day, eventually, TrackMania will reach its EoL. This is about documenting as much as possible to eventually get the point of having a fully functional custom authentication server. If you want to give help, go ahead. Just grab fiddler and start tweaking around with the game. You can check what has already been done on the [[Web_APIs/Progress|Progress]] page.
    
== Basic concepts ==
 
== Basic concepts ==
Line 42: Line 42:  
* '''root'''
 
* '''root'''
 
** '''game'''
 
** '''game'''
*** '''name''' the client you are using. Known values: TmForever
+
*** '''name''' The client you are using. Known values: TmForever
*** '''version''' Version of the client
+
*** '''version''' Version of the client.
*** '''distro''' Unknown. Set to MOLUX for TMNF or TAHOR for TMUF
+
*** '''distro''' Unknown. Set to MOLUX for TMNF or TAHOR for TMUF.
*** '''lang''' lang of the client, as ISO 639-1
+
*** '''lang''' Language of the client, as ISO 639-1.
** '''author''' ''See [[#Author]]''
+
** '''author''' ''See [[#Author]]''.
 
** '''request'''
 
** '''request'''
 
*** '''name''' Name of the requested function.
 
*** '''name''' Name of the requested function.
 
*** '''param''' Parameters for the call.
 
*** '''param''' Parameters for the call.
** '''auth''' ''Optional. Only seen on Connect and Disconnect''
+
** '''auth''' ''Optional. Only seen on Connect and Disconnect''.
 
*** '''value''' Looks like an auth ticket.
 
*** '''value''' Looks like an auth ticket.
   Line 72: Line 72:  
<pre>
 
<pre>
 
<login>the user's name</login>
 
<login>the user's name</login>
<session>the sessions' id</session>
+
<session>the session's id</session>
 
</pre>
 
</pre>
 
</li>
 
</li>
Line 95: Line 95:  
* '''r'''
 
* '''r'''
 
** '''r'''
 
** '''r'''
*** '''n''' The name of the called function
+
*** '''n''' The name of the called function.
*** '''c''' The returned data
+
*** '''c''' The returned data.
 
** '''e''' A string giving the execution time.
 
** '''e''' A string giving the execution time.
   Line 111: Line 111:  
  |
 
  |
 
* '''dedicated''' Set to 0 with TMF. Purpose is unknown. Maybe for servers.
 
* '''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
+
* '''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
+
* '''upload''' Max P2P upload speed, as set in game config, in B/s.
 
  |
 
  |
* '''a''' Same as '''a''' from [[#RedirectOnMasterServer]]
+
* '''a''' Same as '''a''' from [[#RedirectOnMasterServer]].
 
  |}
 
  |}
   Line 141: Line 141:  
  | No (Empty)
 
  | No (Empty)
 
  |
 
  |
* '''login''' Player login
+
* '''login''' Player login.
 
  |
 
  |
 
''Empty response''
 
''Empty response''
Line 161: Line 161:     
=== GetLeagues ===
 
=== GetLeagues ===
''Used to get regions list''
+
''Used to get regions list.''
 
{|class="wikitable"
 
{|class="wikitable"
 
  ! Session required?
 
  ! Session required?
Line 172: Line 172:  
  |
 
  |
 
* '''l''' ''Multiple of them, one per region''
 
* '''l''' ''Multiple of them, one per region''
** '''a''' Region name
+
** '''a''' Region name.
** '''b''' Parent regions (Separated with "|", eg. "France|Alsace")
+
** '''b''' Parent regions (separated with "|", eg. "France|Alsace").
** '''i''' An url pointing to the region's flag (dds).
+
** '''i''' An URL pointing to the region's flag (dds).
 
  |}
 
  |}
    
=== OpenSession ===
 
=== OpenSession ===
''Used to open a session''
+
''Used to open a session.''
 
{|class="wikitable"
 
{|class="wikitable"
 
  ! Session required?
 
  ! Session required?
Line 188: Line 188:  
* '''cr''' 8 characters random hex value.
 
* '''cr''' 8 characters random hex value.
 
  |
 
  |
* '''i''' Session ID
+
* '''i''' Session ID.
* '''s''' ?. Seems Hexadecimal
+
* '''s''' ?. Seems Hexadecimal.
 
* '''k''' ?. Base64 encoded.
 
* '''k''' ?. Base64 encoded.
 
  |}
 
  |}
Line 202: Line 202:  
  | No (Set to 1)
 
  | No (Set to 1)
 
  |
 
  |
* '''pw''' password for the account
+
* '''pw''' Password for the account.
 
* '''ik''' ?. Seems caps hexadecimal.
 
* '''ik''' ?. Seems caps hexadecimal.
* '''email''' supplied email
+
* '''email''' Supplied email.
 
* '''cp''' ?. Empty
 
* '''cp''' ?. Empty
* '''np''' Region
+
* '''np''' Region.
* '''an''' If the user accepts to receive naedo news on his email address
+
* '''an''' If the user accepts to receive Nadeo news on his email address.
 
  |
 
  |
* '''s''' Game key associated with the account
+
* '''s''' Game key associated with the account.
 
  |}
 
  |}
    
== RedirectOnMasterServer ==
 
== RedirectOnMasterServer ==
   −
This response happens sometimes. It tells the client to switch auth server. When recieved, the client sends same request it just send, but to the other server specified.
+
This response happens sometimes. It tells the client to switch auth server. When received, the client sends same request it just sent, but to the other server specified.
    
Here is a description of the response:
 
Here is a description of the response:
    
* '''a'''
 
* '''a'''
** '''b''' Name of the game
+
** '''b''' Name of the game.
** '''c''' New server address to use
+
** '''c''' New server address to use.
** '''d''' Endpoint (generally online_game)
+
** '''d''' Endpoint (generally online_game).
** '''e''' HTTPS port
+
** '''e''' HTTPS port.
** '''f''' HTTP port
+
** '''f''' HTTP port.
** '''g''' Base region (World)
+
** '''g''' Base region (World).
 
** '''h''' ?. Set to 1
 
** '''h''' ?. Set to 1
 
** '''i''' ?. Set to 1
 
** '''i''' ?. Set to 1
** '''j''' (Maybe) List of authorized/available remote methods (described below), or permissions
+
** '''j''' (Maybe) List of authorized/available remote methods (described below), or permissions.
*** '''k''' one remote call ''(multiple of them in the j tag)''
+
*** '''k''' One remote call ''(multiple of them in the j tag)''
**** '''l''' Method/Permission name
+
**** '''l''' Method/Permission name.
**** '''q''' Might be if authorized/available or not (Seems always 1).
+
**** '''q''' Might be if authorized/available or not (seems always 1).
    
Here is a list of the methods that have been seen in '''k''':
 
Here is a list of the methods that have been seen in '''k''':

Navigation menu