# QStat configuration file
#
# See qstat documentation (qstatdoc.html) for instructions
# http://www.qstat.org

gametype SOF2S new extend Q3S
    name = Soldier of Fortune 2
    default port = 20100
    template var = SOLDIEROFFORTUNE2
    game rule = gametype
end

# SOF2 public master: master.sof2.ravensoft.com
# The 2003 protocol is for SOF2 1.01
# The 2004 protocol is for SOF2 1.02
gametype SOF2M new extend Q3M
    name = SOF2 Master
    default port = 20110
    template var = SOF2MASTER
    master protocol = 2004
    master query = SOF2FULL
    master for gametype = sof2s
end

# The 2002 protocol is for SOF2 1.0
gametype SOF2M1.0 new extend SOF2M
    name = SOF2 Master (1.0)
    master protocol = 2002
end

gametype CRS new extend GPS
    name = Command and Conquer: Renegade
    default port = 25300
    template var = CNCRENEGADE
    game rule = gametype
end

# MOHAA supports two status protocols, Gamespy and Quake 3.
# Seems like servers support one or the other, but not both at the same time.
# The Gamespy protocol returns player name, frags, ping, and deaths.
gametype MAS new extend GPS
    name = Medal of Honor: Allied Assault
    default port = 12300
    template var = MOHALLIEDASSAULT
    game rule = gametype
end

# MOHAA support for the Q3 protocol is broken and more limited.  The
# response to "getinfo" does not include the current and max players
# (they're always zero).  The response to "getstatus" has the correct
# current and max players, but only reports player name and ping.
# If -R or -P options are specified, then both "getinfo" and "getstatus"
# are sent.  Otherwise only "getinfo" is sent.
gametype MAQS new extend Q3S
    name = Medal of Honor: Allied Assault (Q)
    default port = 12300
    template var = MOHALLIEDASSAULT
    game rule = gametype
    status packet = \xff\xff\xff\xff\x02getinfo\n
    status2 packet = \xff\xff\xff\xff\x02getstatus\n
end

# Half-Life supports a Quake 2 style status protocol, but only for
# basic status, there's no player or extended rule information.  The
# server rule names are different from HLS.
gametype HLQS new extend Q2S
    name = Half-Life
    template var = HALFLIFE
    default port = 27015
    game rule = gamedir
    status packet = \xff\xff\xff\xffinfostring\x00
end

# Config for Serious Sam SMS
gametype SMS new extend GPS
   name = Serious Sam
   default port = 25600
   status port offset = 1
   template var = SERIOUSSAM
   game rule = gametype
end

# Config for Medal of Honor: Allied Assault MHS
gametype MHS new extend Q3S
   name = Medal of Honor: Allied Assault
   default port = 12204
   template var = MOHALLIEDASSAULT
   game rule = gametype
   status packet = \377\377\377\377\002getinfo xxx
   status2 packet = \377\377\377\377\002getstatus xxx
end

# Config for Call of Duty
gametype CODS new extend Q3S
    name = Call of Duty
    default port = 28960
    template var = CALLOFDUTY
    game rule = gamename
end

gametype CODM new extend Q3M
    name = Call of Duty Master
    default port = 20510
    template var = CODMASTER
    master protocol = 5
    master for gametype = CODS
    master query = full empty
end

# Config for Call of Duty 2
gametype COD2S new extend Q3S
    name = Call of Duty 2
    default port = 28960
    template var = CALLOFDUTY2
    game rule = gamename
end

gametype COD2M new extend Q3M
    name = Call of Duty 2 Master
    default port = 20710
    template var = COD2MASTER
    master protocol = 118
    master for gametype = COD2S
    master query = full empty
end

# Config for Call of Duty 4
gametype COD4S new extend Q3S
    name = Call of Duty 4
    default port = 28960
    template var = CALLOFDUTY4
    game rule = gamename
end

gametype COD4M new extend Q3M
    name = Call of Duty 4 Master
    default port = 20810
    template var = COD4MASTER
    master protocol = 6
    master for gametype = COD4S
    master query = full empty
end

# Config for Call of Duty Word at War
gametype WAWS new extend Q3S
    name = Call of Duty World at War
    default port = 28960
    template var = CALLOFDUTYWAW
    game rule = gametype
end

# id Tech 3 (Enemy Territory flavour)
gametype WOETS new extend Q3S
    name = Enemy Territory
    template var = ENEMYTERRITORY
    game rule = gamename
end
gametype WOETM new extend Q3M
    name = Enemy Territory Master
    template var = WOETSMASTER
    master protocol = 84
    master for gametype = WOETS
    master query = empty full
end

# NetPanzer > 0.1.6
gametype NETP new extend GPS
    name = NetPanzer
    template var = NETPANZER
end
gametype NETPM new extend GSM
    name = NetPanzer Master
    template var = NETPANZERMASTER
    master for gametype = NETP
end

gametype STMHL2 new extend STM
    name = Steam Master for HL2
    template var = STEAMMASTERHL2
    master for gametype = HL2S
    default port = 27011
end

gametype STMA2S new extend STM
    name = Steam Master for A2S
    template var = STEAMMASTERA2S
    master for gametype = A2S
    default port = 27011
end

gametype UT2004S new extend UT2S
    name = UT2004
    template var = UT2004
end
gametype UT2004M modify
    master for gametype = UT2004S
end

# id Tech 2 fork (DarkPlace engine, Quake 2 derivative)
gametype NEXUIZS new extend Q3S
    name = Nexuiz
    template var = NEXUIZ
    default port = 26000
    game rule = gamename
end
gametype NEXUIZM new extend Q3M
    name = Nexuiz Master
    template var = NEXUIZMASTER
    default port = 27950
    master packet = \377\377\377\377getservers Nexuiz %s %s
    master protocol = 3
    master query = empty full
    master for gametype = NEXUIZS
end

# id Tech 2 fork (DarkPlace engine, Quake 2 derivative)
gametype XONOTICS new extend Q3S
    name = Xonotic
    template var = XONOTIC
    default port = 26000
    game rule = gamename
end
gametype XONOTICM new extend Q3M
    name = Xonotic Master
    template var = XONOTICMASTER
    default port = 27950
    master packet = \377\377\377\377getservers Xonotic %s %s
    master protocol = 3
    master query = empty full
    master for gametype = XONOTICS
end

# id Tech 2 fork (Qfusion engine, Quake 1 derivative)
gametype WARSOWS new extend Q3S
    name = Warsow
    template var = WARSOW
    default port = 44400
    game rule = gamename
    status packet = \377\377\377\377getinfo
    status2 packet = \377\377\377\377getstatus
end
gametype WARSOWM new extend Q3M
    name = Warsow Master
    template var = WARSOWMASTER
    default port = 27950
    master packet = \377\377\377\377getservers Warsow %s %s
    master protocol = 22
    master query = empty full
    master for gametype = WARSOWS
end

# id Tech 3 fork (Tremulous engine, Quake 3 derivative)
gametype TREMULOUSS new extend Q3S
    name = Tremulous
    template var = TREMULOUSS
    game rule = gamename
end
gametype TREMULOUSM new extend Q3M
    name = Tremulous Master
    template var = TREMULOUSMASTER
    default port = 30710
    master protocol = 69
    master for gametype = TREMULOUSS
end

# id Tech 3 fork (Tremulous engine derivative, Quake 3 derivative)
gametype TREMULOUSGPPS new extend Q3S
    name = Tremulous GPP
    template var = TREMULOUSGPPS
    game rule = gamename
end
gametype TREMULOUSGPPM new extend Q3M
    name = Tremulous GPP Master
    template var = TREMULOUSGPPMASTER
    default port = 30700
    master protocol = 70
    master for gametype = TREMULOUSGPPS
end

# id Tech 3 fork (Daemon engine, Quake 3 derivative, via Tremulous, ioquake3, XreaL, ioWolfET)
gametype UNVANQUISHEDS new extend Q3S
    name = Unvanquished
    template var = UNVANQUISHED
    default port = 27960
    status packet = \xff\xff\xff\xffgetstatus
    game rule = gamename
end
gametype UNVANQUISHEDM new extend Q3M
    name = Unvanquished Master
    template var = UNVANQUISHEDMASTER
    default port = 27950
    master protocol = 86
    master for gametype = UNVANQUISHEDS
end

gametype HLA2S new extend A2S
    name = Half-Life
    template var = HLA2S
end
gametype HLA2SM new extend STM
    master for gametype = HLA2S
    default port = 27010
end

gametype PREYM new extend DM3M
    name = Prey Master
    template var = PREYMASTER
    default port = 27655
    master query = empty full
    master for gametype = PREYS
end

gametype JK2S new extend Q3S
	name = Jedi Knight 2
	default port = 28070
	template var = JEDIKNIGHT2
	game rule = gamename
end

gametype JK2M new extend JK3M
	name = Jedi Knight 2
	default port = 28060
	template var = JK2MASTER
	master protocol = 16
	master for gametype = JK2S
end

gametype UT3S new extend GS4
    name = UT3
    default port = 6500
    template var = UT3
end

# id Tech 3 fork (ioquake3 engine, Quake 3 derivative)
gametype OPENARENAS new extend Q3S
    name = OpenArena
    template var = OPENARENA
    game rule = gamename
end

gametype OPENARENAM new extend Q3M
    name = OpenArena Master
    template var = OPENARENAMASTER
    default port = 27950
    master packet = \377\377\377\377getservers %s %s
    master protocol = 71
    master query = empty full
    master for gametype = OPENARENAS
end

# id Tech 3 fork (ioquake3 engine, Quake 3 derivative)
gametype Q3RALLYS new extend Q3S
    name = Q3 Rally
    template var = Q3RALLY
    game rule = gamename
end

gametype Q3RALLYM new extend Q3M
    name = Q3 Rally Master
    template var = Q3RALLYMASTER
    default port = 27950
    master packet = \377\377\377\377getservers Q3Rally %s %s
    master protocol = 71
    master query = empty full
    master for gametype = Q3RALLYS
end

# id Tech 3 fork (ioquake3 engine, Quake 3 derivative)
gametype WOPS new extend Q3S
    name = World Of Padman
    template var = WOP
    game rule = gamename
end

gametype WOPM new extend Q3M
    name = World Of Padman Master
    template var = WOPMASTER
    default port = 27955
    master packet = \377\377\377\377getservers WorldofPadman %s %s
    master protocol = 71
    master query = empty full
    master for gametype = WOPS
end

# id Tech 3 fork (ioquake3 engine, Quake 3 derivative)
gametype IOURTS new extend Q3S
    name = Urban Terror
    template var = IOURT
    game rule = gamename
end

gametype IOURTM new extend Q3M
    name = Urban Terror Master
    template var = IOURTMASTER
    default port = 27900
    master packet = \377\377\377\377getservers %s %s
    master protocol = 68
    master query = empty full
    master for gametype = IOURTS
end

# id Tech 3 fork (ioquake3 engine, Quake 3 derivative)
gametype REACTIONS new extend Q3S
    name = Reaction
    template var = REACTION
    game rule = gamename
end

gametype REACTIONM new extend Q3M
    name = Reaction Master
    template var = REACTIONMASTER
    default port = 27950
    master packet = \377\377\377\377getservers %s %s
    master protocol = 68
    master query = empty full
    master for gametype = REACTIONS
end

# id Tech 3 fork (ioquake3 engine, Quake 3 derivative)
gametype SMOKINGUNSS new extend Q3S
    name = Smokin' Guns
    template var = SMOKINGUNS
    game rule = gamename
end

gametype SMOKINGUNSM new extend Q3M
    name = Smokin' Guns Master
    template var = SMOKINGUNSMASTER
    default port = 27960
    master packet = \377\377\377\377getservers %s %s
    master protocol = 68
    master query = empty full
    master for gametype = SMOKINGUNSS
end

# id Tech 3 fork (ioquake3 engine, Quake 3 derivative)
gametype ZEQ2LITES new extend Q3S
    name = ZEQ2 Lite
    template var = ZEQ2LITE
    game rule = gamename
end

gametype ZEQ2LITEM new extend Q3M
    name = ZEQ2 Lite Master
    template var = ZEQ2LITEMASTER
    default port = 27960
    master packet = \377\377\377\377getservers %s %s
    master protocol = 75
    master query = empty full
    master for gametype = ZEQ2LITES
end

# id Tech 3 fork (Spearmint engine, Quake 3 derivative)
gametype TURTLEARENAS new extend Q3S
    name = Turtle Arena
    template var = TURTLEARENA
    default port = 27960
    game rule = game
end

gametype TURTLEARENAM new extend Q3M
    name = Turtle Arena Master
    template var = TURTLEARENAMASTER
    default port = 27950
    master packet = \377\377\377\377getservers TurtleArena %s %s
    master protocol = 11
    master query = empty full
    master for gametype = TURTLEARENAS
end

# id Tech 2 fork (CRX engine, Quake 2 derivative)
gametype ALIENARENAS new extend Q2S
    name = Alien Arena
    template var = ALIENARENA
    game rule = gamename
end

gametype ALIENARENAM new extend Q2M
    name = Alien Arena Master
    template var = ALIENARENAMASTER
    default port = 27900
    master protocol = 34
    master query = empty full
    master for gametype = ALIENARENAS
end

gametype TF2 new extend TF
   name = Titanfall 2
   status packet = \xff\xff\xff\xff\x4f\x03
end

gametype TF2E new extend TF
   name = Titanfall 2 Protocol v2
   status packet = \xff\xff\xff\xff\x4d\x03
end

# id Tech 2 fork (Quetoo engine, Quake 2 derivative)
gametype QUETOOS new extend Q2S
    name = Quetoo
    template var = QUETOO
    default port = 1998
    game rule = game_name
end

gametype QUETOOM new extend Q2M
    name = Quetoo Master
    template var = QUETOOMASTER
    default port = 1996
    master query = empty full
    master for gametype = QUETOOS
end

# id Tech 2 fork (DarkPlace engine, Quake 2 derivative)
gametype DOOMBRINGERS new extend Q3S
    name = Doombringer
    template var = DOOMBRINGER
    default port = 26000
    game rule = gamename
end

gametype DOOMBRINGERM new extend Q3M
    name = Doombringer Master
    template var = DOOMBRINGERMASTER
    default port = 27950
    master packet = \377\377\377\377getservers DOOMBRINGER %s %s
    master protocol = 3
    master query = empty full
    master for gametype = DOOMBRINGERS
end
