Packages management options in XC Servers

Mod development and tools for UE1 game titles here.
Post Reply
Nelsona
Posts: 1728
Joined: Sat Sep 30, 2017 5:03 am

Packages management options in XC Servers

Post by Nelsona »

In multi-servers running XC_Engine we can do some wrapping through packages. If we are running 5 game-types, poor player connecting server has to download for ages. We can manage to load several packages only for game-type currently running and NOT all content.
Packages are mapped according to an INI file and a Server-Actor which will map packages for each game-type in particular.
I called it Packager.
Actor is checking game-type configured from a list with 32 types. Each game-type might have 32 Packages in particular - dedicated DM CTF MH which are loaded ONLY when target game is loaded, player is excepted from a stupid downloading spree. Sample INI and explanations are integrated in archive. Keep in mind that only XC_Engine can attack Packages, a plain server is crashing. If you are an XC_Engine hater forget this Actor.
Packager.zip
(147.2 KiB) Downloaded 449 times
Edit:
As requested, a version for 64 game-types it's now available and tested.
Packager_64.zip
(110.39 KiB) Downloaded 489 times
Old entries from ini file can be removed - this mutator will create an ini file at first run if has no valid configuration.
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
medor
Posts: 76
Joined: Sat Sep 30, 2017 4:14 pm

Re: Packages management options in XC Servers

Post by medor »

This is an alternative to extended mapvotes :P cool

But why be small ; can you port it to 64 or more ?
For my future demo server to download i'm already 53 CustomGameConfig and it's not over :shock:
medor.no_ip.org
Image
Image
Image
Image
Nelsona
Posts: 1728
Joined: Sat Sep 30, 2017 5:03 am

Re: Packages management options in XC Servers

Post by Nelsona »

Let's follow small steps using 64 first to see if engine is agree with this. 64 game-types having 32 particular packages ?
As a warning, packages can be mapped until first tick. If iterations are crashing I'm not sure if exist a solution because adding packages has a logic, after connecting player a new package post join will mess up stuff, player has to be gone and reconnected which is not entertaining.

If I think well, so far one server with 32 games and other with 32 games = 64 games in 2 servers not 64 servers. But let's try a different compression if Engine will help us.

Default hint: You will need a rich MapVote for such a server and sorted stuff, because this toy is not a MapVote it's a "man-of-packages".
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
medor
Posts: 76
Joined: Sat Sep 30, 2017 4:14 pm

Re: Packages management options in XC Servers

Post by medor »

It's just a demo server full newnet.

Code: Select all

CustomGameConfig[0]=(bEnabled=True,GameClass="Botpack.Assault",NewPrefix="no140AS",Mutators="GotLoque.GotLoque,UN1.DisablePortals",Settings="MinPlayers=2,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[1]=(bEnabled=True,GameClass="Botpack.CTFGame",NewPrefix="CTF",Mutators="",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[2]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="DM",Mutators="",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[3]=(bEnabled=True,GameClass="Botpack.Domination",NewPrefix="DOM",Mutators="",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[4]=(bEnabled=True,GameClass="UN1.LastManStanding",NewPrefix="lMS",Mutators="",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[5]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="TDM",Mutators="",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[6]=(bEnabled=True,GameClass="MMGame.MMGame",NewPrefix="MM",Mutators="UP2.NoAlwaysAutoActivate",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[7]=(bEnabled=True,GameClass="RXU9.RXCTF",NewPrefix="rxCTF",Mutators="UN1.RXPosError,UN1.DisableWeapons",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[8]=(bEnabled=True,GameClass="SiegeIV_0028.SiegeGI",NewPrefix="SG",Mutators="",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[9]=(bEnabled=True,GameClass="Soccer.SoccerMatch",NewPrefix="soccerSCR",Mutators="",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[10]=(bEnabled=True,GameClass="SLVU3.SLVCTF",NewPrefix="slvCTF",Mutators="UN1.DisableWeapons,UN1.RXPosError,UN1.DoubleJump",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[11]=(bEnabled=True,GameClass="SiegeIV_0028.FreeSiegeGI",NewPrefix="freeSG",Mutators="",Settings="bTournament=False,MinPlayers=2,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[12]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="1v1DM",Mutators="",Settings="Timelimit=15,MinPlayers=0,Maxplayers=2,bBalanceTeams=False,AirControl=0.350000,GameSpeed=1.000000,GoalTeamScore=0.000000,bTournament=True,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[13]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="2v2DM",Mutators="",Settings="Timelimit=20,MinPlayers=0,Maxplayers=4,bBalanceTeams=False,AirControl=0.350000,GameSpeed=1.000000,GoalTeamScore=0.000000,bTournament=True,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[14]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="3v3DM",Mutators="",Settings="Timelimit=20,MinPlayers=0,Maxplayers=6,bBalanceTeams=False,AirControl=0.350000,GameSpeed=1.000000,GoalTeamScore=0.000000,bTournament=True,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[15]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="4v4DM",Mutators="",Settings="Timelimit=20,MinPlayers=0,Maxplayers=8,bBalanceTeams=False,AirControl=0.350000,GameSpeed=1.000000,GoalTeamScore=0.000000,bTournament=True,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[16]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="5v5DM",Mutators="",Settings="Timelimit=20,MinPlayers=0,Maxplayers=10,bBalanceTeams=False,AirControl=0.350000,GameSpeed=1.000000,GoalTeamScore=0.000000,bTournament=True,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[17]=(bEnabled=True,GameClass="Botpack.CTFGame",NewPrefix="cgCTF",Mutators="UN1.NewNetCG",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[18]=(bEnabled=True,GameClass="Botpack.CTFGame",NewPrefix="flackCTF",Mutators="BotPack.FlakArena,UP2.UnlimitedAmmo",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[19]=(bEnabled=True,GameClass="Botpack.CTFGame",NewPrefix="igCTF",Mutators="UN1.NewNetIG",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[20]=(bEnabled=True,GameClass="Botpack.CTFGame",NewPrefix="raCTF",Mutators="BotPack.RocketArena,UP2.UnlimitedAmmo",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[21]=(bEnabled=True,GameClass="Botpack.CTFGame",NewPrefix="saCTF",Mutators="UN1.NewNetSA,UP2.UnlimitedAmmo",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[22]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="cgDM",Mutators="UN1.NewNetCG",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[23]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="flackDMm",Mutators="BotPack.FlakArena,UP2.UnlimitedAmmo",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[24]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="igDM",Mutators="UN1.NewNetIG",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[25]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="raDM",Mutators="BotPack.RocketArena,UP2.UnlimitedAmmo",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[26]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="saDM",Mutators="UN1.NewNetSA",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[27]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="cgTDM",Mutators="UN1.NewNetCG",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[28]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="flackTDM",Mutators="BotPack.FlakArena,UP2.UnlimitedAmmo",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[29]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="igTDM",Mutators="UN1.NewNetIG",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[30]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="raTDM",Mutators="BotPack.RocketArena,UP2.UnlimitedAmmo",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[31]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",NewPrefix="saTDM",Mutators="UN1.NewNetSA,UP2.UnlimitedAmmo",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[32]=(bEnabled=True,GameClass="LeagueAS140.LeagueAssault",NewPrefix="140AS",Mutators="GotLoque.GotLoque,UN1.DisablePortals",Settings="MinPlayers=2,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[33]=(bEnabled=True,GameClass="JailBreak.JailBreak",NewPrefix="JB",Mutators="JailPeace.JailPeace,JBRSIndicator.JBRSIndicator,NoJailKill.NoJailKill,WrongJailCB.WrongJail",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[34]=(bEnabled=True,GameClass="Botpack.CTFGame",NewPrefix="cggdCTF",Mutators="UN1.DoubleJump,UN1.NewNetCG,UN1.GrapMut,UN1.ND_Mut",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[35]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="H4DM",Mutators="UN1.h4x_Mut,HyperTrans.TranslocMutator,Dropper.Drop",Settings="bUseTranslocator=True,bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[36]=(bEnabled=True,GameClass="SLVU3.SLVCTF",NewPrefix="aslvCTF",Mutators="SLVU3.StrangeArena",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[37]=(bEnabled=True,GameClass="HolyWars.HolyWarsGame",NewPrefix="DMHW",Mutators="",Settings="")
CustomGameConfig[38]=(bEnabled=True,GameClass="BTGame.BTGame",NewPrefix="BT",Mutators="UN1.DisablePortals,UN1.DisableWeapons",Settings="bTournament=False,MinPlayers=1,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[39]=(bEnabled=True,GameClass="AdvancedDOM.AdvancedDOM",NewPrefix="advDOM",Mutators="",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[40]=(bEnabled=True,GameClass="LeagueAS140.LeagueAssault",NewPrefix="140iAS",Mutators="UN1.NewNetIG,GotLoque.GotLoque,UN1.DisablePortals",Settings="MinPlayers=2,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[41]=(bEnabled=True,GameClass="JailBreak.JailBreak",NewPrefix="iJB",Mutators="UN1.NewNetIG,JailPeace.JailPeace,JBRSIndicator.JBRSIndicator,NoJailKill.NoJailKill,WrongJailCB.WrongJail",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[42]=(bEnabled=True,GameClass="SLVU3.SLVCTF",NewPrefix="islvCTF",Mutators="SLVU3.StrangeArena,UN1.RXPosError,UN1.DoubleJump,UN1.GrapMut,UN1.ND_Mut",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[43]=(bEnabled=True,GameClass="Botpack.Domination",NewPrefix="igDOM",Mutators="UN1.NewNetIG",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[44]=(bEnabled=True,GameClass="Botpack.Domination",NewPrefix="sDOM",Mutators="UN1.NewNetSDOM",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[45]=(bEnabled=True,GameClass="Botpack.Assault",NewPrefix="iAS",Mutators="UN1.NewNetIG,UN1.DisablePortals,GotLoque.GotLoque",Settings="MinPlayers=2,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[46]=(bEnabled=True,GameClass="RXU9.RXCTF",NewPrefix="irxCTF",Mutators="RXU9.StrangeArena,UN1.DoubleJump,UN1.GrapMut,UN1.ND_Mut,UN1.RXPosError",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[47]=(bEnabled=True,GameClass="Botpack.CTFGame",NewPrefix="axweaponCTF",Mutators="AXW2.AXData,AXW2.AXMut",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[48]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="axweaponDM",Mutators="AXW2.AXData,AXW2.AXMut",Settings="bTournament=False,MinPlayers=4,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[49]=(bEnabled=True,GameClass="BTGame.BTGame",NewPrefix="iBT",Mutators="UN1.DisablePortals,UN1.NewNetIG",Settings="bTournament=False,MinPlayers=1,GameSpeed=1.00,AirControl=0.350000")
CustomGameConfig[50]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="zomDM",Mutators="UN1.NewNetZIG,UN1.DoubleJump,UN1.GrapMut,UN1.ND_Mut,Botpack.LowGrav,NWUltraGoreSSEb.NWBloodyMess_UGSSE",Settings="GameSpeed=1.40,AirControl=0.700000,bTournament=False,MinPlayers=4")
CustomGameConfig[51]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus",NewPrefix="HookDM",Mutators="PirateDeemerCMM013.PirateDeemerMod,PirateDeemerCMM013.KeepItClean,,UN1.DoubleJump,UN1.GrapMut,UN1.ND_Mut",Settings="")
CustomGameConfig[52]=(bEnabled=True,GameClass="MH2_NS_V2.MonsterHunt",NewPrefix="nsMH",Mutators="UN1.DisableWeapons,UN1.RXPosError,UN1.DoubleJump,MH_OsPower.PowerUp",Settings="bTournament=False,MinPlayers=4")
CustomGameConfig[53]=(bEnabled=False,GameClass="",NewPrefix="",Mutators="",Settings="")
CustomGameConfig[54]=(bEnabled=False,GameClass="",NewPrefix="",Mutators="",Settings="")
CustomGameConfig[55]=(bEnabled=False,GameClass="",NewPrefix="",Mutators="",Settings="")
CustomGameConfig[56]=(bEnabled=False,GameClass="",NewPrefix="",Mutators="",Settings="")
CustomGameConfig[57]=(bEnabled=False,GameClass="",NewPrefix="",Mutators="",Settings="")
CustomGameConfig[58]=(bEnabled=False,GameClass="",NewPrefix="",Mutators="",Settings="")
CustomGameConfig[59]=(bEnabled=False,GameClass="",NewPrefix="",Mutators="",Settings="")
medor.no_ip.org
Image
Image
Image
Image
Nelsona
Posts: 1728
Joined: Sat Sep 30, 2017 5:03 am

Re: Packages management options in XC Servers

Post by Nelsona »

I see...
But I have a small note for that MonsterHunt. OsPower as I recall is done for MonsterHunt504, I'm not sure if will be fully compatible with MH2_NS_V2 - I forgot those things. I have other MonsterHunt2 type and... perhaps I have to expand some "Relic" integrated in a future version having an already configured delay - allowing patch files to run first. Also I think an XC_OsPower would be cute as well dedicated to my love, XC_MonsterHunt which I was playing last time more intensive...

As for such a server... with stock files probably I would not be that fascinated about it... This server will need a lot of polishing.

But Okay I'll setup Packager for 64 game-types with 32 packages in array, and then you can test whatever mutators. In such a server preventing long downloads is probably a must-have else player will quit connecting - It's what I do when 200 MB are about be pushed at me.

Eastern Egg: I think Packager_64 will use the same ini file as long as too many files used nowadays are only slowing down drive access... there are already a mountain of files in such a server.
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
Nelsona
Posts: 1728
Joined: Sat Sep 30, 2017 5:03 am

Re: Packages management options in XC Servers

Post by Nelsona »

Working stage so far went as follows:
- changed codes solution using "switch-case";
- implementing 64 games with 32 packages each;
- adding clocking system from XC_Core delivering time in milliseconds (rounded) spent for mapping packages - this thing do needs XC_Engine after all, so let's use it.
How do log file looks:

Code: Select all

ServPackager_64: >> Actor Loaded and Started.
ServPackager_64: Found game-type MonsterHunt
ServPackager_64: ServerPackages mapping for MonsterHunt is operating as follows:
ServPackager_64: Adding Ns_SpawnPoint2 in ServerPackages.
ServPackager_64: ServerPackages mapping for MonsterHunt is ended.
ServPackager_64: Mapping Packages took around 6 MilliSeconds.
To do: checking codes again and operation before posting it.
Edit: Monster Gaming Server said

Code: Select all

ServPackager_64: >> Actor Loaded and Started.
ServPackager_64: Found game-type DeathMatchPlus
ServPackager_64: ServerPackages mapping for DeathMatchPlus is operating as follows:
ServPackager_64: Adding UTToolbox in ServerPackages.
ServPackager_64: Adding NsMonster in ServerPackages.
ServPackager_64: Adding Cacher in ServerPackages.
ServPackager_64: Adding UTrooper in ServerPackages.
ServPackager_64: Adding UTrooper2 in ServerPackages.
ServPackager_64: ServerPackages mapping for DeathMatchPlus is ended.
ServPackager_64: Mapping Packages took around 8 MilliSeconds.
and then MonsterHunt

Code: Select all

ServPackager_64: >> Actor Loaded and Started.
ServPackager_64: Found game-type MonsterHunt
ServPackager_64: ServerPackages mapping for MonsterHunt is operating as follows:
ServPackager_64: Adding Ns_SpawnPoint2 in ServerPackages.
ServPackager_64: ServerPackages mapping for MonsterHunt is ended.
ServPackager_64: Mapping Packages took around 0 MilliSeconds.
Mapping a single package it's like operated instantly - time rounded to zero.
No failures so far...
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
Nelsona
Posts: 1728
Joined: Sat Sep 30, 2017 5:03 am

Re: Packages management options in XC Servers

Post by Nelsona »

First post has been updated with ServerActor Packager_64 mapping packages for 64 game-types in particular. It's aiming XC_Engine based servers, players don't need any special tweak.
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
medor
Posts: 76
Joined: Sat Sep 30, 2017 4:14 pm

Re: Packages management options in XC Servers

Post by medor »

Ok nice :)

I'm not brave enough to test now but I'm going to use it THX.
medor.no_ip.org
Image
Image
Image
Image
Post Reply