Running custom master servers (Posted by Hyper)
-
Hyper
- Posts: 811
- https://www.facebook.com/warszawa.kuchnie.na.wymiar/
- Joined: Sun Jul 13, 2003 1:40 am
- Location: 127.0.0.1
- Contact:
cheers...ill try it out.}TCP{Carnage wrote:reply by HyperReplacing the existing master servers (GameSpy and QTracker) is NOT recommended. You might want to query ONLY the test server to see if your server was submitrted correctly and/or if the master can be queried. In that case, set my test master as ONLY master to query:Xavious wrote:will it actually replace the master server we use, or just add another too it? and will this make it faster, thinking that unreal would still try to contact the servers in the same order at the same time?
ListFactories[0]=UBrowser.UBrowserGSpyFact,MasterServerAddress=hyper.xs4all.nl,MasterServerTCPPort=28900,GameName=unreal
put a " ; " in front of the gamespy line to temporarily disable it. The server browser might be slower because it has to get server info from 2 sources instead of one. please note that UT works with 2 masters by default.
Update: The previous master server did not work. Because it was based on Unreal Tournament, it probably has some incompatibility with Unreal, even when the MasterServer.ini is configured as Unreal 1 master server.
I now made the experimantal master server working using Unreal 225. You can add your server to it with the following change in Unreal.ini:
[Note: This master server is experimental and will not always be up]
In the [Engine.GameEngine] section:
You can also query the master server with your Unreal client. To do this, add the following line to your Unreal.ini:
In the [UBrowserAll] section:
When you ONLY want to query the HyperCoop master, (to see if it works) disable the gamespy master server:
When everything works, you can get the list of servers from the new master:

I updated the MasterServer installer for administrators who want to try their own master server:
Download Experimental Standalone Master Server v 0.2
I still have one big problem: the master server ALWAYS has 100% CPU usage. When you have any tips for me to tackle this problem, post it here!
I now made the experimantal master server working using Unreal 225. You can add your server to it with the following change in Unreal.ini:
[Note: This master server is experimental and will not always be up]
In the [Engine.GameEngine] section:
Code: Select all
ServerActors=IpServer.UdpServerUplink MasterServerAddress=hyper.xs4all.nl MasterServerPort=27900
In the [UBrowserAll] section:
Code: Select all
ListFactories[1]=UBrowser.UBrowserGSpyFact,MasterServerAddress=hyper.xs4all.nl,MasterServerTCPPort=28900,GameName=unreal
Code: Select all
[UBrowserAll]
ListFactories[0]=UBrowser.UBrowserGSpyFact,MasterServerAddress=hyper.xs4all.nl,MasterServerTCPPort=28900,GameName=unreal
;ListFactories[1]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master0.gamespy.com,MasterServerTCPPort=28900,GameName=unreal

I updated the MasterServer installer for administrators who want to try their own master server:
Download Experimental Standalone Master Server v 0.2
I still have one big problem: the master server ALWAYS has 100% CPU usage. When you have any tips for me to tackle this problem, post it here!
Last edited by Hyper on Mon Jan 03, 2005 1:11 pm, edited 1 time in total.
- }TCP{aLICe
- Posts: 1110
- Joined: Thu Mar 20, 2003 5:23 pm
You made.... does it mean you made a program yourself?
If answer is yes your problem is caused by "waiting loop". You should use "waiting for event" instead, or multithreaded application (one thread processing events from user (gui), other using blocking network function (I think problem is there)).
If answer is yes your problem is caused by "waiting loop". You should use "waiting for event" instead, or multithreaded application (one thread processing events from user (gui), other using blocking network function (I think problem is there)).
No, I probably should say I made it working instead a made a working. Anyways, I'm researching, configuring and distributing. Not programming.}TCP{aLICe wrote:You made.... does it mean you made a program yourself?
If answer is yes your problem is caused by "waiting loop". You should use "waiting for event" instead, or multithreaded application (one thread processing events from user (gui), other using blocking network function (I think problem is there)).
- }TCP{Wolf
- Site Admin
- Posts: 4663
- Joined: Thu Dec 19, 2002 7:30 pm
- Location: https://signal.me/#eu/4zInut2kHeg_ry0GD ... pdqka17o2F
- Contact:
- }TCP{Wolf
- Site Admin
- Posts: 4663
- Joined: Thu Dec 19, 2002 7:30 pm
- Location: https://signal.me/#eu/4zInut2kHeg_ry0GD ... pdqka17o2F
- Contact:
Well then what did you configure, which switches did you pull to make it from UT to Unreal. If you haven't written any line of code you must have just changed some ini entries. Those I am interested in.Hyper wrote:No, I probably should say I made it working instead a made a working. Anyways, I'm researching, configuring and distributing. Not programming.}TCP{aLICe wrote:You made.... does it mean you made a program yourself?
If answer is yes your problem is caused by "waiting loop". You should use "waiting for event" instead, or multithreaded application (one thread processing events from user (gui), other using blocking network function (I think problem is there)).
-=]I AM GETTING TOO OLD FOR SUBTLETY[=-
mail: chaos.worx[at]gmx.net
IRC Quakenet +OTR: }TCP{Wolf @#oldunreal @#tcp.clan
Jabber/XMPP +OTR: Wolfy359@jabber.org
Threema: CR6Y9YSS
Signal: see profile
ICQ: dead since russian takeover disables OTR
mail: chaos.worx[at]gmx.net
IRC Quakenet +OTR: }TCP{Wolf @#oldunreal @#tcp.clan
Jabber/XMPP +OTR: Wolfy359@jabber.org
Threema: CR6Y9YSS
Signal: see profile
ICQ: dead since russian takeover disables OTR
Okay., here it is:
You can also download the standalone package which encludes all files neccesary to run the master. (still with the cpu usage problem)
Screen output:
Code: Select all
; Unreal Engine Master Server
; Configuration File
;
; Revision History:
; * (4/16/99) Created by Brandon Reinhart
; * (01/03/05) Updated for Unreal by Hyper.nl
;
; Usage:
;
; [MasterServer]
; GameName=[Identifying String]
; Where the string is one assign by GameSpy & Critical Mass.
; OperationMode=[TextFile/TCPLink]
; First mode outputs server list to the file specified under the
; OutputFile key of the [TextFile] section.
; Second mode services GameSpy MasterServer Protocol messages
; on the port specified under the TCPPort key of the [TCPLink] section.
; ListenPort=[Integer]
; Specifies the port to listen for heartbeats on.
[MasterServer]
GameName=unreal
OperationMode=TCPLink
ListenPort=27900
[TCPLink]
TCPPort=28900
Screen output:
C:\master>ucc masterserver
UMasterServerCommandlet: Unreal Engine Master Server
Copyright 1999 Epic Games, Inc.
!! Loading Config: MasterServer.ini
GameName: unreal
Operation Mode: TCPLink
!! Loading TextFile Operation Mode Defaults
TextFile Mode Output:
!! Loading TCPLink Operation Mode Defaults
TCPLink Mode Service Port: 28900
!! Initializing sockets.
UDP socket bound at port 27900
TCP socket bound at port 28900
Listening on TCP socket.
!! Listening for and servicing messages.
Active servers in memory: 0
- }TCP{aLICe
- Posts: 1110
- Joined: Thu Mar 20, 2003 5:23 pm
alice is right. hence the reason for this:
themasternl wrote:People setting up Unreal servers behind firewalls have been asking for a summary of the TCP/IP ports Unreal uses. Here goes:
* UDP 7775 and 7776 are used only for LAN games. You don't need to route them through a firewall.
* UDP 7777 is for gameplay.
* UDP 7778 is for server querying.
* UDP 7779+ are allocated dynamically for each helper UdpLink objects, including UdpServerUplink objects.
* UDP 27900 is for server querying, if you enable the master server uplink. Some master servers use other ports, like 27500.
When players try to connect to an Unreal server, they connect to port 7777 by default.
OperationMode is the way the MasterServer operates. It can OR store the servers in a test file, OR use the gamespy master server protocol. TCPLink is the protocol for the gamespy master server protocol.}TCP{aLICe wrote:What is OperationMode? If it is what I think about it should be UDPsomething, because if I remember correctly Unreal uses UDP protocol for queries. Just
The Master server uses two ports: UDP 27900 (by default) for Unreal servers to uplink their 'heartbeat' data to the master server, and TCP 28900 for Unreal server browsers who want to query the master for a list of servers.Xavious wrote:alice is right. hence the reason for this:
themasternl wrote:People setting up Unreal servers behind firewalls have been asking for a summary of the TCP/IP ports Unreal uses. Here goes:
* UDP 7775 and 7776 are used only for LAN games. You don't need to route them through a firewall.
* UDP 7777 is for gameplay.
* UDP 7778 is for server querying.
* UDP 7779+ are allocated dynamically for each helper UdpLink objects, including UdpServerUplink objects.
* UDP 27900 is for server querying, if you enable the master server uplink. Some master servers use other ports, like 27500.
When players try to connect to an Unreal server, they connect to port 7777 by default.
Of course I am going to try to change the TCPLink to UDPLink, but I don't expect any luck.
When I change the TCPLink to UDPLink, the master server can not be queried anymore.
UMasterServerCommandlet: Unreal Engine Master Server
Copyright 1999 Epic Games, Inc.
!! Loading Config: MasterServer.ini
GameName: unreal
Operation Mode: UDPLink
!! Loading TextFile Operation Mode Defaults
TextFile Mode Output:
!! Loading TCPLink Operation Mode Defaults
TCPLink Mode Service Port: 0
!! Initializing sockets.
UDP socket bound at port 27900
!! Listening for and servicing messages.
Active servers in memory: 2
- }TCP{Wolf
- Site Admin
- Posts: 4663
- Joined: Thu Dec 19, 2002 7:30 pm
- Location: https://signal.me/#eu/4zInut2kHeg_ry0GD ... pdqka17o2F
- Contact:
The game queries are UDP, I am really not sure about the heartbeats and initial uplink requests. But... you can just use ethereal to find out the hard way 
-=]I AM GETTING TOO OLD FOR SUBTLETY[=-
mail: chaos.worx[at]gmx.net
IRC Quakenet +OTR: }TCP{Wolf @#oldunreal @#tcp.clan
Jabber/XMPP +OTR: Wolfy359@jabber.org
Threema: CR6Y9YSS
Signal: see profile
ICQ: dead since russian takeover disables OTR
mail: chaos.worx[at]gmx.net
IRC Quakenet +OTR: }TCP{Wolf @#oldunreal @#tcp.clan
Jabber/XMPP +OTR: Wolfy359@jabber.org
Threema: CR6Y9YSS
Signal: see profile
ICQ: dead since russian takeover disables OTR
Look at this line in your Unreal.ini. It tells it all:}TCP{Wolf wrote:The game queries are UDP, I am really not sure about the heartbeats and initial uplink requests. But... you can just use ethereal to find out the hard way
ListFactories[0]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master0.gamespy.com,MasterServerTCPPort=28900,GameName=unreal