UT2U1 - Loathsomes UT Tweak - v2.0 Final

Search, find and discuss about Mutators!
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

UT2U1 - Loathsomes UT Tweak - v2.0 Final

Post by MrLoathsome »

*Edit - Download and posted ReadMe file updated with v2.0 Final.

Wanted to be able to add U1 and UT items to games without screwing things up.

Problem. UT class DMMutator and its horrible CheckReplacement routine.

They should have left that alone, or perhaps have made the replacements optional....

The ReadMe file:

Code: Select all

10:32 AM 7/16/2016

UT2U1 Mutator by MrLoathsome - v2.0 Final

v2.0 Final Changes:

Some additional code optimizations.
Now works with OldSkool coopgame2 gametype.


RC4 update:

More optimizations.   Includes fix for using the default UnrealI and UnrealShare weapons online.


This mutator does several things.   Attempts to totally bypass the UT code that replaces all Unreal
weapons/inventory with the UT99 counterparts.
Thus enabling ALL the classes to co-exist on the same map at the same time.

With this running you can just copy a Dm map from Unreal into your UT\maps directory
and then play the map with the original Unreal guns the author had placed there.

The performance boost this gives things by eliminating a LOT of extra processing that
was happening for EVERY SINGLE ACTOR in your games is considerable.

Recommend using it even if you are NOT going to add any Unreal components to your games.

Install:

Place UT2U1.u and UT2U1.int in your UnrealTournament/System folder.
If running a server that will have U1 weapons on it, copy the UT2U1.ini file also, and set the bU1GunFix variable to True.

Select "Loathsomes UT Tweak" from your mutators list.

There is now one config variable, bU1GunFix. But it should be left at
the default False value for most games.   It is only needed on servers
that have U1 guns in the games, and are NOT running a gametype or other mutator that
fixes the firing issues with U1 guns.  i.e.  Only set it True if U1 guns are not firing.

For servers add UT2U1.UT2U1 to your server startup line.
No need to add this to serverpackages or have the uz file on redirect as this runs serverside only.

If you are using this on a server AND there are any of the default Old Unreal guns
on the maps or being added to the games, set the config variable bU1GunFix=True.

Although this seems to be compatible with the OldSkool mutator, it does not function
with UT coop games based on the coopgame2 gametype.

Big credits to Higor for help with the PostBeginPlay function and suggestions for
getting the Unreal gun fix working optimally online.

Enjoy !
There is NO reason why you can't have Stingers and PulseGuns in the same game, other than that
horrible default CheckReplacement garbage. (I think. No problems or log file errors in testing so far.)

In testing this with the current development version of the SwarmSpawner, this SwarmSpawn.ini worked perfect:

Code: Select all

[SwarmSpawn.SS]
CheckRate=0.33
bDebugMode=True
bSpawnAtStart=False
bTrooperGunDrop=True
SwarmInfo[0]=(SwarmClass="UnrealI.SkaarjSniper",Qty=1,SSet0=(SName="WeaponType",SVal="Botpack.SniperRifle"))
SwarmInfo[1]=(SwarmClass="UnrealI.SkaarjSniper",Qty=1,SSet0=(SName="WeaponType",SVal="Botpack.warheadLauncher"))
SwarmInfo[2]=(SwarmClass="UnrealI.SkaarjTrooper",Qty=1,SSet0=(SName="WeaponType",SVal="Botpack.Minigun2"))
SwarmInfo[3]=(SwarmClass="CherryBomb.CherryBomb",Qty=0)
SwarmInfo[4]=(SwarmClass="UnrealI.SkaarjGunner",Qty=1,SSet0=(SName="WeaponType",SVal="CherryBomb.CherryBomb"))
SwarmInfo[5]=(SwarmClass="UnrealI.SkaarjInfantry",Qty=1,SSet0=(SName="WeaponType",SVal="UnrealShare.Stinger"))
SwarmInfo[6]=(SwarmClass="UnrealI.SkaarjInfantry",Qty=1,SSet0=(SName="WeaponType",SVal="Botpack.PulseGun"))
SwarmInfo[7]=(SwarmClass="UnrealI.SkaarjOfficer",Qty=1,SSet0=(SName="WeaponType",SVal="Botpack.ripper"))
The SkaarjSniper with the Redeemer only fired it sometimes, but I will look at that detail more later.

I have only tested this UT2U1 mutator in regards to the Trooper weapons, and only on a few maps.

Would be interested in any test results, particularly any done on maps that were originally U1 maps.

*Edit: 06/13/16 - Version 2.0 Final of this is in development.
This post will be updated when testing is sufficient.
You do not have the required permissions to view the files attached to this post.
Last edited by MrLoathsome on Sat Jul 16, 2016 4:44 pm, edited 6 times in total.
blarg
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by Higor »

My ancient workaround consisted on subclassing a new gametype under UnrealGame info and use my own BaseMutator.
I made it so that monsters were dynamically increased, skill and health tweaked by diff, and all inventory would pass certain configurable filters, from leaving all weapons as Unreal ones, or UT ones... or a %chance to replace or keep.

I can release that code since I no longer maintain that old mod.
User avatar
Dr.Flay
Godlike
Posts: 3351
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by Dr.Flay »

Does having Oldskool installed work with these methods ?
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by MrLoathsome »

In offline tests, this seems to work fine with or without Oldskool enabled.

Still need to test it with more maps & gametypes, and see if it works on a server or not.
blarg
User avatar
Dr.Flay
Godlike
Posts: 3351
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by Dr.Flay »

Hmm, well I have been hopping back and forth between the 2 games porting maps.
The DM-GangOfFront map has stingers in it, which often give me a problem (can't remember what mix)

I would test with Chaos, Xpickups and Wormbos Enhanced items, as they replace pickups.
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by MrLoathsome »

Update.

Further testing is going well with this.

A predicted issues occurs online if players pick up an U1 gun. Everything looks ok, but they cannot shoot.
(Offline, no problems at all...)

This is I am pretty sure an issue in the U1 gun classes themselves however.
Hope to find a way to fix that. As a temp fix for now on my servers I have just disabled the option for troopers to drop their weapon when killed.

Still need to test further, but this should work fine with any 3rd party mutators that do replacement.
This replaces nothing, it just eliminates the pointless replacements done by DMMutator.uc, which screw up EVERY gametype where you try to use any
of the UnrealI or UnrealShare classes.

The troopers themselves seem to be using the U1 guns fine in UT games. Currently have this wacky mutator running on them along with the BP5 MegaTDM/MegaDomination
gametypes.

The servers are also running an unreleased version of the SwarmSpawn mutator, which is where the code that fixes the Troopers weapons is handled.
blarg
JackGriffin
Godlike
Posts: 3776
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by JackGriffin »

I remember this error and fixing it online Loath. I wanted to import the default disruptor gun from U1 and for it to be able to upgrade with the pickups correctly. I got it to work easily but the gun even with max improvements still was not anywhere near powerful enough for MH so I discarded it.

I like this idea of funneling UT and Unreal closer together. It's a shame we can't get them together any better than it currently is done.
So long, and thanks for all the fish
User avatar
Rakiayn
Masterful
Posts: 550
Joined: Fri Aug 28, 2009 3:33 pm

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by Rakiayn »

I think the dafault unreal 1 weapons have to much replication issues.
why not use the oldskool weapons?
JackGriffin
Godlike
Posts: 3776
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by JackGriffin »

Oldskool creates a huge swath of issues by itself. There are multiple versions, the code itself has errors internally, and replacement becomes a nightmare when you do it in your mod. It breaks the skaarj trooper classes for example.
So long, and thanks for all the fish
User avatar
EvilGrins
Godlike
Posts: 10243
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by EvilGrins »

JackGriffin wrote:Oldskool creates a huge swath of issues by itself. There are multiple versions, the code itself has errors internally, and replacement becomes a nightmare when you do it in your mod. It breaks the skaarj trooper classes for example.
Tell me about it. I still use the original version, that uSaarr33 (think that was his name) made, as all of the upgrades to it got rid of the Sktrooper which is key to all my games.

I never saw anything in the later versions worth getting rid of the original for.
User avatar
Rakiayn
Masterful
Posts: 550
Joined: Fri Aug 28, 2009 3:33 pm

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by Rakiayn »

@Jack
hmm. thats to bad.
I guess the only way is to recode the unreal 1 weapons
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by MrLoathsome »

A quick fix I may try for this, will be to make the bTrooperDropGun variable specific to each Trooper or Swarm of Troopers that are spawned.
At the moment, I have it as a global variable for the spawner.

This way troopers could use almost ANY type of gun, including the default UnrealI/UnrealShare weapons, but for servers you could turn off the weapons drop for
any that are using a gun class that has replication problems when a human player has them.

Hell, at this point, I could have the troopers using an UnrealI.Rifle, but then dropping a Botpack.SniperRifle or anything else when they are killed.

Did I mention that the SwarmSpawner mutator will now spawn Actor classes? Not just Pawns.
It can now add and maintain a specific number of Ammo pickups and other classes on the maps.

But now I have even more testing to do...... :loool:

*EDIT - Just ran a few more tests online on my MegaTDM test server.

At the moment, on the TDM test server, I have the Troopers using a mix
of Botpack, UnrealI and UnrealShare weapons with zero issues.
Currently they do not drop a weapon.

I also have the new SwarmSpawner adding a OLweapons.olstinger and a OLweapons.olminigun to the game.
Players can pick those up and use them fine.
SwarmSpawner is also adding some ammo pickups for the stinger and olminigun.

Note OldSkool itself is not even loaded on the server.

Only config needed was to add OLweapons to the ServerPackages.

The fix to those weapons was done long ago, but I believe it had some conflicts with both the default UT checkreplacement stuff and
quite possibly with the main OldSkool mutator itself.

No major problems, errors or warnings noticed yet. (almost....No more than you might get occasionally with just the default UT guns)

Between turning off the horrible checkreplacement stuff in DMMutator and the fixes done by my new gametypes, I think a LOT
of other problems have been fixed.

Looking closer at this, I believe you should be running this UT2U1 mutator as the first mutator in your list, for ANY UT game you are going
to play, on or offline, with or without Monsters with or without extra guns. Things might run faster.

Think about this for a moment. In EVERY game of UT you have EVER played, the Base Mutator class has been wasting time doing this
checkreplacement thing for a considerable number of things that are NEVER in the game unless you are playing on maps you have
copied from Unreal. I am still somewhat amazed that Epic put that in there. It should have been a separate, optional checkreplacement type mutator.
blarg
JackGriffin
Godlike
Posts: 3776
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by JackGriffin »

I've only been half attentive to this as I've been mentally gearing up to switch to Unreal for the coop server. I get it now Loath. Looking at the base code you are right about all this. Clearing these errors so early will stop a whole cascade of dependent crap from ever causing problems now. This is seriously important work you are testing, I wonder if people really understand how much this could change the UT landscape?
So long, and thanks for all the fish
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by MrLoathsome »

I will have to change the "Break UT" name for this that shows up in the mutator list to something else for sure.

Slammed this thing as the first mutator in the list on my 2 coop servers tonight. Made zero changes to the current configs on either of them other
than this. They have both been running fairly stable for years and years.

These servers are running AFcore's custom Ecoop gametype controller. This extends the OldSkool coopgame2 gametype.
One of the 2 Ecoop servers is also running AKCoop enhancements and a slew of other shit.

This thing seems to have broken nothing. If anything, it just fixes errors that were missed by other mutators/mods that tried to fix the same
types of errors, while remaining 100% compatible with all of them.

Jack showed up on my AKcoop/Ecoop server 5 minutes after I added this beta UT2U1 mutator to the startup line, expecting it to break everything.
It broke nothing as far as I could tell. If anything, it seemed to be running much smoother than usual, at least from my LAN connection to it.
(But I am biased, and hoping for the best, more testers needed....)

Jack did report a bit of lag at first, but we are both pretty sure it was something else on his connection.
Inside of 5 minutes I had 4 players on the server. The other 2 players reported no lag spikes or other issues when I asked them.

Since this tweak runs server side only, they had no clue anything had changed on the server.
(UT ain't dead yet. Half the time when I want to test something new online, I have to kick somebody off the server or just bounce it
without letting them know. They almost always reconnect....)

More testing and tweaking to do still, but I am suspecting when I get done, UT and U1 will be basically merged.
If things keep working the way I want, you will be able to just copy all the Unreal Maps into your UT\Maps folder
and then play any of them. U1 objects and weapons will show up on your U1 maps, and UT will be the same as it ever
was. (Except faster.) via the next release of SwarmSpawner, you will be able to mix any UT and U1 classes you wish into games running any map.

@Jack. Don't rush to switch your coop server just yet... Don't start work on MH3, (or whatever the next version of that might be....), just yet either.
When I put all these things I am current playing with together and get some type of documentation done on it, you will want to have your new
coop controller and MH gametype extending what I have done.

This tiny mutator just fixes this one root problem.

The next version of swarmspawner fixes the issues with the skaarjtroopers and their weapons. (And does a LOT more optional stuff)

Those new gametypes I am still working on, fix the various scorekill and killed errors and other issues and also add features and optimize performance.
I will now have to double check that code to make sure it isn't doing things that are no longer needed if this UT2U1 code is running......

One last note, the log files are looking extremely good with this. Almost freaking clean. i.e. devoid of any warnings or errors. (Almost....)
blarg
User avatar
papercoffee
Godlike
Posts: 10531
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by papercoffee »

Do I understand it right ...this gem you are working on will merge UT with U1 in online play?
Or even offline at home?? What can the bog-standard common user expect?