User Tools

Site Tools


en:games:star_trek_-_voyager_elite_force:master_servers

EF 1 Master Servers

EF 1 utilizes so-called master servers, that are used to find game servers on the internet. Game servers announce their existence to these master servers, while game clients query these master servers for game servers they know. This allows for a convenient way of finding game servers on the internet.

The Elite Force master server is automatically notified of newly accessible Internet servers as soon as they start. But only if the server mode is set to Internet, e.g. via +set dedicated 2 when starting the server on the console. With +set dedicated 1 the server is started, but not announced. Clients download the known game server addresses from the master server. In the config files of the client (hmconfig.cfg) and server (depending on the name you just gave them), the master servers to be used are set via seta sv_master1 "blah" to sv_master5…. This works for all versions of EF. A list of currently available servers is also available via https://efservers.com/.

This project apparently makes it possible to set up a master server (untested!): https://github.com/GSIO01/efmaster.

https://github.com/7Saturn/ef_master_server/releases however, is tested, but at the moment (2022-10) only works for IPv4 connections.

Current Master Servers

Here is a list of the currently running master servers of the community:

  • master.stef1.ravensoft.com (2021-09-26), IP 12.206.251.141, standard master server of EF, keep that one in your config(!),
  • master.stvef.org (2021-09-26), IP 74.91.116.133,
  • efmaster.tjps.eu (2021-09-26), IP 176.9.53.212,
  • master.stef1.daggolin.de (2021-09-26), IP 51.75.78.236 and
  • ipv6.tjps.eu (2021-09-26), IP 2a01:4f8:150:73c1::3).

These should be entered in both, the server and client configs. To set up your own master server, this project could be helpful. But under Debian Stretch x64 the code does not compile, apparently because of a problem that was already known in 2007. The default port for this is 27953 UDP. Alternatively, this project could be usable for EF. In order to check whether a master server is at all responsive/available, it may be helpful to use Qstat. The command is then qstat -efm <server name or IP>.

Former Master Servers

  • master.gamespy.com:27900 and
  • efmaster.kickchat.com (2021-09-26), former IP 176.9.53.212.
  • thilo.kickchat.com:27953

The Gamespy server no longer exists after the shutdown of the network. However, it should never have worked for EF in-game because of the problem described in the Master Server Query Bug section.

Master Server Query Bug

In the original Eliteforce game up to and including version 1.2 there is a bug which allows to announce a dedicated server so a master server with an arbitrary port number. For example, a game server can be made known via the default master server master.gamespy.com:27900. This advertisement does actually work, if the master server is indeed listening on that port. However, the clients with version 1.2 or older cannot reach the corresponding master server for querying at all, because they always try to do so on port 27953, no matter what is written in the config file. Therefore it is also advisable to configure master servers, which should (also) list EF servers, to listen on port 27953. Newer versions based on ioQuake3 are not affected by this problem and can also reach the 1.2 servers that have made themselves available via a master server listening on a different port.

Technical Concept of the Master Server

In principle, the concept of the master server is quite simple: a dedicated server accepts requests as to which game servers it knows. This list is then returned to the requesting client. This is what happens if you use the entries “Internet 1” to “Internet 5” in the server search.

On the other hand, the master server must first know about the existence of a game server (listen and LAN servers are not listed, only Internet servers, which is configured in the settings of a server by the variable definition dedicated = 2). To do this, a game server with the appropriate settings reports to the master server via a so-called “heartbeat”. This contains only the information “Huhu, here I am, please add me to your list”. But the master only accepts servers that are actually reachable. He checks this by checking the status of the server that is currently reporting after a message like this (provides the number of players, version, etc…). If he does not receive an answer, he does not record the server. This must be taken into account, for example, when operating a server behind a firewall or NAT. If the server port is closed, the master server does not reach it, so it will not appear in the list.

Strictly speaking, only the servers that correspond to the version of the requester are reported back, possibly restricted to not full and/or not empty servers. Ultimately, the concept is very simple and has some minor vulnerabilities. For instance, the protocol (just like the game protocol) is based on UDP. This means that if a request or response is lost during transmission, no one will notice. This can also mean everything is completely OK at both ends, but you still don't get a server listed as a client. How exactly this works technically is described in the article Star Trek: Voyager Elite Force Master Server Protocol.

Star Trek: Voyager Elite Force

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
en/games/star_trek_-_voyager_elite_force/master_servers.txt · Last modified: 2023-02-08-13-32 by 7saturn

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki