Dedicated Server Management/Monitor Tool

For lack of understanding how dedicated servers are intended to be managed, I ended up making my own system to manage instances almost entirely from blueprints. It’s all very specific to my project but the basic principles could work for others.

Assuming you’ve packaged your game and built your standalone dedicated server. I made a custom blueprint node that launches a new dedicated server on a new port using FCreateProcess. The first server started on port 7777 acts as the master server and all clients initially join it. Master server maintains a list of players and their requested game settings. It periodically scans the players list and if enough players with similar settings are found for a game, it launches a new instance of the dedicated server on a game map. Master server tells clients to open the new port and map. The new server knows it’s a game server and loads an array of expected players and settings (just from a txt file for now). Once all expected players have joined the game begins and when the game ends the game server sends the clients back to the master and shuts itself down. I have to do a few basic things that I don’t know how yet like how to get the opened port when a game server closes and pass a dynamic port to the game server (right now I use 7778 in the launch command so I can only have one instance running). Regardless it works quite well so far and I can manage it all in my gamemode blueprint. You can setup your logic to create matches based on whatever you want.

When done I should be able to run as many dedicated server instances as my system will handle. My goal is 20 simultaneous games each with 2-6 players all managed by the initial master server. An instance of my dedicated server only uses 100mb of ram but my game is exceptionally simple.

Anyway thought this might give you a direction if you wanted to set up your own system, but it’s very basic and feels like a bit of a workaround until I find a better way.