Server

Contact(ENG,GER): unrealmarketplace@virtualbird.de

You can download the server app here: UnrealHostPluginServerApp.zip.
You can find the password for the zip in the plugin directory. Example: C:\Unreal Engine\UE_5.2\Engine\Plugins\Marketplace\UnrealHostPlugin\Source\UnrealHostPlugin\UnrealHostPlugin.Build.cs
Unfortunately Epic did not allow to put the server app into the plugin directory.

Software requirements

The server app was developed for the Apache Tomcat web server in version 10 and Java in version OpenJDK 19.
The app will probably work on older versions, but I recommend the above versions as a minimum.
For productive use, I also recommend an Apache2 web server that handles SSL encryption.
There are many good instructions on the Internet for installing this combination. Search for "apache2 tomcat mod_jk".
Some server providers also allow installation via a UI.

Hardware requirements

That is difficult to say. I use a cheap VServer (2€/month) for the demo. RAM is most important. The more users, the more RAM you should give Tomcat. CPU is not so important as no complex calculations are performed. But again, it all depends on the number of users.

Server Configuration

You can assign RAM to the Tomcat web server. For example, a minimum of 256MB and a maximum of 512MB with -Xms256M -Xmx512M. See Internet "tomcat xms".
More information about configuring the Tomcat can be found in much better form on the internet than I could write here.

App installation and configuration

Start your Tomcat and copy the UnrealHostPlugin.war file into the webapps directory of your Tomcat.
Now you have to wait until Tomcat unpacks the .war. A .war file is basically just a .zip file. It should look something like this.


The name of the war file determines the part of the URL on your server. I recommend renaming the file. The name is also important for the communication between Apache2 and Tomcat.
If you have the domain www.gamescompany.com and you rename the file to shooter.war the URL will be: www.gamescompany.com/shooter

Open the web.xml file to configure the app.




serverIPv6: Enter the IPv6 of your server here.
serverIPv4: Enter the IPv4 of your server here.
authtoken: This is a kind of password. Every http request to this app must have this token in the header. Otherwise the request will be rejected. Please take it seriously and don't enter 12345 or some such nonsense.

portMin and portMax: Ports in this range must be opened on the server (firewall).
Every player that creates a host needs its own TCP port. This remains open until the host has been closed.
If you make 1000 ports available, a maximum of 1000 hosts can be created. For UDP, one port is required for each P2P connection.
After the connection between the two clients has been established, the UDP server is closed and the port is free again.
However, if no P2P connection is established and the data has to be redirected via the server, the UDP remains occupied.
Example for a host with 5 clients: 1 TCP port and 0 - 5 UDP ports are therefore occupied.

TCPMaxClientQueue: Specifies how long the TCP queue can be when establishing a connection. 50 = 50 TCP connections can be established simultaneously. As it only takes milliseconds to establish a connection, this value only needs to be adjusted in very rare cases.

TokenLength: Players must enter a token (a kind of password) to join a host. Just like in the game Among Us. The token is a randomly generated string consisting of letters and numbers. It must be unique. The length can be determined here. The shorter it is, the easier it is for players to remember, but the less likely it is that a unique token can be created if there are a large number of hosts at the same time.

UDPDataEncryption: Activates the AES encryption. All Unreal UDP data packets are encrypted as soon as you join a game. The key is created on the server individually for each host. Can increase the CPU load of the game. No effect on the server.

log: Should only be activated for development purposes. This causes a lot of information to be written to the Tomcat logs. This includes IP addresses, which requires user permission in the EU. Increases the CPU load on the server.


After you have made the settings, you must restart Tomcat so that they are applied. After the restart, check the Tomcat logs (catalinua.out) to see if the IP addresses have been adopted.
You should see something like this:

************************* Starting Unreal Host Plugin! Version 1.0 *************************
IPv6: 2a00:12d8:700e:0000:c74a:da43:586b:6af1
IPv4: 5.230.75.46