This is how much I currently know:
 Name and other data
 U.S.G.N. verification
 Transfer List
 
 connect
 Spray transfer
 
 joinI would be grateful if anyone can assist me in completing the list.
 
 General 
 Join Process Tasks
 Join Process Tasks
 
 1 
 
 Name and other data
 U.S.G.N. verification
 Transfer List
 
 connect
 Spray transfer
 
 join
 name; <type_$>
 ip; <type_i>
 port; <type_s>
 usgnid; <type_l>
 usgnname; <type_$>
 usgncountry; <type_$>
 usgnmode; <type_i>
 steamid; <type_l>
 steamname; <type_$>
 steamcountry;<type_$>
 steamos; <type_i>
 send/receive/check auth code stuff (a poor verification that it's a real client)
 send basic data (name, pw, cl version, USGN, Steam, some settings, ...). This is also the step where joining players are declined by the server e.g. because there's no space or the password is missing/wrong
 optional: U.S.G.N. login verification
 map checksum check and optional map- & file transfer
 post file transfer checks, send additional data (server settings and all other server data e.g. dynamic objects, projectiles, hostages, spraylogos etc.), invoke 
 connect hook
 when client confirms that the map was loaded and all data was received: invoke 
 join hook
 connect is only executed with the very last step (when all data is sent or better: scheduled to be sent).
 join hook is called directly after the 
 connect hook. The only difference is that the player then already confirmed that it received all data and loaded the map. In real world scenarios there shouldn't be much time between the invocation of both hooks because both are invoked only after file transfers (which take the most time when joining a server). If the client is slow however and takes long to load the server data and/or the map there might be a bigger delay.
 connect_attempt hook?
  
 
 1 
 