
How to add dedicated servers to Unreal multiplayer games
For developers seeking dedicate ("authoritative") server solutions, EOS recommends to be integrated with third-party services like Edgegap.
-> This article is based on Getting Started documentation. If you encounter issues or discrepancies, please make sure to refer to the original guide, as they are more frequently kept up to date.
0. Preparation
In Unreal Engine: Get access to Unreal Engine source code on Github.
In Unreal Engine: Set up Visual Studio
Choose your build method:
Either download ⚡ Edgegap Integration Kit by Betide Studio and Unreal Engine source code,
or download ⚡ Dedicated Servers Quickstart Plugin and Unreal Engine source code,
make sure to read 📦 Building from Containers (community guide) - Unreal Engine source not required.
Confident in your server builds? Skip to ✏️ Customize Server Image and Advanced Features.
Deploy Your First Dedicated Server on Edgegap
By the end of this guide, you will have deployed a dedicated server with Edgegap at no cost.
1. Connect your Edgegap Account
☑️ To get started, we’ll need you to create a free account with Edgegap. No credit card required.
☑️ Once you’re signed in, create an Edgegap API token to connect your plugin.
✅ You may now proceed to the next step.
2. Configure Game Server Builds
Whether you’re using a Windows, Mac, or a Linux machine, you will need to build your server for Linux runtime, as most cloud providers nowadays (including Edgegap) run on Linux. Don’t worry, no Linux knowledge is required to accomplish this with our plugin.
☑️ Build your Unreal Engine version from source on your development machine,
install specific release branch (e.g. 5.5
) to build on a stable foundation,
use Solid State Drive (SSD) to speed up builds (from ~12+ hours to ~2+ hours),
this is only required the first time and every time you upgrade your Unreal Engine version.
Download branch with a git client! Using github UI will always download the unstable
release
branch.
☑️ Install Unreal Cross-Compiling Toolchain to build game servers for Linux.
☑️ Restart your development machine, otherwise you’ll run into errors later on!
☑️ Disable Unreal Engine version compatibility check for dedicated servers by adding this to your DefaultEngine.ini
:
[ConsoleVariables]
net.IgnoreNetworkChecksumMismatch=1
net.CurrentHandshakeVersion=2
net.MinHandshakeVersion=2
net.VerifyNetSessionID=0
net.VerifyNetClientID=0
☑️ Verify your server is using OnlineSubsystemUtils.IpNetDriver
as the default driver or the fallback driver in DefaultEngine.ini
.
☑️ Restart Unreal Engine to reload latest changes.
☑️ Create a dedicated server target script by copying your <PROJECT>Editor.Target.cs
file in project root folder and renaming the copy to <PROJECT>Server.Target.cs
.
☑️ Replace any references to word Editor
with Server
in your server target script.
When using Lyra Starter Game sample, make sure to duplicate and rename your LyraGameEOS.Target.cs
file and the containing class name to match your project name.
☑️ Enable standard output server logs by adding overrides in your server target script:
Copy
☑️ To reduce server egress and resource usage, set MaxNetTickRate and NetServerMaxTickRate in [/Script/OnlineSubsystemUtils.IpNetDriver]
and rebuild:
Copy
✅ You may now proceed to the next step.
3. Build and Upload to Edgegap
Working in a team of developers means sharing your code. When things go wrong, the last thing you want to hear is “it works on my machine”. Game servers have to run reliably on any machine, since a successful games’ servers will run on thousands of server machines across the world.
To help make your server reliable, we use Docker - virtualization software to ensuring that all of your server code dependencies down to the operating system level are going to be always exactly the same, no matter how or where the server is launched.
☑️ Verify that Docker is installed and running.
☑️ Rebuild our plugin for your custom Unreal Engine version built from source.
☑️ Copy compiled plugin to your Plugins
folder in the root of your Unreal project (not engine).
☑️ Launch your new Unreal Engine from Visual Studio and open toolbar item Edit / Plugins.
☑️ Enable our plugin in section INSTALLED / Other.
☑️ Configure our plugin by opening toolbar item Edit / Project Settings / Edgegap:
Always press enter after editing input values to ensure they are saved correctly.
API Token is needed to upload your server to Edgegap, get one by clicking Get Token.
Application name on Edgegap can match your project name or be customized, make sure to only use lowercase letters, numbers, or characters dash
-
and underscore_
.Image Path provides optionally a custom icon for your game server on Edgegap, skip for now.
Version name is useful for tracking client/server compatibility and rolling back in case of issues.Timestamps are a great option for app version names, e.g.
2024.01.30-16.50.20-UTC
.Multiple application versions may point to the same image tag, such asv1.1.0
anddev
.Learn more about Apps and Versions later.
Do not reuse
latest
version to prevent our system from deploying outdated (cached) image.
☑️ Click Create Application. Completing this step will result in a new application appearing in Edgegap Dashboard.
☑️ Skip custom container registry settings for now, you can use third party registry later if you’d like.
☑️ Once you’re happy with your configuration hit Build and Push, wait for the process to finish and verify there are no new errors in your Unreal console. Completing this step will result in a new folder appearing in your project root - Saved/LinuxServer
. In addition, a new image appears now in your Edgegap Container Registry dashboard page underneath your Repository, and a new 🏷️ App Versions appears in your dashboard underneath your Application.
✅ You may now proceed to the next step.
4. Deploy a Server on Edgegap
This is the final step in this guide, after which you will have a server deployed on Edgegap cloud, to which players from anywhere in the world can connect.
☑️ Open deployments dashboard page and click Create Deployment.
☑️ You may select the following (or keep defaults):
Application on Edgegap from the previous step.
Application version on Edgegap from the previous step.
Number of random players emulating several players trying to play together.
Player region to emulate matchmaking in a specific region,3 regions offered for testing in dashboard for simplicity, 615+ regions available with API,learn about Deployments and Matchmaking later.
☑️ Once you’re ready, hit Deploy to cloud, wait to reach #3-deployment-ready. Ensure that your Container Logs don’t show any errors and your Container Metrics don’t indicate 100% resource utilization (vCPU or memory), otherwise new player connections may be rejected, or your server stuck in a restart loop. See troubleshooting steps below to address any issues.
☑️ Completing this step will result in a new Deployment being started on your Edgegap account. Find your new deployment’s details in our dashboard.
☑️ Now we’ll perform the final test and connect your Unreal Engine game client to your cloud deployment. Grab your Deployment’s Host in place of server IP and the Deployment’s external port, open Unreal console in game client (tilde ~
) and type open {host}:{port}
.

The external port of your Deployment on Edgegap cloud will be chosen at random, so that a potential attacker (hacker) is slowed down and detected before they can cause damage.
Disable VPN when testing for more realistic conditions and receive a low-latency deployment.
☑️ Once you verify you’re able to connect to your Deployment without issues and are done testing, Stop your Deployment to free up capacity in your account for the next build. In case you encounter issues, inspect Dashboard logs of your deployment. If you can’t figure out the issue, we’re hanging out in our Community Discord and happy to help.
🙌 Congratulations on your first Deployment on Edgegap! If you’d like to learn more, keep reading. Make sure to check our matchmaking to group players ahead of deploying a game server.
Written by
the Edgegap team
Sources and/or content collaboration with
Epic Online Services