Jump to content

Ped Damage Overhaul 2.0 BETA 7

Script mod which adds and alters "NPC behaviors"
   (5 reviews)

1 Screenshot

This mod is a teamwork of @fitfondue and @HughJanus.

 

The beta version of Ped Damage Overhaul 2.0 has been released! It contains new features and major adjustments (described in the changelog), so we'd appreciate your feedback on any bugs and performance issues you encounter. When reporting performance issues, please post your system specs if you can!

Part of this beta are the "optional features" (which require LML to work). Those are separated in two files. One is responsible for longer reactions after dismemberment (not compatible with euphoria mods), the other increases the chances of arterial bleeding (e.g. for neck shots).

 

OVERVIEW

This mod tries to make gun fights more diverse, dynamic and interesting and keep them that way throughout the game.

You will find NPCs stumbling when trying to run with hurt legs, getting the wind knocked out of them when getting shot, squirming on the ground when fatally injured, moaning in pools of their own blood until they meet their end, clutching their wounds and stumbling around when hit, etc.

 

IMPORTANT KEYS (for toggling effects)

These are the standard keys, they can be modified via the ini file (as can everything else this mod adds to the game):

  • F9 - Toggling the mod on/off (the mod is enabled by default).
  • F8 - Toggling "Kill Wounded Mode" on/off (is disabled by default). This mod adds a feature called "Dying States" which makes NPCs go down when injured and still stay alive for some time (until they bleed out). If "Kill Wounded Mode" is activated, NPCs will die instead of entering the "Dying States".
  • F7 - Toggling "Longer Bleedouts Mode" on/off (is disabled by default). Per default this mod makes NPCs in "Dying States" bleed out within a maximum of 25 seconds (to not interfere with spawning waves of enemies during missions, which are only triggered when the first wave is dealt with). If "Longer Bleedouts Mode" is activated, NPCs will take longer to bleed out (more realistic, but also hindering during some missions).
  • F2 - Toggling "Friendly Fire" on/off (is disabled by default). "Friendly Fire" currently only works for the Dutch Van Der Linde gang.

 

FEATURES

Here is a quick overview of the most important features:

First off, almost all of the features and their characteristics are based on chance, so the behaviors won't be the same every time you encounter them - which should ensure more diverse fights and keep things interesting for longer than vanilla does... that was the idea, at least 🙂

Almost every feature can be enabled, disabled or tweaked in the ini (more information further down the page), so this is not only a mod, but also enables you to create your own experience.

This mod only alters behaviors and attributes of human NPCs - animals or anything else remain untouched.

 

Light version:

  • NPCs will react to where they are being shot (leg shots will make them stumble when trying to run, hand shots will disarm them, torso shots will stagger them, etc.).
  • When NPC's health decreases below a certain threshold, they fall over and don't get back up. Then they go through different stages of dying, each with its own randomized behavior. Eventually NPCs will die of blood loss.
  • NPCs will sometimes (based on chance) audibly react when in hopeless situation (panicking, begging, cursing, etc.).
  • There is a bleeding feature, which makes NPCs lose health after they have been fatally injured. It operates bassed on chance, so NPCs don't all bleed out in the same amount of time.
  • NPCs burn alive for longer when set on fire.
  • There is a chance of NPCs surviving a fire (although they won't be able to do much afterwards).
  • NPCs have a chance of staying on the ground for a random amount of time when shot (based on their health) - so you can now knock the breath out of your opponents.
  • For all included behaviors the movement and pain sounds have been adjusted (and also randomized) to hopefully make your experience more interesting.

 

Standard version:

  • The same features as in the light version apply as well as the following additions:
  • NPC health and player damage tweaked to offer a more satisfying experience (no more bullet sponges).
  • NPC damage tweaked to offer more challenge to the player (since NPCs don't eat bullets for breakfast anymore).
  • You can now feel the difference between weapons, their condition and ammo types in combat (shooting with a properly maintained, powerful weapon with special ammo now feels like it should).
  • NPCs are less accurate shots and their accuracy declines along with their health.
  • Arm and leg shots do less damage to NPCs.
  • All NPCs can be disarmed (yes, even lawmen).
  • Hogtying disarms NPCs, so if they manage to get loose, they can't shoot you - they might draw a hidden knife, though.

 

Overhaul version:

  • The same features as in the standard version apply as well as the following additions:
  • Core Drain (health, stamina, dead eye) has been moderately increased - now hunting and buying food become necessary options.
  • Cores will be fully drained after death.
  • Additional 25% of money lost after death.

 

We hope that you have as much fun with this mod as we have creating and improving it!

 

 

INSTALLATION

  1. Download Alexander Blade's ScriptHook: http://dev-c.com/rdr2/scripthookrdr2/
  2. Extract Dinput8.dll and ScriptHookRDR2.dll into the main directory of RDR 2 (where the .exe file is).
  3. If you want PDO's additional features, download Lenny's Mod Loader. If not, ignore steps 4, 5 and 8. https://www.rdr2mods.com/downloads/rdr2/tools/76-lennys-mod-loader-rdr/
  4. Extract the folder Mod Manager into the main directory of RDR 2 (the actual Mod Manager folder, not just its contents). Then go into the Mod Loader folder and extract only its contents into the main directory as well (not the actual folder, just its contents).
  5. In the Mod Manager folder, run the ModManager.UI.exe file to make sure Lenny's Mod Loader is properly installed in the RDR 2 directory.
  6. Download your preferred version of Ped Damage Overhaul, then open the zip and choose whether you prefer Light, Standard or Overhaul configurations (see mod description to understand the differences).
  7. Extract the contents of the chosen folder into the main directory. If you're using Lenny's Mod Loader, any files pertaining to it will be automatically placed in the correct folder.
  8. If you're using Lenny's Mod Loader, run ModManager.UI.exe to see if the optional files are showing as installed. If they are, you're good to go.
  9. Start the game and have fun!
  10. While in game, you can press F9 to check if the mod was loaded correctly (F9 once to disable, then F9 again to re-enable the mod).

 

 

TWEAKING

In general, every parameter in the ini has a description (including information on how to disable the feature). Feel free to play around.

There are already a lot of features enabled and tweaked for out-of-the-box use, yet there are some features left untouched which can be enabled in the ini. That said, if you just want to disable one or more features, set their respective values to 0 (or whatever value the description suggests).

Examples:

  • To turn off the bleeding feature: set BleedWhenDying to 0
  • To turn off the disarming when hogtying NPCs: set HogtyingDisarms to 0
  • To turn off the dying state features: set DyingStateChance to 0

 

If you want to disable a feature which is based on chance, just set the chance value to 0.

Examples:

  • To turn off the knocking the wind out of your opponents: set KnockbackChance to 0
  • To turn off the possibility of NPCs surviving fire: set FireSurvivalChance to 0
  • To turn off the chance of stumbling when shot in the leg: set StumbleChanceOneLeg and StumbleChanceBothLegs to 0

 

There are also many other features that can be activated in the ini - here are some examples:

  • LassoDisarms -> makes catching someone with your lasso disarm them (no hogtying necessary)
  • NPCWeaponModifier (and many other damage modifiers) -> makes NPCs do more or less damage, depending on what you set it to
  • BleedWhenShot -> enables a bleeding feature which triggers when an NPC gets shot (so not the usual "bleed out when under x health" but consistent bleeding which is applied after the first hit of a bullet - the bleeding chance and deducted health points can be set separately)

 

The ini is full of values for those wanting to experiment a little.

One word of warning to tweakers: If the NPCHealth is set too high, headshots might not be lethal anymore, unless they hit the actual brain of the NPC (so a shot in the jaw would do more damage than other body parts, but would not be an instant kill). Actual "brain-shots" are always one-shot-kills, no matter the health.

 

 

 

KNOWN "ISSUES" (they are not real issues)

  • The disarming feature can be exploited to slow down new waves of lawmen. The same is true for the dying state feature. If there are too many lawmen dying or fleeing around the player, new waves won't spawn in until the lawmen die or get enough distance (this feature can be turned of in the ini file, if that is a deal breaker to you).
  • When disarming is enabled, the dropped weapons may appear partly invisible. This is only optical, though, they can be picked up and used as usual.

 

 

The source code of Ped Damage Overhaul can be found here:

https://github.com/HJHughJanus/PedDamageOverhaulRDR2

 

 

If you are looking to enhance your experience by using an Euphoria Mod, please take a look at the work of @AnymYo.

C.E.R.R. is tweaked for cineastic reactions and designed to work with PDO:

 

Edited by HughJanus

What's New in Version 2.0 BETA 7   See changelog

Released

Changelog v2.0 BETA 7

 

  • Added an ini parameter to enable/disable the disarming of downed opponents
  • Added an ini parameter to disable the "longer bleedouts" feature in missions
  • Fixed a bug where NPCs in cover would sack down all of a sudden when using euphoria mods
  • Fixed a bug where health for npcs in vehicles would not be set correctly
  • Fixed a bug where health for "Other Story NPCs" would not be set correctly
  • Fixed a bug where damage multipliers would not be applied if they were set above 100%
  • Adjusted some values in case the ini is not found (due to not following the installation instructions, which is very common, it seems^^)
  • Like 34
  • Thanks 7

You may also like

  • Lenny's Mod Loader RDR
    By LMS
       2612038   750   6
  • RDR 2 Asi Loader
    By LMS
       1630150   160   5
  • Red Dead Offline
    By LMS
       835409   449   12
  • Lenny's Simple Trainer
    By LMS
       1160364   1351   25
  • Improvements in Blood
    By Cazanu
       79745   8   0
  • Ultra Realistic Live Leak Ragdolls
    By AnymYo
       1787   2   0
  • User Feedback

    Recommended Comments



    fitfondue

    Posted

    @HughJanusJust popping in to say that the new patch doesn't break Scripthook, and the mod continues to function normally. So if you or anyone here is worried about downloading the new update, don't be, it's fine (I don't know about .NET mods, though, but this isn't one of them). It does require downloading the new Nvidia driver plus the hotfix (without the hotfix, the game is likely to crash).

    • Like 1
    HughJanus

    Posted

    What I did in this new version:

    • removed the hands up state from gun disarmin behavior
    • removed all the states but the fleeing from lasso disarming behavior (NPCs should now always flee after being lasso disarmed)
    • tried to disable knockback on disarming (not sure if it worked though, havent had the chance to test it since an update started downloading when I wanted to test^^)
    • tried to make NPCs stay down when under dying threshold and falling
    • implemented falling damage like @fitfondue suggested (setting health to 100 when recognizing someone is falling)
    • removed the last changes from zcoord, so the if-check now works like in the previous version (if z-coord of headbone < ini_z-coord of headbone, pushing stops)

    Havent taken a look at the playerHealth setting yet. But it seems odd that it doesnt work - the code is pretty simple and straight forward:

    if (ini_playerhealth != 0)
    {
    	if (PED::GET_PED_MAX_HEALTH(playerPed) != ini_playerhealth)
    	{
    		PED::SET_PED_MAX_HEALTH(playerPed, ini_playerhealth);
    		ENTITY::SET_ENTITY_HEALTH(playerPed, PED::GET_PED_MAX_HEALTH(playerPed), 0);
    	}
    }

    What it does:

    • if the ini setting for player health is not 0
    • check if the max health of the player is the ini setting
    • if not, set it to the ini setting and set the health to max health

    so after the first iteration the maxhealth should be set to the ini setting and the loop should not be entered again.

    I do it the same way for NPCs to set them to ini health.

    Maybe there is something special with the player health..?

    PedDamOv_1.3a9.zip

    • Like 1
    HughJanus

    Posted (edited)

    Just saw that the way I implemented the check if NPCs did fall (for not getting up) prevents them also from running around wounded (when shot in arteries).

    I suppose the only way we can fix the getting up after falling stuff, is if we figure out how to check if an NPC is lying down (then the falling doesnt matter anymore).

     

    Edit: I also noticed that if the falling sets the health to 100 and the fall doesnt kill the NPC, the health is later set back to the NPChealth value, because the new max health is 100 so the script "thinks" this NPC hasnt been set to the correct health value.

    So what I did now is get the falldamage value from the ini, make this the health to be set when falling, and if the max health is the fall damage ini value, the script recognizes that and doesnt touch the health of this NPC.

    So the ini falldamage value now sets the health for the NPCs when falling.

    But this doesnt solve the getting up issue after falling. We have to come up with a different logic for that.

    PedDamOv_1.3a10.zip

    Edited by HughJanus
    • Like 1
    fitfondue

    Posted

    @HughJanusWill test 1.3a10 right away! I'm okay with the "dying state cancel" fix being postponed (that's the name I've given to the bug in which the NPC gets up after falling even though they're in the dying state). It's also a minor bug.

    fitfondue

    Posted

    @HughJanus

    Fall damage: seems to be working! I tested it by setting NPC health to 1000 and throwing someone off the cliff near Valentine. At 1000 health it would normally be a survivable fall, but they died just like they would in vanilla, so it's working.

    Disarm Knockdown: seems to be rarer, but it's still happening frequently enough to be a problem. So it's not disabled yet.

    Invisible gun bug: happened only once in a ten-minute long gunfight. So it still happens. Whether or not it's really rarer now or whether I just got lucky remains to be seen 😄

     

    Lasso disarms: fleeing seems to work properly now, lawmen spawn indefinitely. Only problem is, it may take multiple lasso throws to fully disarm a lawman. Sometimes they're not disarmed fully, sometimes they're not disarmed at all. I think being on a horse or in cover affects that. Normal NPCs may also attack the player instead of fleeing, but that's rarer than fleeing. Honestly? I'd call this feature "good enough" for now. No one's gonna go around lassoing lawmen during a firefight, and I'm more than okay with one NPC deciding to fight instead of flee every once in a while.

     

    As for player health, yeah, there's probably something special about it. It probably has to do with the health core, which I think acts as a multiplier of sorts over the player's health value. It may not be as simple as a single value.

     

    My suggestion: if you manage to disable the knockdown for disarms, I say we release this as version 1.3 and move all incomplete features to version 1.4. We've already made great progress: the staggering feature (force push), the disarming of any and all NPCs with lasso or bullet, fall damage being the same at any health value, damage-dependent stumbling, bleed-out timer, etc. etc. And it's all pretty stable and functional.

    • Like 1
    HughJanus

    Posted

    I think we made it now. The disarming only triggers the knockback if you disarm the rifle using an unknown bone. I tried for 10mins disarming NPCs now and I only saw someone getting knocked down twice (when holding a rifle).

    I also updated the ini a little (structure and descriptions as well as new values so you can enable and disable the disarming).

    Do you think we should add the hands up, cower and aggressive behaviors for disarming via gun or should we leave them out?

     

    So what new stuff did we add?

    • polished the stumbling feature (doesnt trigger on horses or in other special cases, better behavior in general)
    • polished the knockback feature (better behavior in general)
    • added option to make the lasso disarm caught NPCs
    • lawmen can now be disarmed (dropped weapons look partly transparent, though)
    • addressed falling damage
    • added new behavior for shooting both legs vs. shooting only one leg

    PedDamOv_1.3b1.zip

    • Like 1
    fitfondue

    Posted

    @HughJanus I'll test 1.3b1 now! As for what you said:

     

    Do you think we should add the hands up, cower and aggressive behaviors for disarming via gun or should we leave them out?

     

    I think the aggressive behaviours were left in, weren't they? Enemies may still attack you after being disarmed via gun? As for the hands up and the cower, I think we should leave them out for now, because they look odd without better A.I. Enemies just stay with their hands up forever (which is weird and also affects lawman spawns) and I still don't know what the cower behaviour even looks like. I haven't seen anything that looks discernibly like cowering, so perhaps that behaviour just doesn't trigger for lawmen. I suggest we leave those behaviours out for now.

    fitfondue

    Posted (edited)

    @HughJanus You did it! Knockdowns are disabled on disarm now. One last thing that may be worth fixing, because only now do I realize it's a serious exploit (if compared to the vanilla game):

    Disarming every lawman makes it much easier to escape the law, because the game decides to spawn new lawmen depending on how many "police" radar blips are still in your vicinity. If you disarm every lawman or leave them in a dying state, they'll still show up as lawmen on the radar. So no new lawmen will show up until those radar blips disappear, giving the player a lot of time to escape the wanted area.

     

    I found a native that may or may not be helpful here: voidSET_POLICE_RADAR_BLIPS( BOOL toggle )  //0x6FD7DD6B63F2820E   This may determine whether the ped reads as a lawman on the radar. If this status is disabled once the lawman is fleeing or enters the dying state, it may fix the exploit. I think Rockstar uses this native for that very purpose. Did you ever notice that, when a lawman is shot in the artery, they disappear as a radar blip? Because their death is certain, the game doesn't count them as a threat anymore so more lawmen can spawn in.

     

    Mind you, the game isn't realistic at all in this sense. The rate at which new lawmen spawn in to attack you is downright ludicrous. But since this mod isn't supposed to fix the law and order system, we should probably try to keep it intact. Disarming is already advantageous because it only increases your bounty by $5 (whereas killing the lawman increases it by $20).

     

    So to summarize:

    - Incapacitated lawmen (whether fleeing or dying) still count as police blips and thus prevent new lawmen from spawning in

     

    Another thing I noticed is that some lawmen aren't despawning after fleeing, and in fact they tend to come back to attack you with a knife. They revert to hostility, just like in the lasso disarm. The reason for this is probably that they don't flee far enough to despawn, so yeah, apparently this is an issue with bullet disarms too (and it's been an issue since the beginning; it just didn't show up clearly while I was testing, but looking back, it's apparently been here from the start). Some lawmen despawn, others come back to attack you. Can the peds be set to flee farther?

     

    The radar blip problem is the main issue here, though. If that's fixed, then the fleeing bug will be a very minor issue perhaps not worth fixing. So I suggest you look into the radar blip thing first to see if it's even possible.

     

    Also, we can leave these bugs to be fixed in 1.4, if you prefer. We can leave them as "known issues" in the description of 1.3.

    Edited by fitfondue
    • Like 1
    HughJanus

    Posted

    The blip method does nothing for me - just tried it.

    Also tried to get a blimp from the disarmed entity and remove it, but that hasnt worked either.

    I'm not even sure if that would solve the problem since the blimps may only be an optical singal, whereas the spawned lawmen are managed by something in the back (maybe there is a flag for lawmen which is removed when they die and when the flag is gone, the blip is also not drawn anymore).

    As for setting the fleeing range - it is already set to "-1" which should be "unlimited". I dont know why they are coming back.

    • Like 1
    fitfondue

    Posted

    @HughJanus Dammit. This may be an unsolveable problem for now. The only other natives related to lawmen seem to be these ones (they're called "dispatch", I guess, because they're taken straight from GTA 5's wanted system). Do they look promising?

    HughJanus

    Posted (edited)

    If I set the ped as cop to false, it doesnt do anything 😕

    Behavior remains exactly the same, also the blips on the map remain.

     

    Edit: try this asi, maybe I have found a way to not make them turn around. Turning around after 1st disarming should only have a chance of 7% now.

    PedDamageOverhaul.asi

     

    Edit 2: What we could do about the standing up after falling is we could check if NPC is under dying threshold and not in ragdoll, if so, make them stumble with a certain chance (only downside is, if someone is in artery shot behavior, and they stumble, they will be in dyingstate ragdoll afterwards - so no writhing and dying).

    Edited by HughJanus
    • Like 1
    fitfondue

    Posted

    @HughJanusYou did it! Lawmen are now fleeing into despawn range, so it takes less time for new lawmen to spawn in. The exploit is still there (just disarm all lawmen and shoot them in the legs to slow them down) but I think you've fixed it as much as it's currently possible. I'd say this is good enough for 1.3.

     

    I think we're ready to move on to a release candidate, if you wish. This last .asi could be it, unless you still wish to polish something else?

    I must go to sleep now, but once I wake up, if you agree to release, I'll playtest the values for the realistic version and send you the .ini. If not, I'll be ready to test the next .asi. 🙂

     

     

     

     

    • Like 1
    fitfondue

    Posted

    @HughJanusI'll test them as soon as I wake up! As for what you said about the dying state cancel bug, I think the solution you've proposed isn't worth affecting other behaviours such as the artery shot. The dying state cancel is a rare bug, and the fix to fall damage should make it even rarer. So in my opinion this is enough for 1.3, and we can ignore the bug for now.

    HughJanus

    Posted (edited)

    @fitfondue I have started experimenting with other stuff for v1.4 now. I found the method GET_GROUND_Z_FOR_3D_COORDI hope this will get us the z coord of the ground, so we can properly check the height of the head bone!

    Sleep well 🙂

     

    Edit: I just let the zcoord of head and the ground be shown on screen and they both are always zero:zcoord.thumb.png.be959ada7432f00cdf835ca801d53382.png

     

    I dont know how to get proper coordinates. The natives dont seem to work the way I thought.

    Here is the code I am using:

    char c[40];
    char c2[40];
    float act = 1;
    float act2 = 1;
    std::string text = "Zcoord ground = ";
    std::string text2 = "Zcoord head = ";
    
    Vector3 vechead = ENTITY::GET_WORLD_POSITION_OF_ENTITY_BONE(playerPed, 21030);
    float groundzcoord;
    GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(vechead.x, vechead.y, vechead.z, &groundzcoord, true);
    act = groundzcoord;
    text = "Zcoord ground = " + std::to_string(act);
    act2 = vechead.z;
    text2 = "Zcoord head = " + std::to_string(act2);
    strcpy(c, text.c_str());
    strcpy(c2, text2.c_str());
    DrawText(0.4, 0.4, c);
    DrawText(0.3, 0.3, c2);

     

    Maybe the method for getting the head bone position is faulty (or my parameters are) and it returns 0?

    Edited by HughJanus
    • Like 1
    HughJanus

    Posted (edited)

    I found the solution:

    zcoord2.thumb.png.735581f78a6c32dd7fcc7998b8fff26d.png

     

     

    Now all we have to do is figure out the right value for the ini file.

    The code for enabling:

    if (rand < ini_dyingpushchance && vechead.z > groundzcoord + ini_zvaluehead)
    {
      *do dying push logic*
    }

     

    Edit: In the attached asi you get the zcoords shown of the NPC you last shot (at the time you shot it).

    PedDamageOverhaul.asi

    Edited by HughJanus
    • Like 1
    HughJanus

    Posted (edited)

    I think I nailed the value for the zcoord.

    I now also implemented the dying movement, it works as follows:

    ini values:

    • DyingMovementForceOffsetX=8
    • DyingMovementForceOffsetY=8
    • DyingMovementForceOffsetZ=8
    • DyingMovementPushX=60
    • DyingMovementPushY=60
    • DyingMovementPushZ=60
    • DyingMovementChance=30

    If an NPC lies on the ground and is below the dying threshold, a randomizer generates a number between 0 and 999.

    If this number is below the DyingMovementChance, a random bone of these will be chosen:

    • right thigh
    • right calf
    • left thigh
    • left calf
    • right forearm
    • left forearm
    • spine01
    • spine02
    • spine03
    • spine04
    • spine05

    and randomly X, Y or Z axis will be chosen and either DyingMovementPushX, DyingMovementPushY or DyingMovementPushZ will be applied to the bone at the offset specified in the ini.

    If the pushing values are too low, its barely noticeable, too high and it will look like weird kicking. I guess they have to be tweaked a bit but I think we can achieve something acceptable with it.

    Attached you can find the new alpha for v1.4.

     

    PedDamOv_v1.4a1.zip

     

     

    Edit: Added a version in which you can tweak the pushes according to the body parts (since they have different weight, they need different push forces).

    New ini parameters:

    • DyingMovementPushX_Legs
    • DyingMovementPushY_Legs
    • DyingMovementPushZ_Legs
    • DyingMovementPushX_Arms
    • DyingMovementPushY_Arms
    • DyingMovementPushZ_Arms
    • DyingMovementPushX_Spine
    • DyingMovementPushY_Spine
    • DyingMovementPushZ_Spine

     

    PedDamOv_v1.4a2.zip

    Edited by HughJanus
    • Like 1
    fitfondue

    Posted

    @HughJanusWhoa! That's a lot of good news to wake up to! I'll do a quick test of 1.4a2 to provide any useful feedback immediately, and then examine the values of 1.3 for release (as per the suggestions you posted).

    fitfondue

    Posted

    @HughJanus Absolutely incredible work! You figured out the Z-coord problem, and that opens up a lot of possibilities. As for the individual movement of the bones: the way the game applies force is very sudden and jerky, so it looks like a weird kind of "twitching". I experimented with more values but it always looks off, even if chance is set to 999 (the force isn't continuous even then, it's a series of jerks).

     

    The best way to implement something like this would be to apply a truly constant force for a short amount of time. Smooth movement. I don't know if this is possible, but if it is, then we may achieve something that looks natural.

     

    Another thing that may be very important: a downward push (which is Z-minus in this game, I think) to create friction with the ground. That way we can apply a good deal of lateral force without the NPC sliding around on the ground; the downward push might force them to roll.

     

    Finally, one more thing that may be worth doing, now that you've made "lying down" into a recognizable state: testing ragdoll natives with it, as seen here. If I'm not mistaken, ragdolltype goes from 1 to 4 with somewhat different settings for each (it's worth trying out more numbers to see if something else comes up). It's possible to find a ragdolltype that looks more "active" while lying down.

     

    I'll now test 1.3 values for release.

    • Like 1
    fitfondue

    Posted

    I've attached the release candidate below! I didn't change standard values, but I did add more paragraph breaks to the .ini to make it easier to read and tweak (I did the same for realistic version). Most realistic values are the same as in the previous version, except:

    NPCs have 100 health and their dying threshold is 50: higher than in the previous version, but it still takes two Schofield shots (or one bolt action rifle shot) to drop them permanently. A health of 100 is simply more compatible with the game as a whole, so I figured it would be better to work with that as a baseline.

    Firehealth is 300: This is because I found 150 to be too quick. 300 results in a more believable reaction. I'd recommend the same to the standard version, but the one I'm attaching is identical to the one you sent. All I did was add paragraph breaks.


    And that's it. Here's a suggested changelog:

     

    Changelog v1.3:

    - Every NPC can be fully disarmed now, including lawmen. Most times they'll flee, sometimes they'll keep attacking with a knife or bare fists.
    - Enemies now stagger around as they clutch their wounds after being shot. They may trip over scenery or lean onto walls before falling or recovering their balance.

    - Fall damage is now unnaffected by NPC health, so that even high health values will not make NPCs survive huge falls.
    - NPCs now stumble more often if you shoot both legs. Falls can also result in leg damage, so shooting one leg may result in the other also being wounded in the fall.

    - NPCs can be automatically disarmed when lassoed (disabled by default, but can be enabled in .ini)

    - The .ini offers many more customization options now so you can tailor the experience to your liking

    KNOWN ISSUES:

    - The disarming feature can be exploited to slow down new waves of lawmen. The same is true of the dying state feature. If there are too many lawmen dying or fleeing around the player, new waves won't spawn in until the lawmen die or get enough distance.

    - The PlayerHealth .ini value isn't working: setting it to any value other than 0 makes player invincible. If you wish to make Arthur less resilient, you can alter the NPCWeaponModifier value.

    - Enemies on horseback or behind cover can't be knocked back by shots (just like in vanilla). However, if an enemy leans out of cover to shoot, they can be knocked back.
    - On the standard version of the mod, enemies may survive headshots because the bullet didn't quite hit the brain. This is due to NPC health being higher than 100. A shot that hits the brain perfectly is always an instant kill regardless of health.

    - NPCs "twitch" very slightly when they're dying. This is going to be fixed on the next version.

     

    Am I forgetting anything?

    Ped Damage Overhaul 1.3.zip

    • Like 1
    HughJanus

    Posted

    @fitfondue Most values remain the same from the last release. I only tweaked those we found out to be problematic and added the new ones. So those should be OK, I hope^^

    Concerning the jerky movement: yeah, I got the best results when setting the pushing values to a low value and the offset between 1 and 15 and the chance to 28 or so. It seemed like NPCs were moving like they were coughing lol

    I have not found a way to make the animations more slow and smooth yet. But I have not tried for long.

    As for the ragdoll types, I dont think they are distinguishable when the NPC is on the floor - I guess they only differentiate in how the NPC behaves when standing (e.g. 3 is stumbling with closed legs, 4 is stumbling with wide legs - on the ground they look almost the same).

    I have already tried applying damage to the NPCs via code when down, but unfortunately it only applies damage and doesnt cause the NPC to react.

    I guess we will have to search for some new natives if we cant get it done with the force push ones :/

    HughJanus

    Posted

    Did you encounter any odd behavior with fire health over 165? When I tested 165 was the sweet spot - above more than 23% would survive and some also happened to get back on their feet.

    fitfondue

    Posted

    7 minutes ago, HughJanus said:

    Did you encounter any odd behavior with fire health over 165? When I tested 165 was the sweet spot - above more than 23% would survive and some also happened to get back on their feet.

     

    No, seems to work great on my end. Just tried it on 6 different NPCs, none of which survived.

    • Like 1
    HughJanus

    Posted

    3 minutes ago, fitfondue said:

     

    No, seems to work great on my end. Just tried it on 6 different NPCs, none of which survived.

     

    Great work, my man!

    I took the changelog and known issues, added stuff I thought was worth mentioning and released v1.3.

    The new version on nexus should be up in the next half hour, I just got word from our guy there that he is booting up his PC in this very moment^^

    Looking forward to doing more in v1.4 😄

    • Like 1

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    ×
    ×
    • Create New...