Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
A master server is VERY DIFFERENT than a standard LMP Server!
LMP uses a system called "Nat punchthrough" in order to connect clients and servers. This system allows people to host LMP games and become a server without having to open specific ports in their routers.
Basically the standard LMP servers anounce themselves to a master server at a minimum interval of 5 seconds and clients ask that master server what LMP servers are available.
Once a client choose a LMP server, the master server introduce each other so they are connected. After they are introduced the master server leaves and data flows directly between client and the LMP server.
The master server needs to have an open port (default is 8700 UDP) as otherwise it would not be possible to query or register servers against it.
This file in the repo hold a list of all the master servers currently available.
It would be nice to have at least 5 servers as it will allow full-time support in case a master server is down, but to do that we need people that can have a computer turned on 24h and with an specific port open.
If you are willing to contribute as a master server please let me know either by opening an issue o by a push request to that file so I can list you and the clients can query your computer.
If you are not listed in that file your master server will not be seen and will have no use!
Also, a master server can respond to GET requests on a given TCP port (default is 8701 TCP) and return the servers in a HTML page: Example: http://yourip:8701 In order to get them as a JSON, you can retrieve them at: http://yourip:8701/json
By default the Master server will try to open both UDP and TCP ports using UPnP but if your router does not support it you will have to open them manually.
Bear in mind that master servers are version dependant, so only clients and servers at the same version will work. Therefore if you want to run a master server and keep it updated with the latest nightly version use the parameter
/nightly. Otherwise the master server should update automatically once a new github release is available and run the latest stable version.