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
       2609892   750   6
  • RDR 2 Asi Loader
    By LMS
       1629228   160   5
  • Red Dead Offline
    By LMS
       834988   449   12
  • Ultra Realistic Live Leak Ragdolls
    By AnymYo
       1712   2   0
  • Lenny's Simple Trainer
    By LMS
       1160109   1351   25
  • Bandit Hideouts
    By Gunter Severloh
       39326   33   2
  • User Feedback

    Recommended Comments



    HughJanus

    Posted

    3 hours ago, Adman said:

    Ooooooohhhh. Checking out update asap, sounds great. Also thanks for the explanation about knockdowns I wasn't sure there.

     

    I'll try to keep suggestions more concise in the future too, thanks again Hugh.

     

    edit

     

    Tested the mod range effect at 10 in godmode, and it is hard to tell how far (or to who) it applies at times, but it certainly makes a difference to framerate in saint denis, so thats really great! Nice one. So is it based on the number of NPCs the script is being applied to? Or is it a distance setting? Either way i will test it more.

     

    I put the disarm chance to 40 at the same time, and while I was able to shoot the rifles out of lawmens hands, i could never seem to disarm them of their revolver without killing them, I wonder if that was related to the mod effect range too?

     

    Loving all the new variables 😄 Thanks so much, lots of testing to do

     

    Please share your findings.

    I would guess its the number of NPCs affected, but thats only a guess. There is no proper documentation, so I dont know :/

    Adman

    Posted (edited)

    Okie sooo;

     

    Noticable dropoff in FPS when mod range is set to the default 1024 compared to 1, immediately noticable in populated places, between 5-10 fps difference.

     

    As you scale up that builds up, but only up to about 150-200 , beyond that it stays about the same (at around 5-10 fps lost).

     

    For myself 50 is where it seems to start to kick in and you lose 1-2 fps, so around there is a pretty safe bet for most with issues I would suppose. (my specs are pretty average)

     

    Due to these numbers I presume it is to do with the maximum amount of npcs that are being effected at any one time, though I can't be sure if that would mean it is running the entire script on each or splitting up parts of it etc (splitting the "threads" of the script). But it is good to know the rough numbers there for myself, hope this info helps others.

     

     

    Also another question Hughjanus; if I reduce the player damage instead of increasing NPC health does that also reduce the damage I deal to animals? And if I reduce the torso/arm/head damage percentage does that also effect animals and the player taking damage?

     

    And another request if I could, I'm not sure if you know how but the health regeneration rate controls provided in the difficulty scaler mod would be perfect if available here too, it seems when working this and difficulty scaler can be run side by side, but his damage settings will override yours, and it isnt split into special and non special weapons like yours is (and applies that to all weapons). I know it is a bit of a personal ask, but I thought i'd put it in there just in case you can 🙂

    Edited by Adman
    • Like 1
    HughJanus

    Posted

    @Adman Thanks for sharing your findings!

     

    The mod does not affect animals at all (no matter what you set) - there is a check if you are currently aiming at an animal and if you do, all damage settings are temporarily undone.

    Also the body part specific damage only applies to NPCs.

     

    As for the regeneration rate - I will take a look into it.

    • Like 1
    Adman

    Posted (edited)

    Oh cool, that's good to know on both counts.

     

    I am a little confused as to how a couple of the new mechanics work, does the "euphoria" stumble when weak function work like the leg injury stumbling? Or is that different? I noticed in the patch notes you mentioned a stumble when hit chance, is that related to euphoria also, or is that part of the animchance stuff?

     

    Apologies for all the staggered questions, and thanks again for being so considerate of feedback and questions.

     

    I really love that you were able to add the chances for what enemies do after disarmed, it is so dang good, I personally like them to attack, but have set the other chances to 5% each because it is still hilarious to see them doing such different things at times.

     

    For everyone; it seems like whether they put their hands up or cower, they do seem to run away eventually in either case there, so if you like disarms and are still playing the story mode main quests it would be best to set the flee, cower and surrender options to 0 (and attack to 100) to ensure missions won't bug out from enemies that are supposed to die, instead running away.

    Edited by Adman
    HughJanus

    Posted

    @Adman The stumbling when shot thing is describing the behavior when the health of an NPC is under the dying movement threshold, but it is still standing. If the chance for euphoria stumbling is 0, they will just more or less drop (within one or two steps) - if euphoria stumbling is at 100, they will receive a slight push every millisecond, so they stumble for a longer time (doing more steps), but that stumbling is based on the euphoria behavior when pushed (they will grab their wound and stumble around).

    The leg injury stumbling is a totally different mechanic.

     

    The cower and hands up reactions remain until their health has been decreased by some points (= they get shot) - then they will flee. If you dont hurt them in cowering or hands up, they should stay that way.

    • Like 1
    Adman

    Posted

    Aha, I guess they ran from others shooting in the area, possibly hitting them (was testing with lots of cops about).

     

    And thanks for clarifying again, I was thinking it worked completely differently so that helps a lot.

    MatiasMoore

    Posted

    HI! The new performance value really helps with fps drops, when set to 50 or lower. However, I tested a few other variations and the results are strange. I set it to 2, teleported in the middle of the field and spawned 1 ped. The thing is no matter what, the script wouldn't work, but the more important part is that even this way I was still losing about 5 frames in cities(from 70-80 to 70-75). Also in this comment section I've seen you reply with this "there is a check if you are currently aiming at an animal and if you do, all damage settings are temporarily undone.". So maybe this somehow affects performance too? Would be great if you could add this as a new variable in the ini in the next update.

     

    Other than that, playing with your mod and without the hud is a blast. Thanks for your work!

     

    mache82

    Posted

    On 7/31/2020 at 5:07 AM, HughJanus said:

     

    This mod is dependant on ScriptHook - as soon as you update ScriptHook, this mod will work as well.

     

    Edit: That means as soon as a new ScriptHook version is available, of course 🙂

     

    can it already be used with the latest update?

    HughJanus

    Posted

    On 8/30/2020 at 4:33 PM, MatiasMoore said:

    Also in this comment section I've seen you reply with this "there is a check if you are currently aiming at an animal and if you do, all damage settings are temporarily undone.". So maybe this somehow affects performance too? Would be great if you could add this as a new variable in the ini in the next update.

     

     

    What would you like to be able to change? Animals being affected by damage changes?

     

    On 9/9/2020 at 11:07 PM, mache82 said:

     

    can it already be used with the latest update?

     

    This mod does not ever need any update if script hook is updated, you can always use it with any script hook version.

    lininop

    Posted

    Reporting possible bug: When an npc is hit with a throw-able or arrow that kills them, they just drop with zero force. Its as if the euphoria physics don't kick in at all, they just go limp. If you are having issues understanding what I mean, I might be able to record it. Let me know!

    HughJanus

    Posted

    8 hours ago, lininop said:

    Reporting possible bug: When an npc is hit with a throw-able or arrow that kills them, they just drop with zero force. Its as if the euphoria physics don't kick in at all, they just go limp. If you are having issues understanding what I mean, I might be able to record it. Let me know!

     

    What config are you using and what weapon exactly? Did you alter anything about the config? Do you use any other mods?

    AbleAtlas

    Posted

    Would it be possible to alter ped detection or buff player stealth in a future update? would love this feature, thanks for the mod!

    HughJanus

    Posted

    2 hours ago, AbleAtlas said:

    Would it be possible to alter ped detection or buff player stealth in a future update? would love this feature, thanks for the mod!

     

    We havent looked into that at all. Dont know if we will add it, since its a little out of scope.

    AbleAtlas

    Posted

    1 hour ago, HughJanus said:

     

    We havent looked into that at all. Dont know if we will add it, since its a little out of scope.

    All good, just a suggestion but if it proves out of reach with current modding tools i understand

    lininop

    Posted (edited)

    On 9/15/2020 at 1:05 AM, HughJanus said:

     

    What config are you using and what weapon exactly? Did you alter anything about the config? Do you use any other mods?

     

    It happens with any lethal thrown weapon so throwing knives or tomahawks/axes, as well as the bow. I can tell you I've only noticed it  since I've installed the latest patch so I'm assuming it has something to do with that.

     

    I did change a few values, although I don't remember all of them (mainly to do with disarming reactions and underwater breathing times) 

     

    I do use other mods, although not much mainly just trainers, and they haven't changed since I've updated.

     

    I'll post my ini if you feel like looking through it:

     

    ;_________________________________________________________________
    ;
    ;
    ;!!!!!THE VALUES BELOW ARE INTEGER VALUES -> DONT USE COMMAS!!!!!
    ;
    ;_________________________________________________________________

    [PedDamageConfiguration_Basic]

    ;ToggleKey is the F-key you want to use to activate the mod (so 7 would set it to F7)
    ToggleKey = 9

    ;EnableScriptByDefault can be set to 1 or 0, depending if you want to have to enable the script manually or it should be active by default
    EnableScriptByDefault = 1

    ;NPCHealth is the standard health for an NPC
    NPCHealth = 100

    ;KnockbackThreshold is the health threshold under which an NPC can be knocked down
    KnockbackThreshold = 90

    ;DyingMovementThreshold is the health threshold under which NPCs wont be able to get back up again when knocked down (still moving on the ground) - if DyingMovment is disabled (in the advanced section),
    ;the behavior under this threshold is the same as for the DyingThreshold
    DyingMovementThreshold = 65

    ;DyingMovementThreshold2 is the health threshold under which NPCs wont be able to get back up again when knocked down (still moving on the ground, less agile than the first threshold) - if DyingMovment is
    ;disabled (in the advanced section), the behavior under this threshold is the same as for the DyingThreshold
    DyingMovementThreshold2 = 27

    ;DyingThreshold is the health threshold under which NPCs wont be able to get back up again when knocked down (just lying on the ground, not moving)
    DyingThreshold = 7

    ;LassoDisarms can be set to either 0 or 1 - if set to 1, lasso-ing someone disarms them
    LassoDisarms = 1

    ;HogtyingDisarms can be set to either 0 or 1 - if set to 1, hogtying someone disarms them
    HogtyingDisarms = 1

    ;Disarming can be set to a value between 0 and 100 - this is the percentage chance of NPCs being disarmed when shot in the right forearm or hand
    ;every NPC can be disarmed (even lawmen), but dropped weapons from disarms will look partially invisible (its only optical, you can pick them up and use them as usual)
    DisarmingChance = 100

    [PedDamageConfiguration_Advanced]

    ;ModEffectRange is a value which describes the number of NPCs which are affected by the mod (USE ONLY IF YOU HAVE PERFORMANCE PROBLEMS - THIS IS EXPERIMENTAL!)
    ModEffectRange = 1024

    ;ExcludeStoryNPCs can be set to either 0 or 1 - if set to 1, the mod will not affect story NPCs
    ExcludeStoryNPCs = 1

    ;StoryNPCHealth sets the health of story NPCs to the given amount - only works if ExcludeStoryNPCs is set to 1 (otherwise they will get the health value from NPCHealth) - 0 disables the feature
    StoryNPCHealth = 450

    ;Playerinvincibility is the setting for the player to be invincible (values: 0 or 1)
    PlayerInvincibility = 0

    ;Chances for disarming behaviors - if the summed chances are not exactly 100, they will be ignored and the default values will be set
    DisarmFleeingChance = 15
    DisarmAttackChance = 5
    DisarmHandsUpChance = 40
    DisarmCowerChance = 40

    ;SpecialWeaponModifier - since NPCs have more health, some weapons should do more damage - this is the modifier for weapon damage (200 = 200% = twice the normal damage) (shotguns, sniper rifles, dynamite arrows, improved arrows and tomahawks will be affected by this)
    SpecialWeaponModifier = 85

    ;WeaponModifier - the weapon modifier for all "non-special weapons" (50 = 50% = half the normal damage)
    WeaponModifier = 75

    ;MeleeModifier - the damage modifier for all melee damage - 100 disables it, it counts as percentage (50 = 50% = half the normal damage)
    MeleeModifier = 100

    ;KnifeModifier - the damage modifier for the following knives: normal knife, miner knife, bear knife, vampire knife, civil war knife, machete
    KnifeModifier = 100

    ;NPCWeaponModifier - the damage modifier for all NPC weapon damage - 100 disables it, it counts as percentage (50 = 50% = half the normal damage)
    NPCWeaponModifier = 100

    ;NPCMeleeModifier - the damage modifier for all NPC melee damage - 100 disables it, it counts as percentage (50 = 50% = half the normal damage)
    NPCMeleeModifier = 100

    ;NPCAccuracy alters the accuracy of NPCs (0 disables the feature, so any value above 0 will set the accuracy to that)
    NPCAccuracy = 0

    ;Bodypart Damage Modifiers - regulate the amount of damage certain body parts take (100 is 100%, 50 would be 50% so half the damage is done when this body part is hit)
    LegDamageModifier = 50
    ArmDamageModifier = 50
    TorsoDamageModifier = 100
    HeadDamageModifier = 100
    NeckDamageModifier = 100

    ;DyingStatesForMelee enables or disables the dying states for NPCs who have only been damaged by fists (can be set to either 0 or 1) -> if enabled, knocked out NPCs wont get up again if under any dying threshold
    DyingStatesForMelee = 0

    ;MeleeDyingStateKnockout makes NPCs ragdoll into the DyingStates when in melee combat and their health crosses the DyingMovementThreshold (DyingStatesForMelee has to be enabled for this feature to work) - can be set to either 0 or 1
    MeleeDyingStateKnockout = 0

    ;FireSurvivalChance is the percentage chance of an NPC surviving a fire if burning (values: integers between 0 and 100)
    FireSurvivalChance = 50

    ;FireHealth is the health value an NPC gets when it is burning, if it is NOT supposed to survive the fire (if this value is set too high, the NPC might still survive the fire)
    FireHealth = 300

    ;UnderWaterTime is the time an NPC can survive under water (is affected by other values as well, so changing it might not lead to the expected result)
    UnderWaterTime = 25

    ;KnockbackChance is the percentage chance (from 0 to 1000, so you can set it more precisely) of a knockdown occuring when the NPCs health is under the KnockbackThreshold (values: integers between 0 and 100)
    KnockbackChance = 20

    ;FallTimeDown is the time in milliseconds an NPC has to be falling to be incapacitated afterwards
    FallTimeDown = 1100

    ;FallTimeDeath is the time in milliseconds an NPC has to be falling to be dead afterwards
    FallTimeDeath = 1850

    ;UseAnimChance is the chance of animations being used instead of the random dying movement during dying stage 1
    ;Be aware of two things:
    ;1. The animations (if activated) may prevent the use of the "running around with blood spilling out of an artery wound" animations during dying stage 1
    ;2. When downing someone who is in cover or on horseback, the animations may still play (wheter you activated them or not)
    UseAnimChance = 100

    ;TransitioningDelta represents the time delta between an NPC going down in dying state 1 and transitioning to the wounded animation (UseAnimChance must be set to see results)
    TransitioningDelta = 1200

    ;DyingStateHogtie can be set to either 1 or 0. If enabled (= set to 1), NPCs in dying stages who are playing a writhing animation will be automatically bound on wrists and ankles as soon as you lasso them.
    ;Explanation: normally NPCs in writhing animations can't be lasso-ed without instantly dying - this method circumvents that.
    DyingStateHogtie = 1

    ;DSEuphoriaStumble makes NPCs stumble around when weak (DyingMovementThreshold crossed) and not on the ground
    DSEuphoriaStumbleChance = 30

    ;StumbleChance is the "percentage" chance of stumbling or falling when an NPC was hit in the leg (values: integers between 0 and 1000 (so it can be tweaked more precisely => so a value of 30 would equal 3%))
    StumbleChanceBothLegs = 50
    StumbleChanceOneLeg = 15

    ;RunningThreshold is the velocity of the NPC - if the NPC runs faster than this velocity, the stumble chance kicks in (stumbling can happen)
    RunningThresholdBothLegs = 30
    RunningThresholdOneLeg = 50

    ;OnlyBleedOnTorsoShot can be set to either 0 or 1 - if set to 1, NPCs will only bleed (= bleeding effects below) if they are shot in the torso
    ;(this comes in handy if you want to catch a wanted NPC alive -> legs can be shot without having to fear the bleedout)
    OnlyBleedOnTorsoShot = 1

    ;BleedWhenDying can be set to either 1 or 0, if set to 1 an NPC will continuously lose health when under the DyingThreshold
    BleedWhenDying = 1

    ;BleedingChanceDying is the "percentage" chance of bleeding per script iteration (= every ~millisecond) when NPC is under the DyingThreshold (values: integers between 0 and 1000 (so it can be tweaked more precisely => so a value of 30 would equal 3%))
    BleedingChanceDying = 13

    ;BleedingValue is the value of health an NPC loses when bleeding is applied (= one of the bleeding chances kicks in)
    BleedingValue = 2

    ;BleedWhenDying can be set to either 1 or 0, if set to 1 an NPC will continuously lose health when under the KnockbackThreshold
    BleedWhenShot = 0

    ;BleedingChanceDying is the "percentage" chance of bleeding per script iteration (= every ~millisecond) when NPC is under the KnockbackThreshold (values: integers between 0 and 1000 (so it can be tweaked more precisely => so a value of 30 would equal 3%))
    BleedingChanceShot = 21

    ;CoreDepletion enables or disabled the depletion of cores (can be set to either 0 or 1)
    CoreDepletion = 0

    ;CoreDepletionAmount is the value which gets deducted from the cores when the CoreDepletionTime has passed (full cores have a value of 100, empty cores a value of 0)
    CoreDepletionAmountHealth = 6
    CoreDepletionAmountStamina = 6
    CoreDepletionAmountDeadeye = 6

    ;CoreDepletionTime is the amount of seconds after which CoreDepletionAmount gets deducted from all cores (in milliseconds, so a value of 10000 would mean that every 10 seconds the cores get decreased by the CoreDepletionAmount)
    CoreDepletionTime = 300000

    ;CoreDepletionAfterDeath will deplete all cores entirely if the player dies, if enabled (can be set to either 0 or 1)
    CoreDepletionAfterDeath = 0

    ;DyingStateChance is the chance of DyingStates being used (if that chance doesnt trigger, vanilla behavior will occur) - the value must be between 0 and 100 (0 disables DyingStates completely)
    DyingStateChance = 100


    ;________________________________________________________________________________________________
    ;
    ;   below values are direct inputs for methods - tweaking them may result in unwanted behaviors
    ;________________________________________________________________________________________________

    ;stumbling
    BothLegsStumbleForcePushX = 0
    BothLegsStumbleForcePushY = 375
    BothLegsStumbleForcePushZ = 0
    OneLegStumbleForcePushX = 0
    OneLegStumbleForcePushY = 320
    OneLegStumbleForcePushZ = 0
    IsDirectionRelativeOneLeg = 1
    IsForceRelativeOneLeg = 0
    IsDirectionRelativeBothLegs = 1
    IsForceRelativeBothLegs = 0

    ;This only works if "DSEuphoriaStumble" is set to 1                                                                      
    ;Pushing in dying mode works like this: if the dyingthreshold has been crossed, a random number betweed 0 and 999 is calculated, if this number is under the DyingPushChance, a new logic is triggered.
    ;This logic randomly decides whether the x, y or z axis of the NPC will receive the push (if you only want one axis pushing, set the other ones to 0) - the push is then applied to the center mass of the NPC
    DyingPushChance = 360
    DyingForcePushX = 28
    DyingForcePushY = 0
    DyingForcePushZ = 0

    ;ZValueForHeadBone is used for checking the z-value of the vector returned by | ENTITY::GET_WORLD_POSITION_OF_ENTITY_BONE(peds, 21030) | -> peds is the current NPC and 21030 is the bone ID of its head
    ;if the z-value of the head is below this value, the dyingpush does not trigger
    ZValueForHeadBone = 350

    ;ZValueForHipBone is used for checking the z-value of the vector returned by | ENTITY::GET_WORLD_POSITION_OF_ENTITY_BONE(peds, 14415) | -> peds is the current NPC and 14415 is the bone ID of its lower spine
    ;if the z-value of the hip is above this value, the dying movement does not trigger
    ZValueForHipBone = 500

    ;DyingMovementForceOffsetX - X-offset for dying force to be applied to the bones (where on the bones) - is divided by 10 before inserted into method (so a value of 5 becomes 0.5)
    DyingMovementForceOffsetX = 1

    ;DyingMovementForceOffsetY - Y-offset for dying force to be applied to the bones (where on the bones) - is divided by 10 before inserted into method (so a value of 5 becomes 0.5)
    DyingMovementForceOffsetY = 1

    ;DyingMovementForceOffsetZ - Z-offset for dying force to be applied to the bones (where on the bones) - is divided by 10 before inserted into method (so a value of 5 becomes 0.5)
    DyingMovementForceOffsetZ = 1

    ;DyingMovementPush - strength of the force applied for dying movement (on the corresponding axis) - is divided by 10 before inserted into method (so a value of 5 becomes 0.5) - first stage, can be quite agile
    ;right calf
    DyingMovementPushX_Legs01 = 0
    DyingMovementPushY_Legs01 = 0
    DyingMovementPushZ_Legs01 = 3
    ;right thigh
    DyingMovementPushX_Legs02 = 0
    DyingMovementPushY_Legs02 = 0
    DyingMovementPushZ_Legs02 = 5
    ;left calf
    DyingMovementPushX_Legs03 = 0
    DyingMovementPushY_Legs03 = 0
    DyingMovementPushZ_Legs03 = 3
    ;left thigh
    DyingMovementPushX_Legs04 = 0
    DyingMovementPushY_Legs04 = 0
    DyingMovementPushZ_Legs04 = 5
    ;left forearm
    DyingMovementPushX_Arms01 = 0
    DyingMovementPushY_Arms01 = 0
    DyingMovementPushZ_Arms01 = 10
    ;right forearm
    DyingMovementPushX_Arms02 = 0
    DyingMovementPushY_Arms02 = 0
    DyingMovementPushZ_Arms02 = 10
    ;spines 01 - 05 (vertebras)
    DyingMovementPushX_Spine01 = 0
    DyingMovementPushY_Spine01 = 0
    DyingMovementPushZ_Spine01 = 2
    DyingMovementPushX_Spine02 = 0
    DyingMovementPushY_Spine02 = 0
    DyingMovementPushZ_Spine02 = 2
    DyingMovementPushX_Spine03 = 0
    DyingMovementPushY_Spine03 = 0
    DyingMovementPushZ_Spine03 = 4
    DyingMovementPushX_Spine04 = 0
    DyingMovementPushY_Spine04 = 0
    DyingMovementPushZ_Spine04 = 2
    DyingMovementPushX_Spine05 = 0
    DyingMovementPushY_Spine05 = 0
    DyingMovementPushZ_Spine05 = 2
    ;neck 01 - 05 (vertebras)
    DyingMovementPushX_Neck01 = 0
    DyingMovementPushY_Neck01 = 0
    DyingMovementPushZ_Neck01 = 5
    DyingMovementPushX_Neck02 = 0
    DyingMovementPushY_Neck02 = 0
    DyingMovementPushZ_Neck02 = 0
    DyingMovementPushX_Neck03 = 0
    DyingMovementPushY_Neck03 = 0
    DyingMovementPushZ_Neck03 = 4
    DyingMovementPushX_Neck04 = 0
    DyingMovementPushY_Neck04 = 0
    DyingMovementPushZ_Neck04 = 0
    DyingMovementPushX_Neck05 = 0
    DyingMovementPushY_Neck05 = 0
    DyingMovementPushZ_Neck05 = 4

    ;pushing values for alternating x-push
    ;right calf
    DMPushXLeg01 = 0
    ;right thigh
    DMPushXLeg02 = 0
    ;left calf
    DMPushXLeg03 = 0
    ;left thigh
    DMPushXLeg04 = 0
    ;left forearm
    DMPushXArm01 = 6
    ;right forearm
    DMPushXArm02 = 6
    ;spines 01 - 05 (vertebras)
    DMPushXSpine01 = 2
    DMPushXSpine02 = 0
    DMPushXSpine03 = 2
    DMPushXSpine04 = 0
    DMPushXSpine05 = 2
    ;neck 01 - 05 (vertebras)
    DMPushXNeck01 = 4
    DMPushXNeck02 = 0
    DMPushXNeck03 = 2
    DMPushXNeck04 = 0
    DMPushXNeck05 = 3

    ;bDyingMovementPush - strength of the force applied for dying movement (on the corresponding axis) - is divided by 10 before inserted into method (so a value of 5 becomes 0.5) - second stage, should be less agile
    ;pushing values for alternating x-push (spine and arm pushes are also applied to the z-axis) - stage 2
    ;right calf
    bDMPushXLeg01 = 0
    ;right thigh
    bDMPushXLeg02 = 0
    ;left calf
    bDMPushXLeg03 = 0
    ;left thigh
    bDMPushXLeg04 = 0
    ;left forearm
    bDMPushXArm01 = 7
    ;right forearm
    bDMPushXArm02 = 7
    ;spines 01 - 05 (vertebras)
    bDMPushXSpine01 = 4
    bDMPushXSpine02 = 2
    bDMPushXSpine03 = 0
    bDMPushXSpine04 = 0
    bDMPushXSpine05 = 0
    ;neck 01 - 05 (vertebras)
    bDMPushXNeck01 = 4
    bDMPushXNeck02 = 2
    bDMPushXNeck03 = 0
    bDMPushXNeck04 = 0
    bDMPushXNeck05 = 0

    ;booleans for dying movement
    IsDyingMovementForceRelative_Arms = 0
    IsDyingMovementForceRelative_Legs = 0
    IsDyingMovementForceRelative_Spine = 0
    IsDyingMovementForceRelative_Neck = 0
    IsDyingMovementDirectionRelative_Arms = 0
    IsDyingMovementDirectionRelative_Legs = 0
    IsDyingMovementDirectionRelative_Spine = 1
    IsDyingMovementDirectionRelative_Neck = 1
    IgnoreDyingMovementUpVector = 0

    ;Booleans for enabling dying movement for body parts, stage 1
    DyingMovementLegsEnable = 1
    DyingMovementArmsEnable = 1
    DyingMovementSpineEnable = 1
    DyingMovementNeckEnable = 1

    ;Booleans for enabling dying movement for body parts, stage 2
    bDyingMovementLegsEnable = 1
    bDyingMovementArmsEnable = 1
    bDyingMovementSpineEnable = 1
    bDyingMovementNeckEnable = 1

    ;DyingMovementEnableWhenSpeedLowerThan - if DyingMovement is enabled, the NPC has to be slower than the given speed value to get the DyingMovement applied
    DyingMovementEnableWhenSpeedLowerThan = 10

    ;DyingMovementChance - is the chance of dyingmovement to kick in (randomizer value between 0 and 999) - stage 1
    DyingMovementChance = 550

    ;DyingMovementPushTime - time for how long should be pushed (in milliseconds) - stage 1
    DyingMovementPushTime = 0

    ;DyingMovementWaitTime - time the waiting windos until the next push (in milliseconds) - stage 1
    DyingMovementWaitTime = 750

    ;DyingMovementBuildUpTime is the time between WaitTime and PushTime which is used to prepare the push by slightly pushing the NPC for this time interval already
    DyingMovementBuildUpTime = 3800

    ;DyingMovementBuildUpCount is the amount of times the push is divided and applied during the DyingMovementBuildUpTIme
    DyingMovementBuildUpCount = 100

    ;DyingMovementXRollChance is the chance of an x roll occuring while dying movement is active (if its not xroll, zroll will be triggered - so if the chance is 60, the chance for zroll is 40)
    DyingMovementXRollChance = 76

    ;DyingMovementAudioChance is the chance per script iteration (~millisecond) that pain audio is played in stage 1 of DyingMovement, the audio 01, 02 and 03 are the sounds which are played (decided by chance)
    DyingMovementAudioChance = 80
    DyingMovementAudio01 = 4
    DyingMovementAudio02 = 5
    DyingMovementAudio03 = 9

    ;bDyingMovementChance - is the chance of dyingmovement to kick in (randomizer value between 0 and 999) - stage 2
    bDyingMovementChance = 10

    ;bDyingMovementPushTime - time for how long should be pushed (in milliseconds) - stage 2
    bDyingMovementPushTime = 0

    ;bDyingMovementWaitTime - time the waiting windos until the next push (in milliseconds) - stage 2
    bDyingMovementWaitTime = 100

    ;bDyingMovementBuildUpTime is the time between WaitTime and PushTime which is used to prepare the push by slightly pushing the NPC for this time interval already - stage 2
    bDyingMovementBuildUpTime = 5000

    ;bDyingMovementBuildUpCount is the amount of times the push is divided and applied during the DyingMovementBuildUpTIme - stage 2
    bDyingMovementBuildUpCount = 100

    ;booleans for the dyingpush method (not dyingmovement)
    IgnoreUpVector = 1
    IsDyingForceRelative = 0
    IsDyingDirectionRelative = 1

    ;PanicChance is the chance of NPCs audibly panicking when taking damage from the player
    PanicChance = 2

    ;PanicChanceHelpless is the chance of NPCs audibly panicking when taking damage from the player or being threatened by the player (like pointing a gun) while not being able to defend themselves (e.g. being in ragdoll)
    PanicChanceHelpless = 3

    ;FemalePushModifier is the value the normal push value is divided by when pushing is applied to female NPCs (because they are lighter than male NPCs)
    FemalePushModifier = 3
     

     

    Edited by lininop
    AnymYo

    Posted (edited)

    @fitfondue and @HughJanus

    First of all, this is the best mod for RDR2 you can get for now in my opinion... I have a lot of fun with it, thank you very much!
    Im glad you added the wounded animation, wich i mentioned in my comment before. Its close to perfection now!
    There is one little more thing, wich would be very usefull and it would be realy nice to eventually see this in the future!

    Would it be possible to give the options in the .ini file wich allow you to change the bullet force for every weapon?
    And maybe for every ammo type too?

    The reason for this is for example the bolt action rifle sends peds flying because the bullet applies too much force to the body of a npc. The results are spinning bodys or star wars like force effekts... The cal. 22 for example has low demage but the force of the bullets results in a much better euphoria stumbling behavior/ragdoll... i would like to adjust the bullet force of every weapon and the different ammo types... I would be super happy if you could make this possible in the .ini file!

    Thanks so far and keep on the good work!

     

     

    Edited by AnymYo
    HughJanus

    Posted (edited)

    Hey guys @lininop@AbleAtlas,

    I tried fixing the headshot knife no impact thing and added a value for the sneaking noise multiplier.

    Please test, if possible (as I dont have much time on my hands and the rest of the team is not available this weekend).

     

    @AnymYo I think those values can only be changed in the game files (at least I have not found natives for them yet).

     

    PedDamageOverhaul.asi PedDamageOverhaul.ini

    Edited by HughJanus
    • Thanks 1
    lininop

    Posted (edited)

    @HughJanus 

     

    Thanks so much! I tested it for a few minutes and it seems to have fixed the issue.

     

    Cheers!

     

    Edit: Got to play and test a little more. It's almost fixed. If someone is killed with a body hit of a thrown weapon they still drop unnaturally, while the bow seems to work well and killing shots to the head or non fatal shots to the body look to be working again.

    Edited by lininop
    HughJanus

    Posted

    @lininop I only check for headshots, because I figured getting a small knife thrown into an adult body wouldnt make that much of an impact. Should I change that?

    lininop

    Posted

    @HughJanus I get where you're coming from. However in my opinion, a knife may not, but a tomahawk probably would and this affects both. It's also more noticeable with the tomahawk because it is more likely to kill on a body shot than the knife, and this bug only seems to take place on killing shots. With it the way it is, none of the cool euphoria physics kick in, which means no stumbling and no grabbing at the area of impact, just dropping like a sack of potatoes. I'd say it's most noticeable when you hit a ped with a throwable while they are running because they just lose all momentum and drop which looks a bit odd. 

     

    Ultimately, it's up to you. But that's my input!

    Maro

    Posted (edited)

    @HughJanus @fitfondue Do you think it's possible to make npc's survive dismemberment without OpenIV ? 

     

    It would be nice to see npcs survive arms/hands dismemberment but i believe this would requires a new layer of behavior by adding animations ( For realism and immersion purposes)  especially if legs are being dismembered ( crawling animations + bleeding effect )

     

     

    I also have 2 features in mind :

     

    Feature 1 : Being able to force a surrender for the player at any wanted levels, depending of the situation. I know for a matter of fact that the player do can surrender if the wanted level is low. (hands up animation, you can enter into a dead eye mode during this event)

     

    Here's a video that shows the process 

     

     

    features 2 if it's possible to implement without openIV

     

    Is it possible to extend the duration of decayed npc's/animals within an area ( and or expand the area where that event is occuring ) ? 

     

    I've checked and npc do enter into decaying process (Following multiple stages of decomposition layer and eventually turn into skeletons/piles of bones) after a few days but this is so rare that it doesn't happen all the time

     

    PS : i'm not sure 100% if it has an effect but npc's decaying under water seems to decompose way faster than on lands.

     

    I'll also leave a YT link in here in case people didn't know 

    Thank you for reading me ! And excellent mod ! As always. I keep coming back and forth to this mod page and i see new stuff being added/fixed. Glad to see that ! Keep on keeping on 🙂

    Edited by Maro
    • Like 1
    HughJanus

    Posted

    @Maro I have no idea how to add animations or make NPCs survive dismemberment with only a script. As for the decomposing, I would love to see that, but also have not found any natives yet that would support such a change.

    • Sad 2
    Maro

    Posted (edited)

    3 hours ago, HughJanus said:

    @Maro I have no idea how to add animations or make NPCs survive dismemberment with only a script. As for the decomposing, I would love to see that, but also have not found any natives yet that would support such a change.

     

     

    What about being able to surrender at any wanted level ? Of course just once during a gunfight to spice things up

    Edited by Maro
    lininop

    Posted

    @HughJanus

     

    I see that you've added a friendly fire option in the ini. Very excited for when that starts working 🙂 Thanks so much!

    Cuddlecreeper8

    Posted (edited)

    11 hours ago, HughJanus said:

    @Maro I have no idea how to add animations or make NPCs survive dismemberment with only a script. As for the decomposing, I would love to see that, but also have not found any natives yet that would support such a change.

    surviving dismemberment was done in a fallout 4 mod before, but then again completely different engine.

    Edited by Cuddlecreeper8

    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...