Summary
This mod reworks the Mayhem difficulty spawngroups to be a bit more interesting. The GenSec Elites now feel more formidable, as they're supposed to. The bullet-sponginess is toned down, to compensate. All of this is done in a serverside way, so only the host needs the mod. My Assault Spawngroups Restored mod is recommended, so shotgunners spawn more often.
Rationale
Mayhem is supposed to be an in-between of Death Wish and Overkill. When it was released, it felt barely easier than Death Wish. Now, it's the opposite. Despite using Death Wish's GenSec elites, their weapon stats are manually edited to be identical to Overkill. The specials aren't changed whatsoever (other than medics being slightly more common). So it ends up just feeling like Overkill if everything had double the health. This mod aims to make things feel a bit more interesting.
Changes
- The main spawngroups are changed. Each spawngroup now contains:
- Two lightly-equipped GenSec (Jackal SMG or Reinfeld 880). Roughly similar damage to Overkill.
- One FBI swat (tan, same enemy as Overkill difficulty). Wields a CAR-4 or Reinfeld 880. Same damage as Overkill.
- One heavily-equipped GenSec (JP36 or M1014). The JP36 does Death Wish damage (3x CAR-4). The M1014 is modified by this mod (on Mayhem only) to fire twice as fast, at the cost of slightly decreased damage. Overall, these guys should be a bit scarier.
- Shield groups have the lightly-equipped gensec accompanying them. Might change this.
- Tasers and bulldozers are now accompanied by two lightly-equipped Gensec, rather than being alone.
- Skulldozers, in all their glory, now spawn on the difficulty, as they should have all this time. Be afraid.
- Health has been toned down. Compared to Overkill, health is only a 50% increase instead of 100%. This is similar to how Overkill has a 50% increase compared to Very Hard.
- FBI swat (Overkill light enemies) is made immune to knockdown from heavy damage, like the GenSec Elites. This is mainly for alternative factions.
Alternative Factions
Obviously, being serverside, I cannot create exact equivalents of some of these enemies, if those factions don't have them. Here is my approach. Note that regardless of faction, skulldozers (or their equivalent) have been added, health is changed, and FBI swat is immune to heavy damage knockdown.
- Russia: No changes (other than the above). In the base game, the AKs used by the russia faction actually deal higher damage on Mayhem than on Overkill (which is already double what CAR-4 rifles deal). I think this is balanced fine enough, plus I wouldn't really have any alternative units to use anyway.
- Zombie: The FBI swat is still immune to heavy damage knockdown, which changes this one's difficulty a bit, but this is only because it would be annoying to code an exception for this faction. This faction was always messed up for any difficulty above Overkill so I don't really care.
- Murkywater and Federales: Federales don't have an equivalent to the Jackal-wielding Elites, and while Murkywater does, they look like heavies which would be confusing. Instead, I use the Overkill-tier light swat enemies that wield CAR-4s. They deal similar damage, and the modification made above means that they function very similarly to Jackal-wielding Gensec Elites. Unfortunately, I cannot make an equivalent of the M1014-wielding shotgunners in a way that is easily telegraphed to the player, so the shotgun groups will be a little easier.
Special Thanks
Thanks to ZeroTheLetter for helping test in a non-singleplayer environment, and rowen/necrolavigne for helping me with the thumbnail <3


Do the changes to the NPC M1014 actually sync to other clients?
Cause I wanna use that code myself for my own mod.
I believe it should, from my understanding the host simulates damage and sends it to all other clients.
Alright. I consulted a more experienced modder friend of mine and it seems that no it does actually cause desync so I will patch this at some point. Will probably just remove the damage penalty and keep it otherwise the same.
@staryoshi06 Though you could probably achieve the same effect you wanted with GenSec Heavies by repurposing a ZEAL Heavy Marksman and giving him a Jackal and Bronco. Just make sure you change their tweak table name to
heavy_swat
(Hook this to copbase.lua)
if Network:is_client() or StreamHeist then --Leftover from when Moon/Miki made this for me return end local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" --[[ difficulties and corresponding internal names, follows the format below in-game difficulty name / internal name / difficulty index (Thanks, Miki) Easy / easy / 1 (easy is unused) Normal / normal / 2 Hard / hard / 3 Very Hard / overkill / 4 Overkill / overkill_145 / 5 Mayhem / easy_wish / 6 Death Wish / overkill_290 / 7 Death Sentence / sm_wish / 8 ]] local weapon_mapping = { easy_wish = { [Idstring("units/pd2_dlc_drm/characters/ene_zeal_swat_heavy_sniper/ene_zeal_swat_heavy_sniper"):key()] = {"ump", "raging_bull"} } } local tweak_mapping = { easy_wish = { heavy_swat_sniper = "heavy_swat" } } tweak_mapping.overkill_290 = clone(tweak_mapping.easy_wish) --ignore this Hooks:PreHook( CopBase, "post_init", "weapon_changes_idk", function(self) local weapon_tweak = weapon_mapping[difficulty] and weapon_mapping[difficulty][self._unit:name():key()] if weapon_tweak then self._default_weapon_id = type(weapon_tweak) == "table" and table.random(weapon_tweak) or weapon_tweak or self._default_weapon_id end local unit_tweak = tweak_mapping[difficulty] and tweak_mapping[difficulty][self._tweak_table] if unit_tweak then self._post_init_change_tweak_name = unit_tweak end end ) Hooks:PostHook( CopBase, "change_char_tweak", "thanks_overkill_change_char_tweak", function(self, tweak) if not (Global.game_settings and Global.game_settings.single_player) then managers.network:session():send_to_peers_synched("sync_change_char_tweak", self._unit, tweak) end end )
iirc this SHOULD sync with other clients.
Alternatively, if you don't want ZEALs below Death Sentence, replace
fbi_heavy_swat
withheavy_swat
on Mayhem, and give a GenSec Heavy Rifleman a UMP.@tangerinepaint Oh huh, you can network tweak changes? That's interesting.
@staryoshi06 As a follow-up to that last sentence about changing GenSec Heavies, replacing
fbi_heavy_swat
withheavy_swat
shouldn't affect the usage stats of rifles and shotguns, only other weapons such as Pistols, SMGs, and Revolvers.