UT4MasterServer
UT4MasterServer copied to clipboard
Reimplementation of Epic's server for Unreal Tournament pre-alpha
UT4MasterServer
This is a reimplementation of EpicGames servers, just enough to be able to serve as a master server for Unreal Tournament pre-alpha. There is still lots to do. Anyone is welcome to help out. Reach us on Discord Server.
If you want to play, go to https://ut4.timiimit.com/
Contribution
There is not much documentation on how to get started. I will create issues that need resolving as time goes on, but there are also a bunch of // TODO comments which tell what is still missing.
Required packages for running with Visual Studio 2022
- .NET desktop development
- Container development tools
Running & debugging with Visual Studio 2022
- Install Docker
- Install Visual Studio 2022
- Open
UT4MasterServer.slnwith Visual Studio 2022 - Set
docker-composeas the Startup Project - Start Debugging
Running without Visual Studio 2022
To run in development mode use docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d inside repository's root.
FAQ for users and hub/server owners
How to make UT4 connect to new master server?
- Use
Files/Engine.iniin this repository as a template - Replace all occurrences of
<PUT_MASTER_SERVER_DOMAIN_HERE>with the domain of master server you want to connect to - Copy the content and append all of it to your local
Engine.inifile- Windows path:
C:\Users\<your_username>\Documents\UnrealTournament\Saved\Config\WindowsNoEditor - Linux path:
/home/<your_username>/UnrealTournament/Saved/Config/LinuxNoEditor
- Windows path:
How to make UT4 hubs and servers connect to new master server?
Follow steps 1 through 3 from section How to make UT4 connect to new master server? but instead append to Engine.ini located in server's directory.
- Windows Server Path:
<install_location>\UnrealTournament\Saved\Config\WindowsServer - Linux Server Path:
<install_location>/UnrealTournament/Saved/Config/LinuxServer
How to register new account?
Use POST account/api/create/account endpoint with body parameters username=<username>&password=<password>.
How to log in to your account inside the game?
You have 2 options. There is an easy way which is less secure and harder way which is more secure.
-
Easy way (generally recommended)
- Add
UnrealTournamentparameter to your UT4 shortcut: Example:
"D:\Epic Games\UnrealTournament\Engine\Binaries\Win64\UE4-Win64-Shipping.exe" UnrealTournament- After starting game, you should see login window. Enter your credentials and you should be able to play.
- Add
-
Hard way
- Get
access_tokenfromPOST account/api/oauth/tokenwithgrant_type: password GET account/api/oauth/exchangewith Bearer authorization (access_tokenfromPOST account/api/oauth/token)- Add parameters to your UT4 shortcut and replace
your_password_codewithcodefromGET account/api/oauth/exchange:
"D:\Epic Games\UnrealTournament\Engine\Binaries\Win64\UE4-Win64-Shipping.exe" UnrealTournament -AUTH_LOGIN=unused -AUTH_PASSWORD=your_password_code -AUTH_TYPE=exchangecodeNOTE: You need to repeat point b and c if you want to login again.
- Get
How to track statistics on new master server?
It is not possible to do this without editing the client. UT4UU will try to address this in the future.
I really don't want to use UT4UU, but I want master server to track my statistics
A workaround would be for the admin of master server to issue you a self-signed certificate. You can then install this certificate so that it is trusted by your machine. Finally, you can add an entry into your hosts file and redirect datarouter.ol.epicgames.com to master server's domain.