• 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/

Beta Release [Mutator] Project One

Skell

Grizzled Veteran
Mar 21, 2013
1,242
2
On the Internet.
Project One:

Project One is a player-driven balance tool that gives the server owner complete control over all of the aspects of the mod itself using a straightforward ini file. This mod offers new features like faked players and modifiable max zeds as well as control over damage calculations and weapon properties in a variety of ways.

NOTE: VERSION 3 REQUIRES THE USAGE OF THE PROJECT ONE GAMEMODE FOR MOST OF ITS FEATURES.

NOTE: PLEASE UPDATE YOUR CONFIGURATION FILES WHEN MOVING BETWEEN VERSION 2 AND 3.

Command Line Entry:
Code:
?Mutator=ProjectOneV3.ProjectOneMut?Game=ProjectOneV3.KFGameInfo_ProjectOne
All of the following changes can be modified and/or disabled in the ini:


Features:

  • Grenade Chaining:
    • Should grenades detonate each other?
  • Teamwork Syringe:
    • Should it only take 1/2 of a syringe's charge when healing teammates?
  • Faked Players:
    • Set the number of faked players.
    • Choose if faked players should add to zed health.
  • Max Players Modifier:
    • Set the number of max players that can connect to the server.
      • Some code relies on this number to be accurate - if you change this number using another mod, make sure Project One's config is the same!
  • Max Zeds Modifier:
    • Want to increase the maximum number of zeds on a map?
    • Includes dynamic max zeds option - the more players, the more zeds!
  • Spawn Rate Modifier:
    • Do you find games too slow? Now you can speed up spawn rates globally!
    • If the server has an increased server capacity (modified max players), spawn rate increases as the server fills up!
  • No Zed Spawning Cooldowns: (NEW TO V3)
    • If Spawn Rate Modifier isn't fast enough for you, this option spawns zeds as fast as possible.
  • Disable Zed Teleportation: (NEW TO V3)
    • Disables all zed teleportation.
  • Extra Zed Health: (NEW TO V3)
    • Custom servers with more than 6 players can use this feature to scale body and head health up by a % for each player above 6.
  • Zed Speed Modifier: (NEW TO V3)
    • Modify the speed of all zeds by a configurable multiplier.
  • Custom Wave Data: (NEW TO V3)
    • You can now setup and use custom waves using your own custom KFAIWaveInfo archetypes!

Damage Modifiers:

  • Zed Health Mod List:
    • Adjusts the effective health of a zed. Reworked to be easy to use.
  • Damage Type Modifier List:
    • Affects the damage of a specific weapon.
  • Fleshpound Modifier List:
    • Affects the damage of a specific weapon on Fleshpounds.
  • Perk Modifier List:
    • Affects the damage of all weapons belonging to a specific perk.
  • Off-Perk Penalty:
    • Should off-perk weapons get a damage reduction?
    • How much less damage should they do?
  • Range Modifier List:
    • Affects the damage of shotgun weapons listed based on travel distance. If the player is not support, this bonus is halved. The bonus is calculated using a reverse S curve as seen here. (the graph takes a little while to load)
  • Fleshpound Beatdown Bonus:
    • Should a Fleshpound that is knocked down, stumbling, or EMP'd take extra damage?
    • How many times more?
  • Tipper Modifier List:
    • Affects the damage of melee weapons listed based on distance. The closer to a player the zed is, the less damage the weapon will do (reduction % is definable in the ini per weapon). An attempt to force berserkers to properly space themselves from zeds while attacking instead of mindlessly swinging.
  • Zed Damage Mod List:
    • Allows for the modification of damage output of specified zeds.


Property Modifiers:

  • Weapon Switch Speed:
    • Modifies weapon switch speed of all weapons to the time defined in the config file.
  • Knife Movement Speed Increase:
    • Should players get a little boost for running with their knife out? (KF1-style)


Chat Commands:All of these commands are done through chat (Say or TeamSay). You must be logged in as admin on a server to use them or in solo. These commands will take effect immediately once entered (during live gameplay).

  • !SetFakedPlayers <NUMBER>
    • Sets faked players to the integer specified by <NUMBER>. If <NUMBER> is left blank or 0, Faked Players will be disabled. It can be re-enabled by typing the chat command again with a number larger than 0.
  • !FakedHealthChangeOn and !FakedHealthChangeOff
    • These will turn on and off the mechanic where faked players can affect health.
  • !SetSpawnRateMod <DECIMAL NUMBER>
    • Sets the Project One spawn rate modifier to the decimal number specified by <DECIMAL NUMBER>.
  • !SetTraderTimeLeft <NUMBER> (NEW TO V3)
    • Set current trader wave's time left to number specified by <NUMBER>.
If you have bSaveCommandChanges set to true in your Project One config, these commands' changes will overwrite their original values in the config file - so be careful if you choose to enable bSaveCommandChanges (it's false by default)!


Debug:

  • Damage Debug:
    • If your config has bDamageDebug set to True, all damage will be printed to the server log and gives a detailed explanation of what damage modifiers are being used to calculate a result.
  • Weapon Debug:
    • If your config has bWeaponDebug set to True, any time a weapon's switch time is modified or a medic weapon's properties are modified, it will be printed to the log.
  • Faked Player Debug:
    • If your config has bFakedDebug set to True, any time the faked player system is interacted with, it will be printed to the log.

Download

Source Code

Steam Group
Opens the group up in steam.

Make sure to put the configuration file with the other server config files.


Configuration Information:
Spoiler!
 
Last edited:
nice; looking at your code, zed and player modifications aren't as tricky as I thought when using a game mode mod instead of mutator. That syringe workaround though :/ if only changing the numbers and recompiling actually worked for KFGame files... literally would just change like 3 numbers and save instead of making the function that modifies it (which is easy) and then needing a mod handler (not as easy).

Definitely like the boosted move speed with the knife. I'm interested to test balance in making a difference on movespeed when using certain weapons (example: using pistols, knife, or other light weapons makes you move faster).
 
Last edited:
Upvote 0
Every item has an encumberment multiplier so knife does make you move veeeerrryyy slightly faster. I've seen medics outrun things with knife out that I don't think they can normally outrun. Either way, after testing the faster movement with knife in-game, I gotta say, it makes the knife actually not useless to take out.
 
Upvote 0
Grenade chaining does not work for me either and Ive also tried multiple times.
Is it just me, or does the grenade chaining not work? I've tested the mutator, everything works fine except for the grenade chaining. And yes, I have checked if the grenade chaining value is false.
I just realized the way it's done doesn't work. I'll have a fix for this out later today along with another feature.
Can you add a health modifer for the zeds?
Use ZedModList to modify all sources of damage in to a zed since it'll change a zed's effective health. (EG if a zed takes 1/2 damage from all sources, its effective health is 2x its regular health).
 
Upvote 0
Version 1 is up. See the main post for the download link.

PLEASE UPDATE YOUR SERVER AS A WELL AS THE PROJECT ONE CONFIGURATION (.ini) FILES TO MATCH THE NEW VERSION.
SEE MAIN POST FOR COMMAND LINE CHANGES.


Change Log:

  • Fixed grenade chaining.
  • Removed distance config to grenade chaining.
    • Now set to a fixed 1.5m
  • Added melee weapon tipper damage modification.
    • Added explanation under Damage Modifiers in main post.
  • Braindead zeds will not be affected by the mod. Please use zeds with their proper AI controllers set to them.
Enjoy!
 
Last edited:
Upvote 0
Version 1 is up. See the main post for the download link.

PLEASE UPDATE YOUR SERVER AS A WELL AS THE PROJECT ONE CONFIGURATION (.ini) FILES TO MATCH THE NEW VERSION.
SEE MAIN POST FOR COMMAND LINE CHANGES.


Change Log:

  • Fixed grenade chaining.
  • Removed distance config to grenade chaining.
    • Now set to a fixed 1.5m
  • Added melee weapon tipper damage modification.
    • Added explanation under Damage Modifiers in main post.
  • Braindead zeds will not be affected by the mod. Please use zeds with their proper AI controllers set to them.
Enjoy!

Awesome, thanks for the update Skell.

Edit: How would I give a Zed a resistance? How would I write the code in the config file?
 
Last edited:
Upvote 0
Awesome, thanks for the update Skell.

Edit: How would I give a Zed a resistance? How would I write the code in the config file?
Unfortunately, that isn't supported by the mod.

The reason for this is that it would be very awkward to store in the ini. I can probably think of a way to make it possible - is this a feature you'd like to see?
 
Upvote 0
Unfortunately, that isn't supported by the mod.

The reason for this is that it would be very awkward to store in the ini. I can probably think of a way to make it possible - is this a feature you'd like to see?

Sure, but that wasn't what I meant. I meant I don't understand how to give a Zed more health (ZedModList). You already answered this, I'm just not sure what exactly to do. There's a video project I'm working on and I want the Gorefast to be more like a mini-boss type enemy. How would I write that in the config?
 
Last edited:
Upvote 0
Example of how to open the mod:
open kf-burningparis.kfm?Mutator=ProjectOne.ProjectOneMut? Game=ProjectOne.KFGameInfo_ProjectOne?difficulty=3

This can be entered in console for singleplayer or via management console in WebAdmin for multiplayer.

So I noticed when I input the command line through management control via webadmin, it processes, but when the map changes, the game returns to it's normal state. Is there anyway for the gamemode/mutator to be stacked/ permanent for the server (i.e. an "always start up this way" command line for online servers)?
At first I assumed it was done through the KFserver.bat but that doesnt seem like the case.

Im also curious on what the difference is between server actors and mutators. I can easily configure server actors through the KFgame.KFengine.ini but the mutators seems to be quite a hassle.
 
Upvote 0
Sure, but that wasn't what I meant. I meant I don't understand how to give a Zed more health (ZedModList). You already answered this, I'm just not sure what exactly to do. There's a video project I'm working on and I want the Gorefast to be more like a mini-boss type enemy. How would I write that in the config?
So if I wanted to boost up a Gorefast's effective health, I'd give it a ZedModList multiplier of a really small number.
Code:
ZedModList[0]=(MC=Class'KFGameContent.KFPawn_ZedGorefast',Multiplier=0.01,DebugName="Gorefast")
It's written this way because this mod tries to stick to modifying damage values for most of the work. In this case, all damage to gorefasts is reduced by 99%. It's run through and FCeil function so hopefully it'll always do a minimum of 1 damage.

Good luck on your project!
So I noticed when I input the command line through management control via webadmin, it processes, but when the map changes, the game returns to it's normal state. Is there anyway for the gamemode/mutator to be stacked/ permanent for the server (i.e. an "always start up this way" command line for online servers)?
At first I assumed it was done through the KFserver.bat but that doesnt seem like the case.

Im also curious on what the difference is between server actors and mutators. I can easily configure server actors through the KFgame.KFengine.ini but the mutators seems to be quite a hassle.
You need to use the new command line info for current version (look at the main post for the current command line info). That post you quoted is using the command line for the previous version. None of Project One stuff should be added under ServerActors as it should work normally through command line.
 
Upvote 0
So if I wanted to boost up a Gorefast's effective health, I'd give it a ZedModList multiplier of a really small number.
Code:
ZedModList[0]=(MC=Class'KFGameContent.KFPawn_ZedGorefast',Multiplier=0.01,DebugName="Gorefast")
It's written this way because this mod tries to stick to modifying damage values for most of the work. In this case, all damage to gorefasts is reduced by 99%. It's run through and FCeil function so hopefully it'll always do a minimum of 1 damage.

Good luck on your project!

Great, but I still have a question.

I've used this code on every Zed, and it works just fine. The only Zeds that don't seem to be affected by this are the Scrake, Fleshpound and Hans. It may be because I don't know their debug names, or they have a different code than the basic Zeds.

Thanks for the info by the way. Your mods are awesome.
 
Last edited:
Upvote 0
I've used this code on every Zed, and it works just fine. The only Zeds that don't seem to be affected by this are the Scrake, Fleshpound and Hans. It may be because I don't know their debug names, or they have a different code than the basic Zeds.
According to KFGameInfo_Survival, these are all the zed class references:
Code:
Clot: class'KFGameContent.KFPawn_ZedClot_Cyst'
Alpha Clot: class'KFGameContent.KFPawn_ZedClot_Alpha'
Slasher Clot: class'KFGameContent.KFPawn_ZedClot_Slasher'
Crawler: class'KFGameContent.KFPawn_ZedCrawler'
GoreFast: class'KFGameContent.KFPawn_ZedGorefast'
Stalker: class'KFGameContent.KFPawn_ZedStalker'
Scrake: class'KFGameContent.KFPawn_ZedScrake'
FleshPound: class'KFGameContent.KFPawn_ZedFleshpound'
Bloat: class'KFGameContent.KFPawn_ZedBloat'
Siren: class'KFGameContent.KFPawn_ZedSiren'
Husk: class'KFGameContent.KFPawn_ZedHusk'
Hans: class'KFGameContent.KFPawn_ZedHans'
 
Upvote 0