• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

[Mutator] end wave Bonus Stage/Boss Time

King Sumo

Grizzled Veteran
Jan 8, 2011
503
15
Brazil
www.youtube.com
MAIN MUTATOR FEATURES:

- Configurable Monster Squads: main monster squads, special squads, end boss and etc - total control of the KF spawn system, everything via WEBADMIN (screenshot here);

- Multiple Bosses in the Final Wave: you can add multiple Bosses in the end game, like Normal Patriarch, Hard Patriarch then CyberDemon :)

- Configurable Monsters: change health/speed/damage/etc (screenshot here);

- Monster Aliases: create specimen variations (e.g. super fast crawlers, stronger FPs to fight in the Boss Time etc)

- Add New Monsters: additional monsters can be added via Monster Configuration tab and then configured to appear in any Wave. For instance, you can add Shiver in monster tab then insert this monster in some squad at any wave.

- Bonus Stage:
The bonus stage is started when the wave ends (before trader time), the server sets godmode and 500hp (to increase player speed) for all players. Top killer wins LOADS OF MONEY! :)
Killing Floor Bonus Stage Mutator - YouTube

- Boss Time:
The boss is spawned when the wave ends (before trader time). You can set any specimen as boss (for instance: a crawler with 100x health eheheh).
In the video I have configured 8 fleshpounds with 15x health and 10% less speed. Notice the pipebomb stockpilling - the first FP survived 8 pipes :)
Killing Floor Boss Time Mutator - YouTube

Additional configurations are available in the WebAdmin interface under KFBossSquad group.
See some details in the below video:
http://youtu.be/nBidpVThcRI
(Watch in HD OFC)

Using this mutator you have TOTAL CONTROL of the monsters squads. There is no need to use any mutator to add monsters.
All monsters squads can be configured via WebAdmin. Today the mutator is shipped with default squads.
BTW, don't use any mutator to add monsters, instead you must use the Squads WebAdmin frame shown above. Insert your monster in some squad (or create a new squad) then have fun.
If you insert a new monster (from a NEW package) be sure to restart the server before playing - otherwise the monster will be INVISIBLE when spawning!

In the Monster Configuration tab you can scale the monster health/speed/damage. In this tab you can create new monster aliases which can be used in the 'Bonus Stage' or 'Boss Time' (or during the normal waves as well).
For instance: you can create a Clot with 3x speed which can be used in Bonus Stage. Or, you can create a FleshPound with 5x health which can be used in Boss Time.
Or, simply you can do little adjustments to speed/health/damage... For instance: if you want that all fleshpounds have 10% more health then you can set "Body health multiplier" to 1.10 (the same for "Head health multiplier").

If you don't want BonusStage/BossTime just leave the "Boss squad" configuration empty. For BossTime the "Player Count Scale" increases the number of specimens according to the formula: 1 + (NumPlayers - 1) * PlayerCountScale[WaveNum];
(for instance: if players=3 and scale=0.5 then multiplier=2)
If you want to spawn Large Bosses (such CyberDemon) add they in the "LargeBoss squad" configuration.
To select between normal bosses and large bosses use "mutate makebig" or "mutate makesmall" (like in Doom3 mut).

If "Boss Time monster teleport" is enabled (teleport effect during Boss Time) then it is required to install the Marco's Doom3 mutator.
Only the assets are used, you don't need to enable the Doom3 mutator (and must not enable). I'm using the Doom teleport effect during Boss Time :)
If the teleport effect is disabled the Doom3 mutator files aren't used at all (then you don't need a REDIRECT server for this files).

- Installing:
(installs instructions video available in this link, click here. - watch in HD OFC)
1. Download the Marco's Doom3 mutator (Doom3KF.rar) - OPTIONAL;
- http://forums.tripwireinteractive.com/showthread.php?t=51253
2. Download the KFBossSquad mutator;
(see attached files)
3. Extract both files into KF dedicated server root folder
(I'm using 7-zip - http://www.7-zip.org/)
4. Edit the server startup line (KF_Server_Launcher.bat):
game: "KFBossSquad.BSGameType"
add the mutator: "KFBossSquad.KFBossSquad"
For example:
Code:
ucc server KF-westlondon.rom?game=KFBossSquad.BSGameType?VACSecured=true?MaxPlayers=6?AdminName=Admin?AdminPassword=123?Mutator=KFBossSquad.KFBossSquad -log=server.log
5. Launch the server and access the webadmin (webadmin must be enabled in killingfloor.ini):
http://127.0.0.1:8075/

Known restrictions:
- Only long game is supported today;
- For event zeds you must manually adjust the class names;
- Notice this mutator uses a custom GameType (BSGameType), so you can't use this with other GameType's!!!

If you find some bug, or you are having some difficulties setting up the mutator please PM me!

Developers welcome:
https://github.com/kingsumos/KFBossSquad

- Change Log
v0.4:
- Added dynamic MaxZombiesOnce;
- Fixed bug in the 'alias' system (CRITICAL, upgrade ASAP!);
v0.3:
- Updated configuration file (KF v1060)
v0.2:
- Doom'3 package is now optional;
- Configurations options added in WebAdmin.
 

Attachments

  • KFBossSquad-0.4.zip
    67.2 KB · Views: 47
Last edited:
good idea man.

my recommendation:
make players multiplier. cause its not good if 8 FleshPounds for 1 player and 8 fleshpounds for 30 players... big difference... you need players multiplier 100%

you can get number of players two ways:

1. bad way cause if server use FakedPlayers it will give RealPlayers+FakedPlayers result
Code:
KFGameType(Level.Game).NumPlayers

2. Good way, gives only real number of players
Code:
// Returns the number of REAL players
function float GetNumPlayers()
{
	local int NumPlayers;
	local Controller C;
	For( C=Level.ControllerList; C!=None; C=C.NextController /*&& C.Pawn.Health > 0*/ )
	{
		if( C.bIsPlayer /*&& C.Pawn!=None*/ )
		{
			NumPlayers++;
		}
	}
	return NumPlayers;
}
----
SO how it will look:

for bonus stage you have this configurators:
- which specimens will be spawned;
- health/speed multiplier of specimens;
- which wave the bonus stage is started;
- bonus stage duration time;
- maximum specimens once;
- award cash amount

you can make in config file nPlayersMultiplier for next configurators:
- health/speed multiplier of specimens;
- maximum specimens once;

so in config you will have:
[BonusStage]
BS_HPMult=2.0
BS_SpeedMult=1.3
BS_HPPlayersMult=1.2
BS_SpeedPlayersMult=1.0 // no multiply

and in code:
KFMonster.Health = KFMonster.default.Health * BS_HPMult * (BS_HPPlayersMult * nPlayers)
----
for [Boss Time] - the same thing:
[BossTime]
BT_HPMult=2.0
BT_SpeedMult=1.3
BT_HPPlayersMult=1.2
BT_SpeedPlayersMult=1.0 // no multiply

BOSS.Health = BOSS.default.Health * BT_HPMult * (BT_HPPlayersMult * nPlayers)
 
Last edited:
Upvote 0
thanks for the feedback guys!

Sorry I forgot to post... The number of players multiplier for the Boss Time is already implemented. The code is based on the NumPlayersHealthModifer() from KFMonster:
Code:
Modifier += (NumPlayers - 1) * PlayerCountScale[Wave];
(numplayers is evaluated from the ControllerList when the Boss Time stats)

For instance: if we have 8 players and PlayerCountScale=0.5 then the multiplier is 3.5. Then if we have configured 2 fleshpounds then during Boss Time 7 fleshpounds will be spawned.
(notice we can set a different multiplier value for each wave)

So only the person who killed the most gets cash?
During Bonus Stage a player can easily kills about 200 specimens (giving a duration of 3 minutes). So the player already gets LOUDS OF MONEY :D
But I like the idea of adding an additional per kill cash award. So then we have two configuration settings:
- BS_Cash : top killer award cash
- BS_PerKillCash : cash per kill
(the administrator can set the value to zero to disable either award cash or per kill cash)

thanks!
 
Upvote 0
I use .bat host game this mut can't work no monster release in bonus stage :(
would you fix it
please

Code:
@echo off
:: batch title and logs
title=Killing Floor Server
set "_runStat="
set _servBat=KFserver
set _servLog=.\logs\%_servBat%.bat.log
set _gameLog=.\logs\%_servBat%.log

:: server command line

set _gameCmd=ucc server KF-KillerBeta2_0Beta.rom?game=KFmod.KFGameType?VACSecured=true?Mutator=KFBossSquadB1.KFBossSquad,ServerPerksV4b.ServerPerksMut,KFARGBuchonOPQ.KFARGBuchonOPQ,MutKillMessageV2.MutKillMessage,KFARGChat.KFARGChat,MutWeight.MutWeight,KFModsAllTraders.MutAllTradersEnabled,MutMoney.MutMoney,KFGameSpeed.MutKFGameSpeed,MutHealth.MutHealth,MutRegen.MutRegen,ModsChatter.MutChatter,ModsRTD.MutRTD,SmackEmBack.MutSmacks,AdminPlus_v2b.MutAdminPlus,MutArmor.MutArmor,KFChaingunTurret.KFChaingunTurret,ServerAdsSE.ServerAdsSE,ZombieDay.ZombieDay,ZombieDay.Doom3Mutator,MutKFAntiBlocker.MutKFAntiBlocker,MutSlotMachineb.MutSlotMachineb,KFMaxPlayers.KFMaxPlayers,KFBots.KFBotsMut,AutoSpawnerB.AutoSpawnerB?MaxPlayers=30?Difficulty=15 ini=KillingFloor.ini -lanplay -server
set _gameCmd=%_gameCmd% -log=%_gameLog%

echo ::
echo :: This batch will autorun %_servBat%.
echo :: -to restart %_servBat%, end the ucc server task.
echo :: -to shut down %_servBat%, ctrl-c or close this window.
echo ::

if exist ucc.exe (echo :: %_servBat% initializing...) else (echo :: ucc server not found! & echo :: This batch is to be run in the KF system directory. & goto:eof) 

:: log server start/create batch log

echo ::
echo :: Output logged to %_servLog%
if exist %_servLog% (echo ::%_servBat% Start:: >>%_servLog%) else (md logs & echo ::%_servBat% Start:: >%_servLog%)
echo %_gameCmd% >>%_servLog%

:: start/restart server

:start

:: backup last server log

echo ::
echo :: Backup %_gameLog:.\logs\=%...
set _logTime=%_servBat%-%date:~12,2%%date:~4,2%%date:~7,2%-%time:~0,2%%time:~3,2%%time:~6,2%.log
set _logTime=%_logTime: =0%
if exist %_gameLog% (ren %_gameLog% %_logTime% & echo :: %_logTime% & echo :: Backup complete.) else (echo :: No log to backup.)
echo ::

:: log batch restart

if defined _runStat (echo :: Restart %_servBat%)
echo :: %date%
echo :: %time: =0%
echo ::
if defined _runStat (echo :Restart %_servBat%: >>%_servLog%)
if exist .\logs\%_logTime% (echo %_logTime% >>%_servLog%) else (echo No log to backup. >>%_servLog%)
echo %date% >>%_servLog%
echo %time: =0% >>%_servLog%
set "_logTime="

:: run the server

call %_gameCmd%
set _runStat=1

:: restart on exit/error

goto start
::
 
Upvote 0
Check the killingfloor.ini
1. you need to add the ServerPackages lines (according to the post #1);
2. start the server, open webadmin then change some configuration - by doing this the "KFBossSquadB1.BSGameType" section will be created in the killingfloor.ini so you can proceed with the step 3:
3. Notice the bonus stage will be started in wave 5 (in the other waves we have the "boss time").
I notice you have a plenty of mutators enabled. Perhaps some mutator is changing the GameType? Try disabling some mutators...
"Boss Time" is working?
Anyway, please PM to me the ucc.log.
:IS2::IS2::IS2:

EDIT:
PS.
1. what are those mutators stands for?
- ZombieDay.ZombieDay
- ZombieDay.Doom3Mutator
2. I notice you have a modified version of the AutoSpawner, what modifications were done?
(if you provide a download link will be good)
thanks
 
Last edited:
Upvote 0
Please help....I can't seem to get it to work. I tested using LISTEN server only. I already add to killingfloor.ini all server packages. how can i add "KFBossSquadB2.KFBossSquad" to mutator list correctly? I only edited KFBossSquadB2.KFBossSquad.ucl, since there is a mutator inside and missing some GroupName....Should I make a separate Mutator?


Also I didn't add Shiver,Brute & Jason to the mutator list, but they didn't spawn (added them only in server packages in killingfloor.ini)
 
Upvote 0
I managed to make it work in LISTEN server. How can I change the boss time zeds? Can you please send me a sample of custom boss time zeds? I would like to put 1 Fleshpound as wave 1 boss.I tried creating KFBossSquadB2.ini but it didn't work.
Can you please correct my conf.arrays?Anyone? Thanks!!!
[KFBossSquadB2]
BonusStageNumMonsters=300
BonusStageTime=2
BonusStageMaxMonsters=28
BonusStageCash=5000
Zombies=(Base="KFChar.ZombieClot",Boss="BZombiesB2.BClot")
Zombies=(Base="KFChar.ZombieCrawler",Boss="BZombiesB2.BCrawler")
Zombies=(Base="KFChar.ZombieGoreFast",Boss="BZombiesB2.BGoreFast")
Zombies=(Base="KFChar.ZombieStalker",Boss="BZombiesB2.BStalker")
Zombies=(Base="KFChar.ZombieScrake",Boss="BZombiesB2.BScrake")
Zombies=(Base="KFChar.ZombieFleshpound",Boss="BZombiesB2.BFleshPound")
Zombies=(Base="KFChar.ZombieBloat",Boss="BZombiesB2.BBloat")
Zombies=(Base="KFChar.ZombieSiren",Boss="BZombiesB2.BSiren")
Zombies=(Base="KFChar.ZombieHusk",Boss="BZombiesB2.BHusk")
Zombies=(Base="Shiver014.ZombieShiver",Boss="BZombiesB2.BShiver")
Zombies=(Base="Jason_Vorhees.ZombieJason",Boss="BZombiesB2.BJason")
Zombies=(Base="KFBruteFinal_014.ZombieBrute",Boss="BZombiesB2.BBrute")
Squads=(ZedClass=("BZombiesB2.BFleshPound"),NumZeds=(1))
Squads=(ZedClass=("BZombiesB2.BScrakeMBZombiesB2.BFleshPound"),NumZeds=(2,1))
Squads=(ZedClass=("BZombiesB2.BClot","BZombiesB2.BBloat"),NumZeds=(4,1))
Squads=(ZedClass=("BZombiesB2.BShiver","BZombiesB2.BGoreFast"),NumZeds=(4,2))
Squads=(ZedClass=("BZombiesB2.BHusk","BZombiesB2.BSiren"),NumZeds=(3,1))
Squads=(ZedClass=("BZombiesB2.BClot","BZombiesB2.BCrawler"),NumZeds=(5,5))
Squads=(ZedClass=("BZombiesB2.BBrute"),NumZeds=(1))
Squads=(ZedClass=("BZombiesB2.BScrake"),NumZeds=(1))
Squads=(ZedClass=("BZombiesB2.BFleshPound"),NumZeds=(1))
Squads=(ZedClass=("BZombiesB2.BFleshPound"),NumZeds=(2))
 
Upvote 0
Also I didn't add Shiver,Brute & Jason to the mutator list, but they didn't spawn (added them only in server packages in killingfloor.ini)
that's ok

change:
[KFBossSquadB2]
to:
[KFBossSquadB2.BSGameType]

or, login via WebAdmin then change some configuration (e.g. change the maplist) then close the server. This will create the default settings for the KFBossSquad mutator (i.e. [KFBossSquadB2.BSGameType] group) in killingfloor.ini.

Thanks for pointing out the buggy .ucl file (missing GroupName in the mutator line)! I'll try to fix this in the next beta release.
 
Upvote 0
Thanks KingSumo. I manually added it to KillingFloor.ini, and it works!

I also managed to add a doom monster. I can customize what boss I want. Now that's amazing!!! Thanks again!

[KFBossSquadB2.BSGameType]
BonusStageNumMonsters=300
BonusStageTime=60
BonusStageMaxMonsters=28
BonusStageCash=5000
Zombies=(Base="KFChar.ZombieClot",Boss="BZombiesB2.BClot")
Zombies=(Base="KFChar.ZombieCrawler",Boss="BZombiesB2.BCrawler")
Zombies=(Base="KFChar.ZombieGoreFast",Boss="BZombiesB2.BGoreFast")
Zombies=(Base="KFChar.ZombieStalker",Boss="BZombiesB2.BStalker")
Zombies=(Base="KFChar.ZombieScrake",Boss="BZombiesB2.BScrake")
Zombies=(Base="KFChar.ZombieFleshpound",Boss="BZombiesB2.BFleshPound")
Zombies=(Base="KFChar.ZombieBloat",Boss="BZombiesB2.BBloat")
Zombies=(Base="KFChar.ZombieSiren",Boss="BZombiesB2.BSiren")
Zombies=(Base="KFChar.ZombieHusk",Boss="BZombiesB2.BHusk")
Zombies=(Base="Shiver014.ZombieShiver",Boss="BZombiesB2.BShiver")
Zombies=(Base="Jason_Vorhees.ZombieJason",Boss="BZombiesB2.BJason")
Zombies=(Base="KFBruteFinal_014.ZombieBrute",Boss="BZombiesB2.BBrute")
Zombies=(Base="Doom3KFBeta4.HunterHellTime)
Squads=(ZedClass=("Doom3KFBeta4.HunterHellTime"),NumZeds=(3),Healthscale=(1),Speedscale=(2))
Squads=(ZedClass=("BZombiesB2.BScrakeMBZombiesB2.BFleshPound"),NumZeds=(2,1))
Squads=(ZedClass=("BZombiesB2.BClot","BZombiesB2.BBloat"),NumZeds=(4,1))
Squads=(ZedClass=("BZombiesB2.BShiver","BZombiesB2.BGoreFast"),NumZeds=(4,2))
Squads=(ZedClass=("BZombiesB2.BHusk","BZombiesB2.BSiren"),NumZeds=(3,1))
Squads=(ZedClass=("BZombiesB2.BClot","BZombiesB2.BCrawler"),NumZeds=(5,5))
Squads=(ZedClass=("BZombiesB2.BBrute"),NumZeds=(1))
Squads=(ZedClass=("BZombiesB2.BScrake"),NumZeds=(1))
Squads=(ZedClass=("BZombiesB2.BFleshPound"),NumZeds=(1))
 
Upvote 0
what an amazing mod, well done Sumo
thanks!!!

Is it possible to add boss brute/shiver?
Yes, shiver and brute are already the default boss for waves 3 and 6 respectively.
In wave 3 we have a squad of 4 shivers + 2 gorefasts (health is increased 15 times + and the speed increased 40%). This is for 1 player. For 6 players we have 12 shivers + 6 gorefasts (the health also increases).

Edit: any chance for white?
I guess it is impossible to whitelist this mutator (because of godmode during bonus stage). Also someone can setup 10000 stalkers as boss with 1hp, ehehehhe

Zhidd,
To use the Doom3KFBeta4 monsters we need to create a separate package. If we don't do that then the monster HP/Speed will increase every wave/server restart. This can be avoided if you set the health/speed multiplier to 1, or if you restart the server every game.

This package will just extend every doom monster (like in the BZombiesB2 package) for instance:
class BHunter extends HunterHellTime;
Then in the configuration we add:
Zombies=(Base="Doom3KFBeta4.HunterHellTime",Boss="BDoom.BHunter")
Squads=(ZedClass=("BDoom.BHunter"),NumZeds=(1))
 
Upvote 0
Thanks again King Sumo!

I tested multiple boss zeds, healthscale and speedscale but it didn't work.The first boss are 3 scrakes only, Boss9 (Karimu & Meatpounder) was skipped, all others were ok. Health & Speed auto default to 1.0

Can you check my conf pls?TIA

Squads=(ZedClass=("BZombiesB2.BFleshPound,BZombiesB2.BScrake"),NumZeds=(3,2))
Squads=(ZedClass=("Doom3KFBeta4.Cyberdemon"),NumZeds=(2))
Squads=(ZedClass=("Doom3KFBeta4.Vagary"),NumZeds=(3))
Squads=(ZedClass=("Doom3KFBeta4.MiniPat"),NumZeds=(2))
Squads=(ZedClass=("Doom3KFBeta4.MiniPat"),NumZeds=(1))
Squads=(ZedClass=("KFOldModb.ZombieFleshpoundold"),NumZeds=(5))
Squads=(ZedClass=("BZombiesB2.BBrute"),NumZeds=(1))
Squads=(ZedClass=("BZombiesB2.BScrake"),NumZeds=(1))
Squads=(ZedClass=("rot.RotZombieKarimu,WTF.WTFZombiesMeatPounder"),NumZeds=(1,1))
Squads=(ZedClass=("Doom3KFBeta4.maledict"),NumZeds=(1))
 
Upvote 0
I guess it is impossible to whitelist this mutator (because of godmode during bonus stage). Also someone can setup 10000 stalkers as boss with 1hp, ehehehhe
You could make V2 which:
- turns out godmode but adds you always full vest which disappears when bonus stage ends
- makes bonus stages work only if you finnished wave VERY quick, let's say, in 2 minutes, but depending on waves ofc, as wave 10 can never be finnished before 2 minutes
- FORCES spawns, I mean by that that the bonus stages will have the zeds you will force, without possibility to change values of hp, speed etc ;)
 
Upvote 0
zhidd, you forgot to put the double quotes...
instead of:
Squads=(ZedClass=("BZombiesB2.BFleshPound,BZombies B2.BScrake"),NumZeds=(3,2))
do:
Squads=(ZedClass=("BZombiesB2.BFleshPound","BZombies B2.BScrake"),NumZeds=(3,2))
(remove the spaces)
do the same for Karimu & Meatpounder... have fun :)

BenioX, thanks for the suggestions :) We need to ask TWI about the possibility to whitelist this stuff, because this will take some time to implement - the window to implement this is short, now I guess the window is less then one week (see this) - or we need to wait several months for the whitelisting...
Thanks
 
Last edited:
Upvote 0
BenioX, thanks for the suggestions :) We need to ask TWI about the possibility to whitelist this stuff, because this will take some time to implement - the window to implement this is short, now I guess the window is less then one week (see this) - or we need to wait several months for the whitelisting...
Thanks
if I were you I'd not wait and I'd hurry and give it to whitelist asap :p
 
Upvote 0