The server receive thread needs to push the user it was received from up the chain 1. Allow the server to setup a server name Done 2. Allow the client to setup a user name Done 3. When a user connects add them to the Connections dictionary with a GUID. Done 4. Have the client send the server a welcome packet Done 5. Have the server use the welcome packet to fillout the user information on the server Done 6. Send the server the heartbeat location update every 5 seconds Done 7. Respond to the client with a server list of UDPEndpoints and heartbeat locations Done 8. Each client can figure out what connections it needs to make or drop via the list Done 10. When the TCP connection drops update the heartbeat list so all the clients remove the connection Done 11. Build a network cache table on the clients so obj's only send updates and not repeat packets 12. User joined and left events are not implimented Set the network bubble distance [ render distance ] on the server and pass to the clients Send a packet back to the client for if the lobby is full, notify them of why the connection failed Test that the datapacket is formatted correctly. The packet size might be off from the actual packet size 1. If the TCP connection closes not started Disconnect the user and tell all clients that the user is gone not started