gametypes and official stats..

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

NR_marcO

New Member
Sep 25, 2004
19
0
0
hiya all,

well ... a hopefully simple question tho ;-) a gametype should only exists once in u2vote - so for example if i create a new gametype to setup some muts with it on a single vote (created a new gametype with parent gametype teamdeathmatch - placed ig - translocator - gs 1.4 in) the game will show as custom game and not as InstaGib TeamDeathmatch on the official stats tho. Well .. i think if i use the XGame TDM with the same muts loaded it will show up as IG TDM in the stats tho ... so i only can modify the gametype TDM in ut2vote and loose my 'normal' TDM gametype?

... or maybe i simply got something wrong here...
 

ProAsm

Active Member
Mar 20, 2002
2,108
0
36
www.proasm.com
Up to now, Epic only require the correct suffix section of the Classname like .xTeamGame for instance.
GameMake3.3 will now do this for you but there is rumors that Epic are now requiring the full GameClass which will screw custom games altogether :(
 

ArPharazon

New Member
Aug 22, 2003
46
0
0
London
Visit site
Please remove the unique gameclass restriction - use an indexing system instead.

Or, better yet, scrap the command line usage altogether and write the settings directly to the appropriate gametype sections in the ini file - which would cover outside switches i think.

Then use a seperate section to maintain gametype profiles. When a profile is selected, it updates the appropriate gametype section in the ini file.
 

sargon

New Member
Sep 21, 2003
14
0
1
www.odclan.net
Gameclass

How about something like this.
Swapout the dummy gameclass with the real one.

[UT2Vote47.UT2VoteConfigs]
VoteAdminPass=
ClanAdminPass=
GamePassword=
DefaultGame=UT2Vote47.GameClass13
DefServerName=Sargon's Invasion RPG
ServerMuts=
ServerLine=
...
...

[UT2Vote47.UT2VoteGameClasses]
GameClass1=UT2k4Assault.ASGameInfo
GameClass2=XGame.xBombingRun
GameClass3=XGame.xCTFGame
GameClass4=XGame.xDeathMatch
GameClass5=XGame.xDoubleDom
GameClass6=XGame.InstagibCTF
GameClass7=SkaarjPack.Invasion
GameClass8=BonusPack.xLastManStandingGame
GameClass9=BonusPack.xMutantGame
GameClass10=Onslaught.ONSOnslaughtGame
GameClass11=XGame.xTeamGame
GameClass12=XGame.xVehicleCTFGame
GameClass13=SkaarjPack.Invasion
GameClass14=SkaarjPack.Invasion
GameClass15=XGame.xDeathMatch
GameClass16=XGame.xCTFGame
GameClass17=
GameClass18=
GameClass19=
GameClass20=

[UT2Vote47.UT2VoteGameTypes]
GameType=(GameName="Assault",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Assault",UseMapList=True,DefaultMap="AS-Convoy",MapPrefix="AS",GameClass="UT2Vote47.GameClass1",Mutators="...
GameType=(GameName="Bombing Run",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="Bombing Run",UseMapList=True,DefaultMap="DM-sHoK-Attic][2k4",MapPrefix="BR",GameClass="UT2Vote47.GameClass2",Mutators="...
GameType=(GameName="Capture the Flag",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="CTF",UseMapList=True,DefaultMap="CTF-Maul",MapPrefix="CTF",GameClass="UT2Vote47.GameClass3",Mutators="...
GameType=(GameName="DeathMatch",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="DeathMatch",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass4",Mutators="...
GameType=(GameName="Double Domination",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="Double Domination",UseMapList=True,DefaultMap="DOM-Core",MapPrefix="DOM",GameClass="UT2Vote47.GameClass5",Mutators="...
GameType=(GameName="InstaGib CTF",HideVote=False,Clan=True,RequiredPlayers=2,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="CTF-Chrome",MapPrefix="CTF",GameClass="UT2Vote47.GameClass6",Mutators="...
GameType=(GameName="Invasion",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Invasion",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass7",Mutators="...
GameType=(GameName="Last Man Standing",HideVote=True,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Last Man Standing",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass8",Mutators="...
GameType=(GameName="Mutant",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Mutant",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass9",Mutators="...
GameType=(GameName="Onslaught",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="Onslaught",UseMapList=True,DefaultMap="ONS-Icarus",MapPrefix="ONS",GameClass="UT2Vote47.GameClass10",Mutators="...
GameType=(GameName="Team DeathMatch",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="TDM",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass11",Mutators="...
GameType=(GameName="Vehicle CTF",HideVote=True,Clan=True,RequiredPlayers=2,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="None",MapPrefix="VCTF",GameClass="UT2Vote47.GameClass12",Mutators="...
GameType=(GameName="SSInvasion RPG",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Invasion RPG",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass13",Mutators="...
GameType=(GameName="SSInvasion VINV",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Vehicle Invasion",UseMapList=True,DefaultMap="VINV-Torlan",MapPrefix="VINV",GameClass="UT2Vote47.GameClass14",Mutators="...
GameType=(GameName="DeathMatch RPG",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="RPG DeathMatch",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass15",Mutators="...
GameType=(GameName="Capture the Flag RPG",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="RPG CTF",UseMapList=True,DefaultMap="CTF-Maul",MapPrefix="CTF",GameClass="UT2Vote47.GameClass16",Mutators="...
 

ProAsm

Active Member
Mar 20, 2002
2,108
0
36
www.proasm.com
As I said many times, the way UT2Vote is designed it is just not possible to do it any other way than the actual GameClassName, thus ruling out any form of Struct, Indexing or whatever.
If UT2Vote never had any Admining section and no ClanSetup then it might be possible but currently it needs the GameClassName in full and the only way around custom games is GameMake.

For instance often UT2Vote needs to know what the current game is, incase some Admin forced a switch from WebAdmin, or as a ServerAdmin etc, and the only possible "Real" information that UT2004 returns is the GameClass or the GameName although the GameName is often unrealiable as some mods change the GameName.
As an example, say the current game is XGame.xCTFGame and your Structs or Indexing has 10 XGame.xCTFGame - which one must it choose as at this point it does not have a clue because the Admin forced a switch from WebAdmin, so it will take the first XGame.xCTFGame it finds in the list.
During the making of version 4.4 we tried every trick in the book to accomplish some form of indexing or structing for the games but it was just a no go area unless we dumped 80% of the Admin stuff and almost all of the ClanSetup stuff.
 

ArPharazon

New Member
Aug 22, 2003
46
0
0
London
Visit site
Lets say we want the following configs:
- team deathmatch - IG, 2v2
- team deathmatch - NW, 4v4
- ctf - IG - 2v2
- ctf - IG - 5v5
- ctf - NW - 5v5

Currently this is not allowed because the 'gameclass' parameter must be unique, therefore I'm proposing that a new parameter called 'ID' should be added which would then become the new unique identifier for gametypes.

The gametype definition would look something like this then:
Code:
GameType=
(
	[b]ID=1[/b],
	GameName="IG-Capture the Flag",
	HideVote=False,
	Clan=True,
	RequiredPlayers=1,
	MapLimits=0,
	ServerName="None",
	UseMapList=False,
	DefaultMap="CTF-Impasse",
	MapPrefix="CTF",
	GameClass="XGame.xCTFGame",
	Mutators="XGame.MutInstaGib,
	XGame.MutNoAdrenaline",
	Commands="?..."
)

The desired configs could be represented in ut2vote as follows (new entries in bold):
Code:
[UT2Vote47.GameTypes]
[b]DefaultID=4[/b]
[b]SelectedID=2[/b]
GameType=([b]ID=1[/b],GameName="IG-Team DeathMatch-2v2",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="DM-Gael",MapPrefix="DM",GameClass="XGame.xTeamGame",Mutators="XGame.MutInstaGib,XGame.MutNoAdrenaline",Commands="?MaxLives=0?GoalScore=0?TimeLimit=20?MinPlayers=0?MaxPlayers=4?MaxSpectators=0?Translocator=False?WeaponStay=False?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=True?Tournament=0?GamePassword=?GameStats=True?GameSpeed=1.00?FF=1.00?NumBots=0?Difficulty=6")
GameType=([b]ID=2[/b],GameName="NW-Team DeathMatch-5v5",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="DM-Gael",MapPrefix="DM",GameClass="XGame.xTeamGame",Mutators="",Commands="?MaxLives=0?GoalScore=0?TimeLimit=20?MinPlayers=0?MaxPlayers=8?MaxSpectators=0?Translocator=False?WeaponStay=True?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=True?Tournament=0?GamePassword=?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
GameType=([b]ID=3[/b],GameName="IG-Capture the Flag-2v2",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="CTF-Impasse",MapPrefix="CTF",GameClass="XGame.xCTFGame",Mutators="XGame.MutInstaGib,XGame.MutNoAdrenaline",Commands="?MaxLives=0?GoalScore=0?TimeLimit=20?MinPlayers=0?MaxPlayers=4?MaxSpectators=0?Translocator=False?WeaponStay=False?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=False?Tournament=0?GamePassword=?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
GameType=([b]ID=4[/b],GameName="IG-Capture the Flag-5v5",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="CTF-Impasse",MapPrefix="CTF",GameClass="XGame.xCTFGame",Mutators="XGame.MutInstaGib,XGame.MutNoAdrenaline",Commands="?MaxLives=0?GoalScore=0?TimeLimit=20?MinPlayers=0?MaxPlayers=10?MaxSpectators=2?Translocator=False?WeaponStay=False?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=False?Tournament=0?GamePassword=?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
GameType=([b]ID=5[/b],GameName="NW-Capture the Flag-5v5",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="CTF-Impasse",MapPrefix="CTF",GameClass="XGame.xCTFGame",Mutators="",Commands="?MaxLives=0?GoalScore=0?TimeLimit=15?MinPlayers=0?MaxPlayers=10?MaxSpectators=2?Translocator=True?WeaponStay=True?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=True?Tournament=0?GamePassword=?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
DefaultID=4 - implies that CTF IG 5v5 is the default for server startup, or when everyone leaves
SelectedID=2 - implies the currently selected gametype. This value gets updated whenever gametypes are changed.

This brings us to the issue of gametype switches, which appears to be the main stumbling block [Webadmin doesnt like duplicate gametype entries either it seems].

When the mutator is active, it should modify the 'current_game.htm' page - specifically the gametype dropdown to reflect the game id & name instead of the gametype name e.g.
[1]-IG-Team DeathMatch-2v2
[2]-NW-Team DeathMatch-4v4
[3]-IG-Capture the Flag-2v2
[4]-IG-Capture the Flag-5v5
[5]-IG-Capture the Flag-5v5

It should also override the default handler for the 'switch' button and implement its own so that it knows which gametype ID is to be applied.

When the mutator is not active, it simply reverts to showing the unique default list of gametypes and using the default switch handler.

As for the the game rule settings in the 'Commands=' parameter, these should be applied / written directly to the appropriate gametype sections in the ini file - i.e. bypassing the command line totally.
Code:
[XGame.xTeamGame]
HUDType=XInterface.HudBTeamDeathMatch
MaxLives=0
TimeLimit=20
GoalScore=0
bTeamScoreRound=False
bPlayersMustBeReady=False
bAllowTaunts=False
FriendlyFireScale=0.000000
MaxTeamSize=16
bForceRespawn=True
bWeaponStay=true
bAllowNonTeamChat=False
NetWait=5
bAdjustSkill=False
bAllowTrans=False
SpawnProtectionTime=0.000000
LateEntryLives=1
LoginMenuClass=GUI2K4.UT2K4PlayerLoginMenu
bAllowPrivateChat=False
bAllowWeaponThrowing=True
ResetTimeDelay=0

[XGame.xCTFGame]
HUDType=XInterface.HudBCaptureTheFlag
MaxLives=0
TimeLimit=20
GoalScore=0
bTeamScoreRound=False
bPlayersMustBeReady=False
bAllowTaunts=False
FriendlyFireScale=0.000000
MaxTeamSize=16
bForceRespawn=False
bWeaponStay=True
bAllowNonTeamChat=False
NetWait=5
bAdjustSkill=False
bAllowTrans=False
SpawnProtectionTime=0.000000
LateEntryLives=1
LoginMenuClass=GUI2K4.UT2K4PlayerLoginMenu
bAllowPrivateChat=False
bAllowWeaponThrowing=True
ResetTimeDelay=0
If webadmin is used to modify the settings for the active gametype, ut2vote should update the 'Commands=' parameter for the selected gametype profile.

As for the Clan Setup feature - simply store those settings in its own ut2vote section.

It would also be very handy to have the Clan Setup features available in webadmin :D

I hope all the above makes sense - i'm not very good at describing what i'm thinking :D
 

ProAsm

Active Member
Mar 20, 2002
2,108
0
36
www.proasm.com
No, check my last post.
Regardless how you structure the games, UT2Vote will not allow more than one game of the same ClassName - period, just the way everything works.
If there was a way, I most certainly would implement it as it would solve many problems but to do that I would have to dump most the Admin stuff and the whole of the ClanSetup.
 
Last edited: