Fallout New Vegas

File information

Last updated

Original upload

Created by

migck

Uploaded by

miguick

Virus scan

Safe to use

About this mod

Fixes several problems at the core level with how ammo scripts and effects work, plus some tweaks for consistency and fun.

Requirements
Permissions and credits
Changelogs
AMMO SCRIPT FIXES
An attempt to fix how ammo effects and scripts are handled by the game.

The main issue with ammo effects altogether is that these effects are applied just for having that ammo loaded, NOT when the ammo in question impacts the target. This means that having Hollow Point ammo loaded will apply its damage bonus and DT penalty to targets that trigger your mines, for example. This is also why you see the damage of weapons other than the one you have equipped vary wildly when hovering over them in the pipboy before equipping them, again, if your previous weapon had ammo loaded with damage-altering effects.
Ammo scripts like those of incendiary ammo also trigger from any of the actor's attacks while having the ammo loaded, not just from the weapon. Also, effects applied from an ammo script, like incendiary ammo, just use the CIOS command which means that the game considers that the actor affected is damaging himself.

There's also the old issue with fatigue damage from "bean bag"-type (12ga in vanilla) ammo. Basically, it looks like ammo effects go through mathematical ordering so that additions and subtractions come before multiplications, so that ammo's +250 to fatigue damage is also run through its x0.05 damage multiplier. The fMinDamMultiplier game setting is (was, before JIP swept through it?) also enforced, so under vanilla rules that multiplier in practice becomes x0.20 at most... for a total of +50 fatigue damage and (regular health damage x 0.20). Plus, it doesn't check anything about the actor, so it works on robots for example.

These issues are a "core feature" of the game that's unlikely to be corrected, so I can only make scripted workarounds to try and tighten things up. However, I think I've done a good job of it, and added a few extras while I was at it.

Since ammo scripts are ubiquitous, it's not much use to advise people to get rid of them. BUT I DON'T CARE ABOUT THAT SMALL DETAIL. THAT'S RIGHT.
NEW IN VERSION 5.0
: ammo scripts are GONE.
Placing scripts on ammo leads to performance degradation when several of them are nearby, due to how the game handles scripts in general. Long story short, I've gotten rid of all scripts placed on ammo, and replaced them through a universal handler that executes them only when they impact a target. This works even if other mods you use are placing new scripts on ammo. This mod will catch and apply all of them through its system. But if you really need a particular kind of ammo to not be affected for some reason, you can place it in the migAmmoFixEXCLUDE form list.

I've also tweaked the regular vanilla ammo scripts to my liking:
  • Changes .50MG Incendiary from using the Flamer's burning effect, which is a measly 2 dmg/5 sec that hardly makes a difference, to the much stronger Dragon's Breath effect of 8 dmg/5 sec, so that the target may lose a noticeable amount of health to fire damage between shots. This flatly goes out of bugfixing territory, but you can't convince me that's a bad thing.
  • Replaces the bugged fatigue effect in 12ga bean bag ammo with a script implementation. It doesn't affect robots, it won't trigger if you hit the actor's held weapon, and the amount of fatigue caused varies just like the regular weapon's damage would (headshot, skill, perks, etc). Be wary, the base fatigue it causes to unarmored targets is immense, and can knock out almost any critter in one or two shots, but it is VERY nerfed by the target's DT, just as you'd expect IRL from such a non-lethal ammunition.

NEW IN VERSION 4.0: a scripted workaround is implemented so that ammo effects that alter Damage or DT should only affect attacks made by the weapon with that ammo loaded. At the very least, this should get rid of the errors in the DAM and DPS display in the pipboy when hovering over melee and thrown weapons while having ammo loaded with damage-altering effects. Other ranged weapons will have their DAM and DPS displays altered, but this is pretty much unavoidable and hopefully shouldn't affect actual gameplay.

This should also make damage from your explosives, or other delayed damage sources, not be affected by your current ammo's effects. Internally this is done by countering those effects with a perk. This can correctly counter any DAM effects when they shouldn't apply. It can correctly counter DT adding or subtracting effects like those of AP rounds. For DT multiplying effects like those of HP rounds, it can only correctly counter them for explosions, such as mines and the like, that go off while you have the ammo with that effect loaded, but extensive testing of the bugfixing method here has been limited.
Unfortunately I've been unable to counter DR effects in a correct fashion with this system so those are not handled, but given there are none of those in the vanilla game, it shouldn't be much of an issue.

NEW IN VERSION 3.0: my old Pyromaniac and Plasma Ammo Fix is now folded into this, in a very upgraded fashion.
  • Ammo types found in the vanilla PerkPyromaniacAmmo form list can grant you the benefits of the Pyromaniac perk if you have it, namely extra weapon damage with those ammo types loaded. (NOTE: this has been dropped in version 5, you can still enable it in the configuration file, but I don't recommend it. See this mod for a better implementation of a Pyromaniac ammo buff). Plus, critical deaths with these munitions will cause the target's corpse to burst into flames just like flamethrowers and the like can do.
  • Ammo types in the included migAmmoPlasmaFLST form list will now make your weapon behave more like a plasma weapon while loaded: the weapon's damage will be affected by the target's Energy Resistance stat, and the weapon will benefit from the Plasma Spaz perk while the ammo is loaded. Plus, critical deaths will "gooify" the target as well, even inheriting the effects of mods like EVE if installed. This feature is now much more compatible and unobtrusive since it uses a novel system based on event handlers and temporary clones of the weapon records, so that there's no need to mess with their critical effect nor resistance types at runtime.

BONUS ROUND: 12 gauge Coinshot can now optionally cause Legion Denarii to splatter around the game world, instead of being restricted to have a chance of spawning Denarii in the inventory of the targets you shoot at. This is disabled by default as it can get a tad bloaty and for the most part is just for show. See the config file to enable it.

The Mangled Legion Denarii that can result from this feature, and any mangled denarius you recover, now use a bent model from the Projectile Hilarity mod by Madcat221, so you can tell them apart from regular, unbent denarii. You can unbend them at the workbench with a Barter skill of 25.

Installation is straightforward, just activate AmmoScriptFixes.esp, and optionally the patch if you use CaliberX after it.

This mod acts as an upgrade to the ammo fixes found in the Unofficial Patch NVSE Plus. You can use both mods together without issue, UPNVSEP will detect this mod's filename if active and will defer its ammo fixes to it.

Special thanks go to Roy Batty for his Scripted Ammo Fix mod. Roy had already come up with a system to get rid of the vanilla ammo scripts and replace them with impact handlers in TTW, this mod upgrades on it to affect any ammo your game has.

Thanks to Madcat221, for the denarius models from the Projectile Hilarity mod.
Thanks to beelzetoxic for finding the issue with ammo scripts, and of course to jazzisparis for his amazing plugin.