It now works with U1 227.
Code: Select all
5:03 PM 7/12/2016 - SwarmSpawn v2.0 - Final. By MrLoathsome
Mutator spawns Actors into your games. (Most of them, Most actors and Most games...)
Can also make almost any change that you could do with a Set command.
Install: Place all the int, ini and u files into your UnrealTournament/System directory.
Use: Select mutators "Loathsomes UT Tweak" (UT2U1), and SwarmSpawn v2.0 and play.
*Make sure the Loathsome UT Tweak is first in the mutators list.
**The Loathsomes UT Tweak is only required for this when you are spawning U1 weapons or Pickups/Inventory.
(Although if you are running UT you should use it all the time. It is not needed for U1/227.)
The SwarmSpawn code has been completely reworked for v2.0.
Too many optimizations to list. (Again...)
It will now skip over bad lines or lines with bad classes in the ini and continue processing the file.
-----------------
*Changes for v2.0 Final:
Now only supports up to 64 SwarmInfo lines in the ini.
(With 16 optional SSet= variables for each.)
5 SwarmSpawn "Clones" are included. (SSx2 - SSx6)
SwarmSpawn can spawn those if you need more than 64 lines and/or different
CheckRate settings for multiple config files.
Many improvements to the info provided in your logfile if bDebugMode=True
bRandMode option added.
Can now spawn multiple functioning mutators.
The SDS option for each line will now also adjust the PickupViewScale option if applicable.
-----------------------------
Basic SwarmSpawn.ini file configuration example:
---------
[SwarmSpawn.SS]
CheckRate=3.33 // Checks one active swarm every 3.33 seconds. Valid range varies upon the size of your list....
bDebugMode=True // Will dump a LOT of info into your log file. Recommend set False once your ini file is working.
bRandMode=False // Randomly check the list of "Active" swarms after all Init processing is complete. (If True...)
SwarmInfo[0]=(SwarmClass="Botpack.SuperShockRifle",Qty=2,bSpawnOnce="True",SSet0=(SName="Respawntime",SVal="2.0"))
SwarmInfo[1]=(SwarmClass="UnrealShare.Cow",Qty=4,SSet0=(SName="LifeSpan",SVal="120.0"))
SwarmInfo[2]=(SwarmClass="UnrealShare.Barrel",Qty=4)
SwarmInfo[3]=(SwarmClass="UnrealI.Pupae",Qty=6,SDS=0.60,bHorde="True")
--------
SwarmInfo[0] in this example will spawn 2 SuperShockRifle's at random locations on the map. The bSpawnOnce option should
be set True for most weapons or other pickups. That way they will respawn at the same location for
the duration of the level, and will also be excluded from the list of items to check for respawning by the
mutator. The optional SSet0= variable sets them to respawn in 2 seconds.
SwarmInfo[1] will spawn NaliCows, 1 each pass thru the list. The optional SSet0= entry there
makes them vanish after 2 minutes. (Sorta like MonsterSpawn, but without the sound/visual effects.)
SwarmInfo[2] will spawn wooden barrels. When they get destroyed, SwarmSpawn will add them back at a random location.
SwarmInfo[3] will spawn swarms of 6 pupae at a time. They will be at 60% of normal pupae size. (SDS = SwarmDrawscale)
The bHorde="True" option will cause the mutator to try and spawn the entire QTY in one group. Or as many as are needed, if some
are still surviving from the previous spawn.
Recommend keeping SwarmInfo.Qty LESS than 250. Higher values can fool the engine into thinking infinite loops are happening.
(Which they aren't....)
If you want more than 250 spawned, use 2 or 3 lines to add them.
*Spawning mutators.
In order for this to successfully spawn a mutator class and get it added to the mutator chain correctly you
must have that SwarmInfo line written like this:
SwarmInfo[8]=(SwarmClass="BN4.BN",Qty=1,bSpawnOnce="True",bIsMut="True")
SwarmInfo[9]=(SwarmClass="BMSG.BM",Qty=1,bSpawnOnce="True",bIsMut="True")
SwarmInfo[10]=(SwarmClass="SSx2.SS",Qty=1,bSpawnOnce="True",bIsMut="True")
You MUST have bSpawnOnce="True",bIsMut="True" options set in the line for this to work.
Note included SSx2 and SSx3 examples. (SSx4, SSx5, and SSx6 mutators also included, but no ini files....)
The SSxN "clone" mutators are IDENTICAL to SwarmSpawner, except for the name, and the name of its ini file.
Has to be done this way. If you try to use SwarmSpawner to spawn a copy of itself, the results are not good.
Each copy needs to have its own, private ini file.
If you need even MORE options for CheckRates/lists etc do the following:
1. Copy the SSx2 folder to SSx7 (or whatever)
2. Edit the SS.u file in the Classes folder. Do 1 global Find/Replace. Replace "SSx2" with "SSx7".
3. Save the file and compile.
You now have another copy of the thing that you can spawn with the others.
If you play around with running multiple copies of it in this way, be SURE that you do not
configure your ini files in such a way as to create a loop. (You will find out quick if you do....)
The bReplace option:
SwarmSpawner now also includes a global replace option. It will also allow you to adjust settings
for your replacement actor/class.
Your SwarmClass will be the replacement class. The value for SName in SSet0 will be the name of the class you are replacing.
You can use the other optional SSet entries to adjust settings for the replacement class.
These 2 lines will replace all RocketLaunchers and Rocket ammo on the level with Stingers and Stinger Ammo:
SwarmInfo[0]=(SwarmClass="UnrealShare.Stinger",Qty=0,bSpawnOnce="True",bReplace="True",SSet0=(SName="Botpack.UT_Eightball",SVal=""))
SwarmInfo[1]=(SwarmClass="UnrealShare.StingerAmmo",Qty=0,SDS=0.750,bSpawnOnce="True",bReplace="True",SSet0=(SName="Botpack.RocketPack",SVal=""),SSet1=(SName="bRotatingPickup",SVal="True"))
You do want to set Qty=0,bSpawnOnce="True",bReplace="True" for this to work.
Be sure you do not have SwarmSpawner adding classes that you are also replacing via another mutator or SwarmSpawner
itself. If you do this, you may end up with LOTS of extra actors. This can be avoided by configuring your ini
files correctly.
Included example ini files:
SwarmSpawn.ini - This will spawn 4 U1 bots into your game and attempts to get their names set.
It also loads 3 mutators. BadNews4, a slightly updated version of BMSG.BM and SSx2.
SSx2 spawns a few items on its timer, and also makes a few minor gun adjustments and replaces the RocketLaunchers and Ammo with Stingers.
And also loads the SSx3 mutator.
SSx3 contains 4 lines that will adjust the ammo used by all stingers on the map every 10 seconds.
SwarmSpawn_SkaarjWeaps-UT.ini - This will add 5 Skaarj with UT guns and 5 Skaarj with U1 guns into your game.
SwarmSpawn _SkaarjUTWeaps_227.ini - This is for use with Unreal 227. This adds 5 Skaarj with UT guns into your U1 game.
SwarmSpawn_Zombies5.ini - Adds a bunch of Zombies to your game if you have the Zombies5 package.
SwarmSpawn_Titans.ini - Attempts to get 24 Titans of various sizes into your maps. This is a good test of the performance increase with
this latest SwarmSpawn version.
Enjoy!
The feedback has been a huge help in getting this finished up.