Joining
Joining is the process of establishing a connection between two peers. It is a critical part of the protocol, as it is the only way to verify that the peer you are connected to is the peer you intended to connect to. It is also the only way to verify that the peer you are connected to is running the correct version of the protocol.
Joining packets range from packet ID 0
-> 13
.
Packets
In the joining sequence, the following packets are used:
- 01 - Hello
- 02 - Server Info
- 03 - Request Passphrase
- 04 - Respond Passphrase
- 05 - Client Accepted
- 06 - File Checksums
- 07 - Checksums Accepted
- 08 - Checksums Denied
- 09 - Character Info
- 10 - Join Confirmation
- 13 - Generic Initialization Data
Joining Sequence
The joining sequence depends on the Multiplayer
setting of the server.
Public
Friends Only
If friended:
If un-friended:
Friends of Friends - WIP
If friended:
If passphrase is valid:
If passphrase is invalid:
Todo
Private
Troubleshooting
Stuck after Receiving initialization data...
If you are stuck in the loading screen and the last line printed to the console is Join request accepted
, verify that the server sends all blob data listed in the 2 - Server Info packet.
Stuck after Join request accepted
If you are stuck in the loading screen and the last line printed to the console is Join request accepted
, it is likely that the server has not created a character for you.
Missing name tags for player characters
If the character is created properly, but the name tag is missing, verify the server sends the 22 - Network Update packet at least one tick after the 13 - Generic Initialization Data packet. If these packets are sent in the same tick, the name tag will not be displayed.